7.6 KiB
7.6 KiB
title, type, permalink, stable_id, scope, project_id, workspace_type, usage_profile_id, preference_context, document_type, revision, source_memory_ids, source_checkpoint_ids, source_file_ids, source_git_commit, source_git_commits, source_agent_sync_ids, model_connection, model_name, source_count, source_revisions, source_dispositions, cited_source_ids, job_cited_source_ids, conflicts, supersedes, preferences, source_cursor, source_hash, prompt_version, schema_version, curation_job_id, created_at, updated_at, tags, restored_from_commit
| title | type | permalink | stable_id | scope | project_id | workspace_type | usage_profile_id | preference_context | document_type | revision | source_memory_ids | source_checkpoint_ids | source_file_ids | source_git_commit | source_git_commits | source_agent_sync_ids | model_connection | model_name | source_count | source_revisions | source_dispositions | cited_source_ids | job_cited_source_ids | conflicts | supersedes | preferences | source_cursor | source_hash | prompt_version | schema_version | curation_job_id | created_at | updated_at | tags | restored_from_commit | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ax9000WRTBuild Deployment Guide | curated | main/projects/6f47523e-e22e-4cdd-bd18-76e5e474ee0c/curated/development/ax9000-wrtbuild-deployment-guide | a4a7ba4a-0a7a-431f-bcf1-d8322f6b922a | project | 6f47523e-e22e-4cdd-bd18-76e5e474ee0c | general | null | general | deployment | 1 | c62e79c3b986262321aa4242f0ece56c4629ae0e |
|
Sub2API | git-restore | 81 |
|
|
13 | a3dc8f049fcd5e54d4e2bc4b420c13cce749fadf5c3ca6178780171167541cf3 | 2026-08-12.3 | 3 | null | 2026-08-12T18:38:21.471752+00:00 | 2026-09-23T14:58:56.167185+00:00 |
|
6a6a895eaf |
部署概览
本文件基于 Ax9000WRTBuild 项目当前的证据,概述了完整的构建、打包以及交付流程,适用于 development 工作空间。
1. 高层架构
- 宿主操作系统: Windows 10/11 + WSL2, 通过 Docker Desktop 使用 Linux 容器。 (source:
memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823) - Docker 镜像:
ubuntu:24.04基础 → 自建openwrt‑local‑builder:25.12。镜像大小约 5 GB,包含交叉编译工具链。 (source:memory:ac351f5e-5eb7-4752-8666-56550b5b2130) - 持久化卷: 名为
openwrt-build-work的 Docker 命名卷 (> 50 GB) 用于缓存工具链和中间产物,保证增量构建可复现。 (source:memory:ac351f5e-5eb7-4752-8666-56550b5b2130) - 服务层: FastAPI 0.139.0 监听
0.0.0.0:9001(开发模式下未启用认证),Vue 3 + Vite 在localhost:9000提供 UI。 (source:memory:f3d0deb6-4d3a-4877-aec0-ceeb9c26ffb6)
2. 关键设计决定(按时间顺序)
- 采用 Qosmio/openwrt‑ipq 25.12‑nss 分支,启用 Qualcomm NSS 加速。 (source:
memory:4f3555d5-bffb-45c9-9c35-a04e7c41800f) - Docker 隔离 + 大容量卷,实现可复现的交叉编译环境。 (source:
memory:4f3555d5-bffb-45c9-9c35-a04e7c41800f) - 后端/前端分离:FastAPI + Vue3。 (source:
memory:4f3555d5-bffb-45c9-9c35-a04e7c41800f) - 分区方案:单一 232 MiB UBI
rootfs(暗云大分区),确保固件大小受限设备可直接刷写。 (source:memory:4f3555d5-bffb-45c9-9c35-a04e7c41800f) - 自定义 LuCI 应用
luci‑app‑ax900‑hardware用于风扇与 LED 控制。 (source:memory:4f3555d5-bffb-45c9-9c35-a04e7c41800f) - KISS & YAGNI 原则始终适用:仅针对 AX9000 进行功能实现,避免引入不必要的依赖。 (source:
memory:bf88c265-4749-4c50-85bc-4bae25298cd5) - 认证缺失风险已被标记为最高优先级任务。 (source:
memory:67e34406-4966-4e48-ab88-69e2fb15a144)
3. 构建工作流(脚本层)
- 准备 –
scripts/build.sh读取profile.env(目标qualcommax/ipq807x,设备 IDxiaomi_ax9000),克隆https://github.com/qosmio/openwrt-ipq.git25.12‑nss 分支。 (source:memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823) - 外部包 –
install_external_packages.py根据external-packages.json拉取额外 Git 包并拷贝到package/openwrt‑local/。 (source:memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823) - Feeds –
build_config.py feeds将feeds.json合并至feeds.conf.default。 (source:memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823) - Kconfig 种子 –
seed.config启用qualcommax/ipq807x目标、xiaomi_ax9000设备、NSS 模块、SquashFS 根文件系统、Argon 主题 + Nginx。 (source:memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823) - 选项生成 –
build_config.py options解析default-options.json与用户提交的 JSON,生成完整的 OpenWrt.config,包括语言、防火墙后端、代理预设、IPv6、运行时镜像等。 (source:memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823) - 后置补丁 – 如存在
post-patch.sh,会调用scripts/patch_ax9000.py,实现:- 大根分区布局修改
- EMC2305 风扇 I²C 节点添加
- NSS 固件与驱动回溯补丁 (
830‑01…‑05)。 (source:memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823)
- 配置验证 –
verify_final_config检查已启用的包、设备、IPv6 与防火墙兼容性、NSS Offload (CONFIG_ATH11K_NSS_SUPPORT=y)。 (source:memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823) - 编译 –
make -j$(nproc+1)在容器内执行,生成sysupgrade,factory.ubi,initramfs-uImage.itb等镜像。 (source:memory:f3d0deb6-4d3a-4877-aec0-ceeb9c26ffb6) - 产物包装 – 编译完成后,
outputs/ax9000/生成时间戳 ZIPOpenWRT-AX9000-YYYY-MM-DD_HH-mm-ss.zip。 (source:memory:f3d0deb6-4d3a-4877-aec0-ceeb9c26ffb6) - 日志持久化 –
outputs/ax9000/logs/<ts>.log保存完整构建日志。 (source:memory:468f52a6-e941-49f7-a422-64bbcec6e0f4)
4. 当前最高优先级任务
| 编号 | 任务描述 | 关联来源 |
|---|---|---|
| 1 | 修复 Docker Hub 代理(手动代理模式 http://127.0.0.1:7897) |
memory:67e34406-4966-4e48-ab88-69e2fb15a144 |
| 2 | 为 FastAPI 添加基于 JWT 的本地/局域网认证并绑定至 127.0.0.1 |
memory:67e34406-4966-4e48-ab88-69e2fb15a144 |
| 3 | 将 .runtime/*.json 中的明文凭证迁移至 Vaultwarden 引用 |
memory:105b328f-4bda-4641-90a7-7282ef156316 |
| 4 | 固定所有外部依赖的 Docker 镜像 digest 与 Git SHA | memory:67e34406-4966-4e48-ab88-69e2fb15a144 |
| 5 | 用标准 .patch 文件取代 patch_ax9000.py 的文本式补丁 |
memory:67e34406-4966-4e48-ab88-69e2fb15a144 |
| 6 | 实现 GitHub Actions CI:代码检查、单元/集成测试、构建与制品上传 | memory:67e34406-4966-4e48-ab88-69e2fb15a144 |
| 7 | 将 JSON‑Schema 合并为单一源,自动生成 Pydantic 与 TypeScript 类型 | memory:67e34406-4966-4e48-ab88-69e2fb15a144 |
5. 全局开发原则(引用)
- KISS & YAGNI – 只实现最简功能,禁止投机性依赖。 (source:
memory:bf88c265-4749-4c50-85bc-4bae25298cd5) - 复用框架、服务、工具 – 充分利用现有 OpenWrt、FastAPI、Vue 生态。 (source:
memory:e4fc35f2-1606-4b79-9c1e-367edeea97d0) - UI 布局 – 左标签/右控件紧凑表单,固定头部,内部滚动。 (source:
memory:e4fc35f2-1606-4b79-9c1e-367edeea97d0) - 凭证管理 – 所有密钥仅存于 Vaultwarden,记忆记录只保存 name/ purpose / usage。 (source:
memory:105b328f-4bda-4641-90a7-7282ef156316)
6. 偏好声明(场景级)
{
"statement": "所有代码改动必须遵循 KISS & YAGNI 并在提交前通过完整的单元/集成测试",
"level": "scenario",
"workspace_types": ["development"],
"workspace_ids": [],
"source_ids": ["memory:bf88c265-4749-4c50-85bc-4bae25298cd5"],
"counterexample_source_ids": [],
"occurrence_count": 1,
"explicit": true,
"confidence": 1.0,
"status": "current"
}