OpenWrt 固件编译教程

这篇具有很好参考价值的文章主要介绍了OpenWrt 固件编译教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、编译环境准备

编译平台 阿里云 Ubuntu 20.04.5 LTS

安装编译环境依赖

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync

更新本地软件包

sudo sh -c "apt update && apt upgrade -y"

不推荐使用 root 用户进行编译,所以先使用 root 权限创建一个用户,以创建 gaven 用户为例

# 添加用户
adduser gaven

为新用户设置密码,根据个人情况,这里设置“123456”

passwd 123456

从 root 用户切换使用新用户

su gaven

从此刻开始,以非 root 用户执行编译过程的所有操作。

二、首次编译步骤

重要的事情说三遍,不要使用root用户!!!

拉取代码,这里拉取的代码是LEDE

git clone https://github.com/coolsnowwolf/lede.git openwrt

添加自定义源(可选项),这里只是告诉一种方式和方法

注:以下是自己正在使用的软件源,这里你也可以换成自己喜欢的软件源

# 进入openwrt目录
cd ~/openwrt

# 添加自定义源
cat >> feeds.conf.default <<EOF
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git passwall https://github.com/xiaorouji/openwrt-passwall
EOF

更新下载软件仓库的源码到本地,并安装自定义源包含的软件包

./scripts/feeds update -a

 这个过程可能会因为国内网路的原因会失败,多试几次,尽量保证别出现错误。如果有些代码源确实无法实现下载更新操作,原因是因为github的DNS系统解析不了,这里可以通过一些方式查询githhub的地址,进行手动配置

查询github的IP地址

GitHub: Let's build from here · GitHub  通过此网站便可以查询到。

OpenWrt 固件编译教程

配置/etc/hosts ,在结尾处写上。
140.82.114.3 github.com
140.82.114.3 www.github.com

然后执行

ping  github.com  是否能够ping通,能够ping通,说明可以进行代码更新了。

测试结果示例

OpenWrt 固件编译教程

 继续执行更新操作,是否能够成功?

./scripts/feeds update -a 

进行拉取代取的安装操作

./scripts/feeds install -a

单独添加软件包(可选项)

如果需要单独添加软件,请拉取源码到 pack­age 目录之下。示例如下:

# 添加 OpenAppFilter 应用过滤插件
git clone https://github.com/destan19/OpenAppFilter package/OpenAppFilter

设置默认主题(可选项)

注:此操作请在编译前执行,设置 ar­gon 为默认主题,以此为例举一反三

# 删除自定义源默认的 argon 主题
rm -rf package/lean/luci-theme-argon

# 部分第三方源自带 argon 主题,上面命令删除不掉的请运行下面命令
find ./ -name luci-theme-argon | xargs rm -rf;

# 针对 LEDE 项目拉取 argon 原作者的源码
git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git package/lean/luci-theme-argon

# 替换默认主题为 luci-theme-argon
sed -i 's/luci-theme-bootstrap/luci-theme-argon/' feeds/luci/collections/luci/Makefile

设置路由器默认的 LAN IP(可选项)

注:此操作请在编译前执行

# 设置默认IP为 192.168.199.1
sed -i 's/192.168.1.1/192.168.199.1/g' package/base-files/files/bin/config_generate

仅制作.config文件,无需本地编译固件(可选项)

根据自己的定制需求,调整系统组件

make menuconfig

通过以下命令行获得 seed.config 配置文件,然后使用 GitHub Ac­tions 云编译。

# 若在调整OpenWrt系统组件的过程有多次保存操作,则建议先删除.config.old文件再继续操作
rm -f .config.old

# 根据编译环境生成默认配置
make defconfig

# 对比默认配置的差异部分生成配置文件(可以理解为增量)
./scripts/diffconfig.sh > seed.config

若需要编译固件

根据自己的定制需求,调整系统组件

make menuconfig

下载编译所需的软件包

make download -j8 V=s

编译 Open­Wrt 固件

# -j1:单线程编译
make -j1 V=s

单线程编译可提高编译成功率,但过程非常漫长,也完全取决于机器的性能。编译完成后固件输出路径: /openwrt/bin/targets/ 之下。

三、二次编译步骤

不要使用 root 用户!

更新本地编译环境

# 更新软件列表、升级软件包
sudo sh -c "apt update && apt upgrade -y"

# 拉取最新源码
cd ~/openwrt && git pull

# 更新下载安装订阅源包含的软件包
cd ~/openwrt
./scripts/feeds update -a && ./scripts/feeds install -a

清理旧文件

# 删除/bin和/build_dir目录中的文件
make clean

如果要更换架构,例如要从 x86_64 换到 MediaTek Ralink MIPS 建议执行以下命令深度清理 /bin 和 /build_dir 目录的中的文件 (make clean) 以及 /staging_dir/toolchain/tmp 和 /logs 中的文件。

make dirclean

如果需要对组件重新调整,则建议先删除旧配置

rm -rf ./tmp && rm -rf .config

根据自己的定制需求,再次调整 Open­Wrt 系统组件

make menuconfig

下载编译所需的软件包

make download -j8 V=s

编译 Open­Wrt 固件

make -j$(nproc) || make -j1 || make -j1 V=s

二次编译可以优先使用多线程,报错会自动使用单线程,仍然报错会单线程执行编译并输出详细日志。

附加内容

如果没有特殊的定制需求,运行 make menuconfig 命令配置目标架构完成后,进入 LUCI --> Applications 选择需要的插件,进入 LUCI --> Themes 选择喜欢的主题皮肤,编译即可。

如果是硬路由且需要闭源的 Wi-Fi 驱动,务必记得勾选 luci-app-mtwifi文章来源地址https://www.toymoban.com/news/detail-431150.html

到了这里,关于OpenWrt 固件编译教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linksys WRT路由器刷入OpenWrt与原厂固件双固件及切换

    新机器默认有一个原厂固件,两个boot part,原厂固件在boot part 1,boot part 2为空闲状态。 当前boot part为1时,刷入的boot part为2,当前的boot part为2时,刷入的boot part为1。如果使用原厂固件刷入一次Openwrt,如果对这个版本不满意,再使用Openwrt刷入另一个版本的Openwrt,那么原厂固

    2024年02月08日
    浏览(62)
  • 路由器固件仓库广告屏蔽工具老毛子胜openwrt

    1、阿呆猫http://www.admflt.com/ 我花了20买了一个Padavan固件优酷路由宝,16M+256M内存。在广告屏蔽功能的第二个标签页,激活了一下 adm软件 。介绍中有阿呆猫的网站。更新重启就起做用了。 在电视应用中测试了一下,以前不成功BestTV,云视听,电视猫,泰捷,都能屏蔽掉广告,

    2024年02月12日
    浏览(52)
  • 软路由刷ESIR LEAN OPENWRT X86-64 固件

    软路由 谷歌云盘下载地址:esir openwrt 固件-openwrt-gdq-winter[2022]-x86-64-generic-squashfs-legacy.img.gz 链接: https://pan.baidu.com/s/1dDz_PNkpYM1HgkH-oIb8AQ 提取码: g6cq 刷机准备:首先准备一个U盘、一个有线键盘、一个有线鼠标,其次是winpe装机维护工具软件(平时常用的老毛桃、大白菜、微PE)

    2024年02月05日
    浏览(65)
  • 华为云Elasticsearch(FusionInsight HD) 连接和开发教程-环境准备

    Elasticsearh简介 Elasticsearch是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎和分析引擎。设计用于大数据中,能够稳定、可靠、快速地实现实时搜索和分析,并且安装使用的方法十分简单方便。 Elasticsearch相比传统关系数据库,通过时间戳或者精确

    2024年02月03日
    浏览(34)
  • ESP32学习准备——烧录MicroPython固件

    固件,就是文件,固化在存储介质上的文件,而文件,其实就是数据。 烧写,就是写数据,把文件(固件/数据)写到存储介质(Nand Flash, Nor Flash等)上。 当把这些固件写到储存器中后,板子下次启动的时候,直接从这些储存器中找到这些文件,嵌入式系统就能够直接跑起来

    2024年02月12日
    浏览(33)
  • 小米路由器AX9000刷写OpenWrt官网发布的固件

             从官网(OpenWrt Firmware Selector)下载下图标注的两个文件         由于OpenWrt官网发布的固件会改写MTD分区布局,不支持原厂和OpenWrt共存,需要先刷入openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-factory.ubi核心系统自动进行分区调整。         进入方法请参考https://ww

    2024年02月08日
    浏览(37)
  • Openwrt_XiaoMiR3G路由器_刷入Breed固件

    当我刷完Breed后,重启没有进入原来的小米路由器固件,但可以进入breed控制台。目前不清楚那个环节出错了。所以本过程会导致路由器无法再直接使用!!! 。 本过程只刷入Breed,接着编译OpenWrt和刷入OpenWrt请参考:   Openwrt_XiaoMiR3G路由器_刷入OpenWrt 为小米路由器R3G型号刷入

    2024年02月07日
    浏览(59)
  • 小米路由R3G Breed 刷Padavan/openWRT固件

    小米R3G这款路由器,采用MT7621A处理器,256M RAM,128M ROM,全千兆网口,且价格便宜(60CNY左右),是一款十分值得折腾的路由器,推荐想要折腾路由器的新手入手。 本文介绍使用UART串口向小米路由R3G刷入Breed的详细操作流程, 通过此方式,可以绕过小米官方对系统固件的限制(

    2024年02月08日
    浏览(138)
  • 红米AC2100刷openwrt以及刷回官方固件全记录

    访问openwrt官网,我们可以知道一些路由器有漏洞,可以刷openwrt固件,做一些自定义操作。 我刷openwrt的目的主要是用tc脚本限速,因为我发现路由器本身的限速功能似乎有问题,并不能如你所期地进行限速。 刷机就是替换原厂的固件, 刷机包括刷boot和刷系统 ,boot类似于p

    2024年02月09日
    浏览(36)
  • 2022-12-07 小米pro路由(R3G) 刷固件 openwrt

    1.先登录小米开发者平台,解开小米路由的SSH http://www.miwifi.com/miwifi_open.html 2.路由连接电脑,通过SSH可直接登录到小米路由   如何刷入breed 不同设备方法不同,可以直接U盘,请自行搜索方法 拔掉路由器电源,按住reset同时接上电源等双蓝灯闪烁后松开, 浏览器输入 192.168.1.1 即

    2024年02月05日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包