Skip to content

misaka14/shared-lede

 
 

Repository files navigation

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

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

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

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

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

选择机型:在run workflow界面点开选择设备的下拉框,即可手动选择机型。

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

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

使用本项目你需要

  • GitHub 账号

  • GitHub Actions 基本使用技能

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

使用教程

点击展开/关闭

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

3. 自定义固件

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

每个机型关联三个文件,在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 未选中是这种

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

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

各选项说明如下:

  • 超频到1100Mhz:

build lede有此选项。

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

  • 使用5.15内核:

build lede有此选项。

默认不勾选。lean lede源码勾选此项时,编译小米4A千兆版和小米3Gv2时会报错,勿用。

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

  • 选择机型:

点开下拉框,可以选择不同的机型。

  • 上传到release:

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

  • 上传到artifact:

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

  • 版本描述:

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

5. 编译完成

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

固件源码

配置目录 流程名 源码
preset-lede build lede coolsnowwolf/lede
preset-lienol-openwrt build lienol openwrt Lienol/openwrt master
preset-openwrt build openwrt 23.05 openwrt/openwrt openwrt-23.05
preset-immortalwrt build immortalwrt 21.02 immortalwrt/immortalwrt openwrt-21.02
preset-x-wrt build x-wrt x-wrt/x-wrt master

各机型对应文件

机型 配置目录下的关联文件
小米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千兆版v2
小米4A百兆版
小米4C
小米WiFi R3
小米WiFi nano
小米WiFi mini
GL.iNet mt300n v2
GL.iNet microuter n300

提示

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

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

  3. 小米4A千兆版和小米3Gv2需修改分区才能在breed直刷,参考该帖子,本项目中已修改好,见脚本modify-xiaomi-router-4a-3g-v2.sh

  4. 小米4A千兆版和小米3Gv2闪存小(仅16MB),若编译插件太多,包体积超出闪存上限,则不会生成sysupgrade.bin。


最后

无特别详细的教程,自己摸索吧。

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

About

Build custom OpenWrt firmware

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 70.3%
  • Shell 25.3%
  • Makefile 4.4%