/shared-lede

定制编译OpenWrt固件

Primary LanguagePythonMIT LicenseMIT

使用 GitHub Actions 快速定制编译 OpenWrt 固件

流程文档参考KFERMercer/OpenWrt-CI,十分感谢!

使用的固件源码包括openwrt官方,以及coolsnowwolf、Lienol、immortalwrt维护的版本,详见表格

预置机型有小米4A千兆版、小米3Gv2、小米CR6606、小米CR6608、小米CR6609等,详见表格

快速生成固件 ---> 登陆GitHub,fork此仓库,点击上方Actions,选择左侧流程中的固件编译 XXX运行,运行完毕即可下载固件。示意如下:

默认编译第一个,即小米4A千兆版。如需要其他机型,在run workflow界面点开选择设备的下拉框,即可手动选择其他机型。

如预置机型中没有你需要的,可以使用templet目录下的文件新增机型。

喜欢的话,右上角Star一下,方便再找。

使用本项目你需要:

  • GitHub 账号

  • GitHub Actions 基本使用技能

若要高度定制固件,需要掌握一定的Liunx、OpenWrt、Actions等相关知识,途径:自行搜索学习

使用教程:

点击展开/关闭

1. 注册GitHub账号并开启GitHub Actions

3. 设置Actions secrets

只上传到artifact,可以跳过此步。

进入GitHub Settings(点头像) → Developer settings → Personal access tokens → Generate new token,Note随意填,Expiration建议选No expiration,Select scopes里勾选repoworkflow,点Generate token,复制下长串token。

进入你fork的项目shared-lede下,点Settings → Secrets → Actions → New repository secret,Name填RELEASE_FIRMWARE,Value填复制的token,点Add secret。

4. 自定义固件

什么也不修改,按默认配置,可以跳过此步。

每个机型关联四个文件,在preset-xxx目录中。

[数字].clone.sh

此脚本用来拉取固件源码和扩展插件源码,新增插件源时,建议先在本地测试下是否缺依赖。

常用的克隆命令如下(克隆理解为下载即可):

git clone 链接

git clone -b 分支名 链接

[数字].modify.sh

此脚本用于固件初始化设置,修改登录IP、主机名、WiFi名称等。

此脚本用到最多的命令是sed,详细用法参见链接,这里只简单说明。

比如,下面这条命令就是用来修改管理IP的:

sed -i 's/192.168.1.1/192.168.31.1/g' package/base-files/files/bin/config_generate

192.168.1.1是源码中默认的lan口登录IP,也即初始的;192.168.31.1是新的,用来替换初始文本的。

可以看出命令的构成是这样的:

sed -i 's/原字符串/新字符串/g' 文件路径

这就可以用来替换掉源码中的特定位置,-i指直接改动文件,s指替换,g指全局。

原字符串记为str1,新字符串记为str2,自定义设置改动str2位置即可,如果你改动了str1,那么命令在源码中就匹配不到东西了,替换也就无效了。

🎈🎈🎈 引用

各基础命令的用法可参考该链接,适合新手查阅。

[数字].config

该文件对应本地编译执行make menuconfig后生成的.config文件。

该文件主要包含luci应用,流程中会自动转为完整的.config。

增减插件修改这个文件即可,以argon主题为例,格式如下:

CONFIG_PACKAGE_luci-theme-argon=y 选中编译进固件的是这种

CONFIG_PACKAGE_luci-theme-argon=m 选中仅编译ipk插件是这种

# CONFIG_PACKAGE_luci-theme-argon is not set 未选中是这种

release.yml

此文本仅作release记录,其中的IP、密码与固件并无关联,怎么改都可以,不修改也可以。

5. Actions中手动开始编译流程

选择你需要的固件编译 XXXworkflow,再点击Run workflow,按需填内容,运行即可。

各选项说明如下:

超频到1100Mhz:

默认不勾选。仅适用于5.10内核,除红米AX6S外,其余机型默认皆为5.10内核。

使用5.15内核:

默认不勾选。因lean lede源码中package/lean/mtk-eip93编译会报错,小米4A千兆版和小米3Gv2勿用。

红米AX6S只有5.15内核,不必勾选。

选择机型:

默认为小米4A千兆版。点开下拉框,可以选择不同的机型。

上传到release:

默认勾选。单文件不能超过2GB,可添加内容记录。 release区见下图:

上传到artifact:

默认不勾选。artifact区见下图:

版本描述:

可作一些简单记录,会在release中显示。

6. 编译完成

Actions流程顺利完成后,去release(或者artifact)下载你的固件,release中allfiles.zip是所有文件的打包。

固件源码

配置目录 流程名 源码
preset-lede 固件编译 lede coolsnowwolf/lede
preset-lienol-openwrt 固件编译 lienol openwrt Lienol/openwrt master分支
preset-openwrt 固件编译 openwrt 22.03 openwrt/openwrt openwrt-22.03分支
preset-immortalwrt 固件编译 immortalwrt 21.02 immortalwrt/immortalwrt openwrt-21.02分支

各机型对应文件

机型 配置目录下的关联文件
小米4 1.config
1.clone.sh
1.modify.sh
小米3G
小米3Pro
小米CR6606
小米CR6608
小米CR6609
红米AC2100
小米AC2100
红米AX6S
斐讯K2P 2.config
1.clone.sh
1.modify.sh
小米3Gv2
小米4A千兆版
小米4A百兆版
小米4C
小米WiFi R3
小米WiFi nano
小米WiFi mini
GL.iNet mt300n v2
GL.iNet microuter n300

提示

1.直接在Actions中运行固件编译 XXX就能编译出固件,但默认插件数量较少,对插件有增、减需要的,到[数字].config中自行选择。若在[数字].clone.sh中添加了插件源,在[数字].config要作对应修改,建议先在本地make menuconfig测试。

2.超频方案默认不启用,方案来自该帖子

3.红米AX6S只有5.15内核,勿框选“超频到1100Mhz”、“使用5.15内核”两项。

4.小米4A千兆版和小米3Gv2需修改分区才能在breed直刷,参考该帖子,本项目中已修改好。

5.小米4A千兆版和小米3Gv2闪存小,若编译插件太多,包体积超出16064K,则不会生成sysupgrade.bin。


最后

不准备出什么详细的教程,自己摸索吧。

如有问题,请利用庞大的网络知识库,能快速解决你的问题。