前言
一年前购买了新路由器3,有一说一,性能和信号都够用,也可以当一个openwrt入门设备,开始是使用恩山论坛里面的坛友们编译的固件,但是因为32m的rom着实过小,别人编译的总有不尽人意的地方,遂开始自己研究编译
一开始使用在线云服务器,但是编译过程确实难受,然后开始使用本机编译,也许是因为虚拟化或者cpu过弱,编译过程较慢,效率低,还吃硬盘寿命,直到使用了github action在线编译之后才满足了我的编译需求
优点
- 免费
- 一键快速编译
- 定时自动编译
- 客制化编译
- 并发编译(可同时进行20个编译任务)
- 无需消耗自己的计算机与服务器的计算资源(性感E5在线编译)
- 无需担心磁盘空间不足(近60G磁盘空间)
- 无需使用清理文件(内核更新不怕 boom )
- 编译速度快(编译时间1-2小时)
- 全新环境(杜绝编译环境不干净导致编译失败)
说明
本教程基于P3TERX/Actions-OpenWrt编写,项目地址(https://github.com/P3TERX/Actions-OpenWrt) ,感谢大佬的编写的 workflow 文件
编译前提
您需要拥有一个github账号,一个ubuntu(18.04)及以上可视化操作系统,有一定的Linux基础,一段时间
过程
首先fork我的编译编译方案到你的库中
基于Lienol源码(https://github.com/smmya/action-openwrt-Lienol)
基于lede源码(https://github.com/smmya/action-openwrt-lede)
推荐使用以下源码进行编译
Lienol源码(https://github.com/Lienol/openwrt)
lede源码(https://github.com/coolsnowwolf/lede)
fork了我的方案之后你需要修改你想编译的分支
在你的库中打开.github/workflows/build-openwrt.yml文件,并点击编写
然后按照图片里标注的地方修改你想要的分支
打开你的ubuntu系统,fork openwrt系统源码(需要和workflow文件中的源码和分支对应),这里以Lienol源码为例
然后打开源码目录,修改feeds.conf.default的文件,两个源码的需要和我的库里面的feeds.conf.default相同,例:Lienol源码需要和(https://github.com/smmya/action-openwrt-Lienol) 里面的feeds.conf.default内容相同
修改好之后在源码根目录执行以下代码
./scripts/feeds update -a
./scripts/feeds install -a
rm -rf ./feeds
./scripts/feeds update -a
./scripts/feeds install -a
当出现以下输出说明软件包已经安装到源码里面了,意味着可以进行制作config文件了
制作编译配置
在源码根目录执行make menuconfig
即可进入到制作编译配置界面了
关于具体制作过程这里不进行教程,因为太复杂了,这里推荐参考这位大佬的博客的说明(https://mtom.ml/827.html#.X_bQv9gzaUk)
select是选择 exit是返回/退出 save是保存(默认文件名.config)
使用键盘的方向键来控制光标
上传配置文件
在上一个步骤制作好.config文件之后,将.config上传到你的GitHub编译库文件中
等待GitHub处理完成
启动编译
然后自动就进行云编译了,点击可查看编译过程,一般来说路由器的固件2个小时内可以编译完成,编译完成可以在编译页找到编译结果文件,如果workflow文件中的UPLOAD_RELEASE的值为true编译完成将会上传到RELEASE,可以永久保存
注意点
- 选择配置的时候选择了automount之后请勿添加其他文件系统以及hdparm,libfdisk1,否则可能会编译失败
- 基于Lienol源码的请勿选择kcptun-client,vim,adbyby(这个貌似最近被修复了),我选择了之后基本编译失败
- 建议选择应用软件包之前备份你的源码目录,因为一旦报错就得需要重新制作编译配置(.config)
end.
文章评论