本仓库用于按设备配置自动拉取 OpenWrt / ImmortalWrt / LiBwrt 源码、应用自定义补丁与软件包配置,并输出固件到 firmware/ 目录。
推荐使用 Ubuntu LTS 或其他主流 Linux 发行版。OpenWrt 编译对磁盘空间、内存和文件系统大小写敏感性有要求,建议预留充足磁盘空间并在原生 Linux 文件系统中编译。
sudo apt -y update
sudo apt -y full-upgrade
sudo apt install -y dos2unix libfuse-dev
sudo bash -c 'bash <(curl -sL https://build-scripts.immortalwrt.org/init_build_environment.sh)'容器构建还需要已安装并可正常运行的 Docker。
git clone https://github.com/ZqinKing/wrt_release.git
cd wrt_release直接运行脚本会列出当前 wrt_core/compilecfg/*.ini 与 wrt_core/deconfig/*.config 同时存在的设备配置,并提示选择构建模式:
./build.sh./build.sh <设备配置名> [debug|container|container_debug]构建模式说明:
| 模式 | 命令示例 | 说明 |
|---|---|---|
| 默认 | ./build.sh x64_immwrt |
拉取源码、应用配置、下载依赖并完整编译固件。 |
debug |
./build.sh x64_immwrt debug |
执行到 make defconfig 后停止,用于检查配置,不产出固件。 |
container |
./build.sh x64_immwrt container |
使用 Docker 容器执行完整构建,减少本机环境差异。 |
container_debug |
./build.sh x64_immwrt container_debug |
在 Docker 容器中执行 debug 流程并进入交互 shell。 |
编译完成后,脚本会从 <BUILD_DIR>/bin/targets/ 收集固件文件到仓库根目录的 firmware/。每次完整构建前会清理旧的目标固件文件,firmware/Packages.manifest 会被移除。
设备配置名来自 wrt_core/compilecfg/ 和 wrt_core/deconfig/ 中同名文件。当前支持:
| 厂商 / 平台 | 设备 | 配置名 |
|---|---|---|
| 京东云 | 雅典娜(02)、亚瑟(01)、太乙(07)、AX5(JDC版) | jdcloud_ipq60xx_immwrt |
| 京东云 | 雅典娜(02)、亚瑟(01)、太乙(07)、AX5(JDC版) - LiBwrt | jdcloud_ipq60xx_libwrt |
| 京东云 | 百里 / AX6000 | jdcloud_ax6000_immwrt |
| 阿里云 | AP8220 | aliyun_ap8220_immwrt |
| 阿里云 | AP8220 - LiBwrt | aliyun_ap8220_libwrt |
| Linksys | MX4200v1、MX4200v2、MX4300 | linksys_mx4x00_immwrt |
| Link | NN6000v2 | link_nn6000v2_immwrt |
| 奇虎 | 360v6 | qihoo_360v6_immwrt |
| 红米 | AX5 | redmi_ax5_immwrt |
| 红米 | AX6 | redmi_ax6_immwrt |
| 红米 | AX6 - LiBwrt | redmi_ax6_libwrt |
| 红米 | AX6000 | redmi_ax6000_immwrt21 |
| CMCC(中国移动) | RAX3000M | cmcc_rax3000m_immwrt |
| 斐讯 | N1 | n1_immwrt |
| 兆能 | M2 | zn_m2_immwrt |
| 兆能 | M2 - LiBwrt | zn_m2_libwrt |
| Gemtek | W1701K | gemtek_w1701k_immwrt |
| x86 | X64 | x64_immwrt |
示例:
./build.sh jdcloud_ipq60xx_immwrt
./build.sh aliyun_ap8220_libwrt
./build.sh redmi_ax6_libwrt container每个设备由两类文件共同定义:
wrt_core/compilecfg/<设备配置名>.ini:定义源码仓库、分支、构建目录、可选提交哈希和容器 SDK 镜像。wrt_core/deconfig/<设备配置名>.config:定义 OpenWrt 目标平台、设备和软件包配置。
不同设备会使用不同上游源码,例如 VIKINGYFY/immortalwrt、immortalwrt/immortalwrt、LiBwrt/openwrt-6.x、padavanonly/immortalwrt-mt798x 或本仓库维护的特定分支。BUILD_TARGET_SDK 未配置时,容器构建默认使用 immortalwrt/sdk:openwrt-25.12。
构建时会按顺序组合配置:
- 设备专用
.config compile_base.config- IPQ60xx / IPQ807x 目标自动追加
nss.config docker_deps.configproxy.config
三方插件主要通过 feeds 机制加入,其中 small-package 源自:
https://github.com/kenzok8/small-package.git
相关增删和同步逻辑位于 wrt_core/modules/feeds.sh 与 wrt_core/modules/packages.sh。
build.sh:主编译入口,负责设备选择、模式选择、配置组合、容器构建和固件收集。firmware/:完整构建后的固件输出目录,由脚本自动创建和刷新。wrt_core/build_container.sh:容器内构建入口。wrt_core/update.sh:源码更新、feeds 调整、软件包同步和补丁应用主流程。wrt_core/pre_clone_action.sh:GitHub Actions 预克隆辅助脚本。wrt_core/compilecfg/:设备构建元信息.ini。wrt_core/deconfig/:设备和共享默认配置.config。wrt_core/modules/:模块化脚本,包括仓库准备、网络重试、feeds/custom_feed、源码修正、LuCI 修正、服务修正、验证、Docker、CUPS 等静态职责模块。wrt_core/patches/:补丁、默认设置、Wi-Fi 初始化、NSS 诊断、PBR 规则和其他构建时注入文件。
使用 OAF(应用过滤)功能前,需先完成以下操作:
- 打开系统设置 → 启动项 → 定位到「appfilter」
- 将「appfilter」当前状态从已禁用更改为已启用
- 完成配置后,点击启动按钮激活服务