rack:固件下载目录自动清理(每小时,FwStore.prune)
- 固件库里登记过的(界面上传)不自动删;没登记的(ota_push.py 直传、台架镜像)放满 7 天删; 上传中断的 .tmp 1 小时删;非 <16 hex>.bin / .tmp 的文件名一律不碰 - 板子下载一次几秒就完、回滚用的是板上另一个槽,删旧文件不影响任何板子 - main.py:有 --fw-dir 时起清理循环,出错只记日志;test_firmware.py 加 2 例,共 41 例(本机 + 服务器) - 已部署;本机模拟板实测放一个 8 天前的孤儿镜像,启动即被清掉 Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
+2
-2
@@ -27,7 +27,6 @@ OTA 换固件 / 超时回滚现在走 `warm_restart()`(`main/warm_esp.c`):
|
||||
|
||||
## 下一步(没人定,候选)
|
||||
- 示波器验证:插一片刀片,CH 开着,OTA 带重启,抓 EN / 输出电压(`scope_*` 工具)。
|
||||
- 服务器 fw 目录不会自动清理旧镜像(每个 ~1 MB,问题不大)。
|
||||
|
||||
## 踩到的坑(c3)
|
||||
- `.rodata_custom_desc` 没人引用会被 `--gc-sections` 丢掉 ⇒ `main/CMakeLists.txt` 加 `-u g_phonerail_caps`。
|
||||
@@ -41,7 +40,8 @@ python tools/ota_push.py b81f3fc9c8bc # 推 build/phonerail.bin:只
|
||||
python tools/ota_push.py b81f3fc9c8bc --reboot # 校验过就立刻重启 —— ⚠️ 五台手机硬断电一次
|
||||
python tools/ota_push.py b81f3fc9c8bc --status
|
||||
```
|
||||
它把镜像传到服务器 `/root/phonerail/fw/<sha 前 16 位>.bin`(nginx 7765,只放行这种文件名,不过门户),
|
||||
它把镜像传到服务器 `/root/phonerail/fw/<sha 前 16 位>.bin`(nginx 7765,只放行这种文件名,不过门户;
|
||||
**不进固件库,7 天后 rack 后端自动删** —— 要长期留着就从界面上传),
|
||||
再在服务器上用后端账号经 1884 发命令、盯遥测。
|
||||
**rack 管理界面「固件」页也能推**(2026-09-27 加,上传 → 选板 → 可选立刻重启并二次确认;见 `rack/README.md`「推固件」)。
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户