GitHub Actions自动化编译:打造专属OpenWrt固件的完整方案
GitHub Actions自动化编译:打造专属OpenWrt固件的完整方案
【免费下载链接】Actions-OpenWrt 自用 项目地址: https://gitcode.com/gh_mirrors/act/Actions-OpenWrt
GitHub Actions自动化编译是打造专属OpenWrt固件的高效方案,无需复杂本地环境配置,通过云端自动化流程即可定制功能丰富的路由器系统。本文将详细介绍如何利用GitHub Actions-OpenWrt项目实现从代码拉取到固件生成的全流程,帮助新手轻松掌握OpenWrt固件的定制与编译技巧。
准备工作:了解项目结构与核心组件
Actions-OpenWrt项目为不同路由器型号提供了定制化编译脚本,主要目录结构如下:
- 设备型号目录:如
CLX-S20P-hanwckf/、JDCloud-AX6000-Baili-hanwckf/等,包含针对特定硬件的配置文件和补丁 - 编译脚本:每个设备目录下的
diy-part1.sh(环境准备)和diy-part2.sh(固件定制) - 教程文档:
Tutorial/文件夹包含各机型刷机指南,如JDCloud-AX6000-Baili.md详细说明了京东云AX6000的刷机步骤
核心功能文件:
- 固件配置:
.mtwifi-cfg.config定义了默认编译选项,如是否包含luci-app-dockerman - 分区表工具:
mt7986a-dsa-jdcloud-re-cp-03.dts等设备树文件用于硬件适配
快速上手:3步开启自动化编译
1. 准备代码仓库
首先克隆项目到本地:
git clone https://gitcode.com/gh_mirrors/act/Actions-OpenWrt
2. 选择设备型号与配置
进入目标设备目录(以京东云AX6000为例):
cd Actions-OpenWrt/JDCloud-AX6000-Baili-hanwckf
修改diy-part2.sh定制固件功能,例如添加常用插件:
# 取消注释以下行以添加Docker支持
# sed -i 's/^#CONFIG_PACKAGE_luci-app-dockerman/CONFIG_PACKAGE_luci-app-dockerman/' .config
3. 启动GitHub Actions workflow
在GitHub仓库页面点击 Actions → 选择对应设备的workflow → 点击 Run workflow,根据提示选择:
- 源码分支(如
v7672支持mt_wifi v7.6.7.2驱动) - LAN IP地址(默认192.168.1.1)
- WiFi驱动版本(推荐
v7.6.7.2-fw-20240823)
进阶技巧:优化固件性能与功能
选择最佳WiFi驱动
项目提供多种WiFi驱动组合,影响无线性能和稳定性:
- 推荐组合:
v7.6.7.2-fw-20240823,基于联发科官方20240823版本固件 - 兼容性选择:
v7.6.6.1-fw-20230808,适合对稳定性要求高的场景
查看当前驱动版本的命令:
# 查看WiFi驱动版本
iwpriv ra0 get_driverinfo
# 查看固件版本
strings /lib/firmware/7986_WACPU_RAM_CODE_release.bin | grep -E '202[0-9]{6}'
调整无线发射功率
通过修改eeprom参数提升信号强度(以京东云AX6000为例):
# 临时调整5G发射功率为24dBm
hex_value='\x2B'
printf "$hex_value%.0s" $(seq 1 20) > /tmp/tmp.bin
dd if=/tmp/tmp.bin of=/lib/firmware/MT7986_ePAeLNA_EEPROM_AX6000.bin bs=1 seek=$((0x445)) conv=notrunc
切换交换机驱动模式
根据网络需求选择合适的交换机驱动:
- GSW模式:支持swconfig配置工具,适合简单网络拓扑
- DSA模式:支持高级VLAN配置,适合复杂网络环境
切换命令:
# 在uboot环境变量中设置
fw_setenv switch_mode dsa # 或 gsw
故障排除:常见问题与解决方法
编译失败
- 依赖问题:检查
feeds.conf.default是否包含必要源 - 配置冲突:使用
make defconfig重置配置后重新定制
固件无法启动
- 检查分区表是否匹配:使用
sgdisk -p /dev/mmcblk0确认分区结构 - 恢复原厂uboot:通过串口刷写备份的
mmcblk0p4_fip.bin - 验证固件格式:确保选择正确的镜像类型(.bin格式适用于Legacy系统,.itb格式适用于FIT系统)
无线功能异常
- 恢复factory分区:
dd if=mmcblk0p3_factory.bin of=$(blkid -t PARTLABEL=factory -o device) - 更换eeprom文件:替换
/lib/firmware/MT7986_ePAeLNA_EEPROM_AX6000.bin
刷机教程:以京东云AX6000为例
备份原厂分区
# 备份关键分区到storage
dd if=/dev/mmcblk0boot0 of=/mnt/mmcblk0p13/mmcblk0boot0_bl2.bin conv=fsync
dd if=/dev/mmcblk0p3 of=/mnt/mmcblk0p13/mmcblk0p3_factory.bin conv=fsync
刷写uboot与分区表
# 刷写bl2
echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=mt7986_jdcloud_re-cp-03-bl2_20241010.bin of=/dev/mmcblk0boot0 conv=fsync
# 刷写gpt分区表
dd if=jdcloud_re-cp-03_rootfs512M_production512M-gpt.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync
通过uboot webui刷固件
- 路由器断电,按住reset键上电,指示灯变蓝后松开
- 电脑设置固定IP 192.168.1.2,访问http://192.168.1.1
- 上传编译好的固件文件,等待刷写完成自动重启
总结:打造个性化OpenWrt固件的最佳实践
通过GitHub Actions-OpenWrt项目,即使是新手也能轻松定制专业级OpenWrt固件。关键步骤包括:
- 选择合适的设备配置目录
- 优化编译选项与驱动版本
- 利用uboot工具安全刷机
- 根据需求调整无线参数与网络配置
项目持续整合hanwckf等大佬的闭源驱动和优化补丁,支持MT7981/MT7986等主流芯片方案,为路由器爱好者提供了一站式的固件定制解决方案。
【免费下载链接】Actions-OpenWrt 自用 项目地址: https://gitcode.com/gh_mirrors/act/Actions-OpenWrt
更多推荐



所有评论(0)