AskaEth
8cd6e21cad
fix(bootmenu): M23 评审 r1 — 修 P2-1 降级路径 + P2-2 Bug4 防护退化
P2-1(降级路径把老 bug 请回来):settings 不可读时不再原样采信面板瞬时值。
bm_bri_pick_saved 的 panel 分支改为 min(面板, BM_BRI_SAFE_LOW),src 改名 panel-capped;
BM_BRI_SAFE_LOW 20 → 10,与 meow_watchdog 的 WD_BRI_SAFE_LOW 对齐(同一系统同一个安全下限)。
这样 settings 不可读 + 面板 60(播放器启动画面值)时 saved 是 10,扫描窗/确认框不会再写 60。
注释改掉「与 wd_bri_decide 同构」的断言:方向相同,但 bootmenu 没有运行期亮度快照,
降级走安全下限而不是 M20 的「快照 → cur>0 不写」链。
单测:把原先钉死 bug 的 "fallback keeps panel 60" 改成 "caps panel 60 -> SAFE_LOW 10",
并补「比 SAFE_LOW 更暗的真实值保留」「SAFE_LOW 与 M20 对齐」两个断言。
P2-2(busy 门可能让 Bug 4 防护变成空操作):删除 /proc D 态门,触发条件回到 pre-M23 的
「窗口内 + 面板暗(bri<=0)+ 面板未下电(bl_power<=0)」。
避免「熄屏瞬间爆亮」改由两条可观测信号承担:bl_power>0(播放器 FBIOBLANK)与
「电源键按下后 3s 内不补」(supervisor 已在 10ms 轮询 evdev,记录按下边沿)。
单测补 Bug4 防退化回归用例(窗口剩余 89999ms、面板暗、未下电 → 必须补)。
评审非阻塞三条:
- 日志节流:同一原因 ≥2s 一条、原因跃迁也 ≥1s(防 visible↔scan-floor 每 400ms 交替刷屏,
90s 窗口最坏 ~90 行);日志字段 busy= 换成 pwr_ago=。
- 单测复跑配方补 TMPDIR;tmp_root() 增加自愈(TMPDIR → 可写 /tmp → $HOME/tmp/m23test)。
- 验收配方(3 次亮/灭屏 + 进一次开机菜单 + 期望日志行)写进报文。
只交源码:不含二进制、不改 fw_content.conf、不动 build_bootmenu.sh。
2026-11-11 18:42:41 +08:00
..
2026-09-01 18:28:07 +08:00
2026-11-11 18:42:41 +08:00
2026-11-10 22:51:00 +08:00
2026-11-10 22:51:00 +08:00
2026-11-05 20:16:29 +08:00
2026-11-04 20:02:28 +08:00
2026-09-03 12:16:01 +08:00
2026-11-11 17:59:13 +08:00
2026-11-04 20:02:28 +08:00
2026-09-02 16:25:51 +08:00
2026-08-31 22:40:08 +08:00
2026-08-31 19:30:32 +08:00
2026-09-03 12:16:01 +08:00
2026-09-01 03:25:01 +08:00
2026-09-02 02:39:11 +08:00
2026-08-31 13:28:07 +08:00
2026-08-31 15:36:45 +08:00
2026-11-10 22:51:00 +08:00
2026-11-04 20:10:42 +08:00
2026-11-10 21:42:37 +08:00
2026-11-10 22:54:11 +08:00
2026-11-06 13:34:45 +08:00
2026-11-11 13:15:54 +08:00
2026-11-10 22:54:11 +08:00
2026-09-01 11:06:01 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 03:27:24 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 03:27:24 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 03:27:24 +08:00
2026-08-30 03:27:24 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00