Files

46 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 离线镜像 1.0.2 真实 TF 卡验收记录(旧产物,已失效)
## 失效说明
- 本记录对应 SHA-256 `3a28d9b5200ed22824a628a46ce8d36851cc8366bbf3b8cbd22a2b9a7c4b9128` 的旧 IMG。该镜像最终没有监听 SSH 22 端口,缺少正式导出包的必要功能,因此不得再作为正式包使用。
- 旧 IMG 已删除,并由同版本的新 IMG 原子替换;新产物摘要以根目录 `发布记录.json` 和 `发布更新相关/导出包/1.0.2/manifest.json` 为准。
- 以下内容只保留当时失败定位和已完成硬件检查的历史证据,不代表新产物已通过真实 TF 卡首启、SSH 或重启验收。新产物须在用户完成镜像编辑、写卡和上电后另行验证。
## 旧产物当时的结论
- 用户于 2026-08-19 现场确认控制界面没有问题,同意按当前结果完成本次任务验收。
- 当时测试的镜像软件版本为 `1.0.2`,旧 SHA-256 为 `3a28d9b5200ed22824a628a46ce8d36851cc8366bbf3b8cbd22a2b9a7c4b9128`;该摘要现已失效。
- 浏览器真实打开控制界面成功,首页和七项侧栏工作区入口正常渲染,控制台无 warning/error。
- `/api/status` 返回 `software_version=1.0.2`;真实 `walnutpi-h618-hub75` 驱动、PI bank 映射、H618 PWM4 OE、CPU3 绑定、实时优先级和内存锁定均生效,采样时截止丢失、OE fault、强制黑屏和 `last_error` 均为 0。
- 未连接 HUB75 屏幕和 ADC;ADC 被正确报告为断开,此项不算失败。
- 设备 Ping 与 HTTP 8080 持续可达。SSH 22 端口在最终复查时仍未监听,因此没有完成 SSH 登录;该项明确记为未通过/未验证,不伪写为通过。用户接受此例外并要求收口。
- 没有进行验收后的额外一次显式重启测试;首次启动过程中的自动重启无法从 5 秒网络采样中单独证明,持久重启项保留为未单独验证。
- 本文件不包含账户、密码、Wi-Fi、配置槽内容或设备身份值。
## 真实失败与修复过程
1. 首次启动在 `packages` 阶段失败。FAT 状态文件证明 FFmpeg 的 Debian AArch64 离线材料只有 13 个包,不是完整闭包。
2. 从基础镜像导出 790 个正常安装包作为 `BASE_IMAGE_PACKAGES.tsv`,使用 Debian Bookworm、Updates、Security AArch64 索引递归解析并补齐 FFmpeg/libheif 闭包。
3. 第二次启动越过包阶段后在 `deploy` 阶段失败。`MSCDEPLOY.TXT` 证明基础镜像缺少 `python3.11-venv/ensurepip`。
4. 将 `python3.11-venv` 加入正式根依赖并补齐 8 个包;最终 Debian 离线集合为 84 个 `.deb`。
5. venv、全部 wheel、H618 原生驱动编译、原生测试和专用主机检查随后全部通过,但部署停在 `systemctl enable --now`。
6. 根因是 `matrix-image-firstboot.service` 声明 `Before=matrix-screen-controller.service`,却在 oneshot 内同步等待控制服务启动,形成 systemd 排序死锁。
7. 镜像首启改为只启用控制服务并延迟到自动重启后启动;增加同版本中断恢复门禁,只有版本、venv、原生文件、unit 和专用主机检查全部通过时才接管已有 `/opt`。
8. 最终控制网页和真实驱动正常运行,用户现场确认界面没有问题。
## 自动验证
- Python:`297 passed, 8 skipped`。
- Node:`61 passed`。
- Debian:84 个 `.deb`,86 个摘要条目全部通过;三个根依赖的本地闭包解析共选择 84 个包。
- 发布相关 shell 脚本通过语法检查。
- 正式镜像 FAT 载荷每次均读回验证;修复前后第二分区 SHA-256 始终为 `9ea9f86fa39fbc481a6a99623c39cdbbdf1cf86fc642add49acdf02f8f26744a`,证明同版本修复没有改变已验收的 rootfs bootstrap 分区。
- 官方基础镜像保持只读,正式镜像只在复制件上修改。
## 防回归规则
- 镜像构建前必须以 `BASE_IMAGE_PACKAGES.tsv` 验证 `ffmpeg`、`libheif-examples`、`python3.11-venv` 的完整递归闭包;缺根包、传递包、基准清单或摘要时拒绝导出。
- Debian 安装失败保留无配置凭据的 `MSCPKG.TXT`/`MSCPKGS.TSV`;部署失败保留无配置凭据的 `MSCDEPLOY.TXT`;成功时删除这些诊断文件。
- 首启 oneshot 不得同步启动受其 `Before=` 排序约束的控制服务。
- 本归档是一次性验收记录,不得作为后续构建输入;后续构建不得引用 `发布更新相关/导出包/<版本>/`。