Skip to content

LazuliKao/wrt_release

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

658 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

编译指南

本仓库用于按设备配置自动拉取 OpenWrt / ImmortalWrt / LiBwrt 源码、应用自定义补丁与软件包配置,并输出固件到 firmware/ 目录。

1. 环境准备

推荐使用 Ubuntu LTS 或其他主流 Linux 发行版。OpenWrt 编译对磁盘空间、内存和文件系统大小写敏感性有要求,建议预留充足磁盘空间并在原生 Linux 文件系统中编译。

2. 安装编译依赖

sudo apt -y update
sudo apt -y full-upgrade
sudo apt install -y dos2unix libfuse-dev jq
sudo bash -c 'bash <(curl -sL https://build-scripts.immortalwrt.org/init_build_environment.sh)'

容器构建还需要已安装并可正常运行的 Docker。

3. 获取源码

git clone https://github.com/ZqinKing/wrt_release.git
cd wrt_release

4. 编译用法

交互式选择

直接运行脚本会列出当前 wrt_core/compilecfg/*.iniwrt_core/deconfig/*.config 同时存在的设备配置,并提示选择构建模式:

./build.sh

直接指定设备

./build.sh <设备配置名> [debug|container|container_debug|recipe_preview|recipe_config]

构建模式说明:

模式 命令示例 说明
默认 ./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。
recipe_preview ./build.sh x64_immwrt recipe_preview 仅打印当前目标的 recipe 解析结果,不进入交互。
recipe_config ./build.sh x64_immwrt recipe_config 打开 recipe 交互式配置界面,可切换 target 覆盖与 recipe 默认启用状态。

recipe_config 模式命令:

  • t <index>:切换当前 target 的 recipe 开关,写回 wrt_core/compilecfg/<设备配置名>.ini 中的 RECIPES / DISABLE_RECIPES
  • d <index>:切换 recipe 默认 enabled,写回 wrt_core/recipes/<recipe>/recipe.json
  • p:打印当前解析后的 recipe 执行顺序
  • h:重新显示帮助
  • q:退出交互界面

依赖中的 recipe 不能直接关闭;必须先关闭依赖它的 recipe。非交互 recipe_preview 仍保持只打印并退出。

编译完成后,脚本会从 <BUILD_DIR>/bin/targets/ 收集固件文件到仓库根目录的 firmware/。每次完整构建前会清理旧的目标固件文件,firmware/Packages.manifest 会被移除。

5. 支持设备

设备配置名来自 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

6. 配置来源

每个设备由两类文件共同定义:

  • wrt_core/compilecfg/<设备配置名>.ini:定义源码仓库、分支、构建目录、可选提交哈希和容器 SDK 镜像。
  • wrt_core/deconfig/<设备配置名>.config:定义 OpenWrt 目标平台、设备和软件包配置。

不同设备会使用不同上游源码,例如 VIKINGYFY/immortalwrtimmortalwrt/immortalwrtLiBwrt/openwrt-6.xpadavanonly/immortalwrt-mt798x 或本仓库维护的特定分支。BUILD_TARGET_SDK 未配置时,容器构建默认使用 immortalwrt/sdk:openwrt-25.12

构建时会按顺序组合配置:

  1. 设备专用 .config
  2. compile_base.config
  3. IPQ60xx / IPQ807x 目标自动追加 nss.config
  4. docker_deps.config
  5. proxy.config

7. 三方插件

三方插件主要通过 feeds 机制加入,其中 small-package 源自:

https://github.com/kenzok8/small-package.git

相关增删和同步逻辑位于 wrt_core/modules/feeds.shwrt_core/modules/packages.sh

8. 项目结构说明

  • 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 规则和其他构建时注入文件。

9. OAF(应用过滤)功能使用说明

使用 OAF(应用过滤)功能前,需先完成以下操作:

  1. 打开系统设置 → 启动项 → 定位到「appfilter」
  2. 将「appfilter」当前状态从已禁用更改为已启用
  3. 完成配置后,点击启动按钮激活服务

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Shell 88.8%
  • Makefile 11.2%