openwrt docker教学分享( 在openwrt上运行docker)

无线路由器-网关-dtu

通过源码自行编译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/led

进入源码

cd lede/

更新软件包

./scripts/feeds update -a

安装软件包

./scripts/feeds install -a

调用配置组件

make menuconfig

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

无线路由器-网关-dtu

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

无线路由器-网关-dtu

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

无线路由器-网关-dtu

编译成功之后兴高采烈,却发现只有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 反正下到底端就是你的软件包了

无线路由器-网关-dtu

原版编译


启动容器

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改成你上一步看到的最新版本

无线路由器-网关-dtu

更新软件包

./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. 搞定。

六、总结

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

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

双管齐下图

无线路由器-网关-dtu

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

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

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

收工。