Docker编译openwrt固件 freecrazy 2022-11-28T21:22:26+08:00 1601 更新于 2024-09-10T09:46:09Z

通过源码自行编译openwrt固件

一、前因

追随时代需常伴己身,不然,亏,将绕你左右,而且是吃不完的。

手机软件有更就更,就算更新后反人类,那也是你的问题。

毕竟产品经理不会闹着玩的把它改成这样,TA还得吃饭(土豪例外)。

用别人的东西,就跟图书馆借的书一样,不敢乱画,还怕丢失。

唯唯诺诺,又患得患失,实属折磨。

讲这些屁话,主要是解释……

前天搭的openwrt太杂了,版本旧不说,插件还满天飞。

对我等已有树莓派的玩家而言,这些插件 who care who use !!!

SO…..

我要自己编译!!!

二、功课

纵观全网,两大阵营,lede源原版源,按星数排序,原版居然跟lede足足差了近一倍!!

离了个大谱,我该钟情哪位呢?

可恨之人必有可怜之处,啊……呸,说啥呸话。

两位恩怨情仇大概就是,lede师出原版,后因某缘由单干,后又因某缘由合并了(啥破瓜)。

总结一句话,lede是在原版基础上加固加强加深了,用起来比原版更顺畅。

当然,这只是鄙某的漏见。

我决定双管齐下,一起上。

三、编译环境

做饭总得有个灶台吧,编译也得有个环境。

两者官方都推荐用ubuntu20.04 X86 架构,我不信邪,在树莓派编译了下,得……拜拜勒你。

继而欲转用win11的wsl编译,可是他要安装一堆破依赖,而我又不想弄脏我的wsl。

最后,决定借用别人得灶台。

咋借?自然是用docker借,启动之后直接拉源码开干,岂不美哉。

借谁的?借p3terx这位大佬的,镜像为:p3terx/openwrt-build-env

先把它荡下来

docker pull p3terx/openwrt-build-env

四、开始编译

两个大同小异,编译原版的先看完前面的,后面的没有解释。

lede编译


启动容器

docker run -d --name ledeopenwrt p3terx/openwrt-build-env

进入容器

docker exec -it ledeopenwrt bash

临时设置代理

export all_proxy="socks5://192.168.68.166:1080"

国内没代理想编译,你怕是没睡醒。 PS:也可以选择用国外按时收费的VPS,用后即焚。

克隆源码

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

进入源码

cd lede/

更新软件包

./scripts/feeds update -a

安装软件包

./scripts/feeds install -a

调用配置组件

make menuconfig

去这里:https://firmware-selector.openwrt.org 找到你设备型号的配置信息,比如我的树莓派4B为:bcm27xx/bcm2711。

把前三个设置为对应的型号。

第四个选项进去把tar.gz给选上,按Y选择,为何要选,请看下文。

编译成功之后兴高采烈,却发现只有4个固件包,你这四货我都可以直接去官网拿,要你何用,欲哭无泪,白花花的几小时。

我是要把你docker化,为我docker环境所用,我可不想把我树莓派刷成openwrt。

因此,我需要tar.gz的文件包。

选择 Save 保存后, Esc Esc 退出页面。

下载编译包

make download -j8

自信点,cpu有几核,把8改成几,改了之后据说会快,俺只有八核。

之后一千年过去了……

编译

make V=s -j1

自信点,cpu有几核,把1改成几,改了之后会快,可是看不到满屏代码咻咻咻的爽感。

之后一万年过去了……

付出总有回报,在 bin/targets/xxxx/xxx/xxx/xxx/xxx/xxx 反正下到底端就是你的软件包了

原版编译


启动容器

docker run -d --name pureopenwrt p3terx/openwrt-build-env

进入容器

docker exec -it pureopenwrt bash

临时设置代理

export all_proxy="socks5://192.168.68.166:1080"

克隆源码

git clone https://git.openwrt.org/openwrt/openwrt.git

会报证书错误,用 export GIT_SSL_NO_VERIFY=1 临时忽略它。

进入源码

cd openwrt/

查看分支

git branch -a

切换分支

git checkout openwrt-22.03

22.03改成你上一步看到的最新版本

更新软件包

./scripts/feeds update -a

安装软件包

./scripts/feeds install -a

调用配置组件

make menuconfig

下载编译包

make download -j8

编译

make V=s -j1

bin/targets/ 最底端就是你的软件包

还需要更多动作,请参考后文链接。

五、使用

docker使用,篇幅过长,下回分解。

固件使用:

  1. 准备你的设备。
  2. 下载刷机工具。
  3. 选择编译好的固件。
  4. 刷入你的设备。
  5. 开机使用。
  6. 搞定。

六、总结

等待的时间总是漫长的,开两个容器一起编译,然后该干嘛干嘛去。

注意分配好你的核数,免得出不知名错误,过来人教训。

双管齐下图

感谢下面的博文,收益匪浅,我的头发也浅了点。

没有你们就没有我……的这篇。

学会与学精,多数人倾向前者,大爷我全要!

收工。

参考链接:

OpenWrt 编译步骤与命令详解教程 - P3TERX ZONE

树莓派4B上安装OpenWrt/LEDE_linxuew的博客-CSDN博客_树莓派4b安装openwrt

歌华链路由器GHL 使用 Docker 编译 OpenWrt Lede 固件 最详细教程 - 墨天轮 (modb.pro)

© 2021 - 2024 闲余悟道

载入运行时间...

avatar
关于我

癫狂乐天,狂放不羁,叛世逆俗,天纯不可一世。

跑酷

游戏玩腻,自个寻的,只喜纯跑,不喜炫技

滑板

身处异乡,未找到跑酷伙伴,转投滑板,oli练到死

骑行

通勤会的,通着通着成了爱好,不攀里数,不懂车构,菜腿一枚

爬山

老妈生错了生肖,喜欢在台阶或石头上蹦跶

设计

大学学的,PS效率实用流

代码

培训得的,已弃坑,得益于此,软件玩得起飞,如本博客内容

剪辑

无聊学的,人生苦短,想学的太多,学会罢了,我应该会了了吧……

写作

读书多了自然而然就……he,tui,人人都会,正在精进中

独自环过岛

海南岛,9天骑行,一人一包一帐篷,事故故事一堆堆

只身入过藏

心之所向,21点的太阳妙不可言

万里路

不少,如……

万卷书

微多,如……


人生苦短,繁华三千,可纵情声色,亦可摇桨泛舟。

碎年流光,若都平淡如水,岂非虚度一遭。

波澜不惊的一生虽不可恨,但数载光阴就历尽沧桑的生活应该更畅快。

别试图在文章末尾评论处留言,那只是摆设,不过若是打赏,我定会收到心意。联系方式本页社交链接中有猫腻。

清心决

心若冰清,天塌不惊。

万变犹定,神怡气静。

尘垢不沾,俗相不染。

虚空甯宓,浑然无物。

无有相生,难易相成。

份与物忘,同乎混涅。

天地无涯,万物齐一。

飞花落叶,虚怀若谷。

千般烦忧,才下心头。

即展眉头,灵台清幽。

心无挂碍,意无所执。

解心释神,莫然无魂。

水流心不惊,云在意俱迟。

一心不赘物,古今自逍遥。

自由转载-非商用-转载注明出处即可。