Files
MemRelay/projects/6f47523e-e22e-4cdd-bd18-76e5e474ee0c/固件构建完整流程.md
T

1.8 KiB
Raw Blame History

title, type, permalink, stable_id, scope, project_id, memory_type, status, revision, restored_from_commit, created_at, updated_at, tags
title type permalink stable_id scope project_id memory_type status revision restored_from_commit created_at updated_at tags
固件构建完整流程 fact main/projects/6f47523e-e22e-4cdd-bd18-76e5e474ee0c/固件构建完整流程 98bc33f7-c293-4e7c-aca8-f54752e2d5fa project 6f47523e-e22e-4cdd-bd18-76e5e474ee0c fact active 1 6a6a895eaf 2026-09-23T14:59:51.013720+00:00 2026-09-23T14:59:51.013782+00:00
build
docker
workflow

启动方式

  • Web 构建:前端 startBuild() → POST /api/build → 后端写临时 JSON → 调用 build-docker.ps1
  • 命令行:.\scripts\build-docker.ps1 [-Jobs N] [-Clean]

构建链

  1. build-docker.ps1 执行 docker build -t openwrt-local-builder:25.12(无代理支持)
  2. docker run 挂载项目到 /workspace、缓存卷 openwrt-build-work 到 /work
  3. docker-entrypoint.sh 修正文件权限,gosu builder 执行 build.sh
  4. build.sh 主流程: a. 从 Qosmio openwrt-ipq:25.12-nss 克隆/更新源码 b. 安装固定提交的外部包(LAN-Wake 等) c. 复制本地 packages/ 到 OpenWrt d. 根据选项重写 feeds(build_config.py feeds) e. 载入 seed.config f. build_config.py options 转换用户选项为 .config 和 UCI defaults g. feeds update && install h. 修补第三方包兼容性 i. build_config.py branding 注入品牌信息 j. patch_ax9000.py 应用分区/DTS/升级/内核补丁 k. make defconfig 并验证设备/NSS/IPv6 l. make -j$JOBS || make V=s m. 复制产物到 outputs/ax9000/
  5. 后端打包为时间戳 ZIP:OpenWRT-AX9000-YYYY-MM-DD_HH-mm-ss.zip
  6. 构建日志通过 SSE (/api/logs/stream) 实时推送

构建缓存

Docker 命名卷 openwrt-build-work 在增量构建间保留。-Clean 参数清理 OpenWrt 源码树。