前情提要:以下基于最新OpenWRT(23.05)+ Github Actions在线编译
先来回答几个问题
- 为啥自己编译?我是一个成熟的计算机系大学生(笑)。
- 为啥使用Github Actions?因为Github实在是太方便了
我本来想用我的专用编译机9950x跑的,跑了15分钟报错了,懒得查 - 我怎么看不懂?
看不懂就别看了。老老实实下载别人编译好的包去吧。
Fork
首先需要Fork一份LEDE源码。LEDE仓库Github
克隆仓库到本地
将刚刚Fork的仓库克隆到本地:
git clone https://github.com/your-username/lede
不要下载ZIP!
更新Feed
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
不更新Feed的话你后续Luci的APP都看不到了!该步骤必做!
进入配置菜单
使用以下命令进入配置菜单:
make menuconfig
编译配置菜单说明
一般来说你只需要修改这些:
- Target System: 处理器架构
- Subtarget: 选择处理器
- Target Profile: 预制配置文件
LuCI: LuCI插件
- Applications: 应用程序
- Themes: 主题
比如我就选了:
- Target System: Mediatek-ARM
- Subtarget: Filogic
- Target Profile: ASR3000
LuCI: LuCI插件
- Applications: 好多好玩的插件等你探索!
- Themes: luci-theme-material
修改完成后,选择Save
保存为.config
文件。
关于Luci插件,具体请看恩山论坛的这篇文章
Commit到你fork的仓库
- 在
.gitignore
文件中删除/.config
行,取消忽略配置文件。非常重要!!!否则commit
时候不会包含.config
文件!!! - 提交更改到GitHub:
git add .
git commit -m "upd: personal config"
git push origin master
仓库分支叫master,颇有主仆的味道了
踩坑:
编译之前开启WIFI
若需要默认开启WIFI方便管理,网上搜了一堆教程没用的,都是15年左右,没有参考价值,自己摸索出来:
前往 package/lean/default-settings/files/
目录,编辑文件zzz-default-settings
将其中
sed -i '/option disabled/d' /etc/config/wireless
sed -i '/set wireless.radio${devidx}.disabled/d' /lib/wifi/mac80211.sh
这两行在最前面打上#
注释掉即可。
Github Actions编译
网络上依然说“提交个Release然后就会自动触发Github Actions”在我这里不太管用,遂需要做一些修改:
- 使用Github Actions编译时,记得先去Workflow页面把Workflow Enable了,另外还要把OpenWrt-CI也Enable了(因为Forked仓库,Workflow默认关闭)
同时修改仓库
.github/workflows/openwrt-ci.yml
,将里面最开头(第10行)的cron
任务改为以下,即可手动trigger workflow:on: repository_dispatch: workflow_dispatch:
预计花费两小时,
但这跟我有什么关系呢反正用的是Github的资源
修改一些杂七杂八的设置
修改默认主题
sed -i "s/luci-theme-bootstrap/luci-theme-material/g" feeds/luci/collections/luci/Makefile
(现在大伙儿的审美是更喜欢argon主题一点貌似,反正这个和你
.config
里luci-themes
安装的对上即可)加入编译者信息
sed -i "s/OpenWrt /TheUnknownThing build $(TZ=UTC-8 date "+%Y.%m.%d") @ OpenWrt /g" package/lean/default-settings/files/zzz-default-settings
你这里编译人总不可能是TheUnknownThing吧,自己换一个去。
修改默认管理地址
默认管理地址为192.168.1.1
,若与上游网段重合则可以修改sed -i 's/192.168.1.1/192.168.2.1/g' package/base-files/files/bin/config_generate
这里是修改成了
192.168.2.1