MX8500 report: txpower limit removed, 41 min without wwan2 stall; record accidental reboot

This commit is contained in:
2026-10-28 21:26:35 -04:00
parent 27cb30f667
commit be6e692179

View File

@@ -23,7 +23,7 @@
| 接口 | 状态 | 处理 |
|---|---|---|
| wwan5(5G) | 已解决 | radio0 HE160 → HE40,观察 63 分钟无故障 |
| wwan2(2.4G) | 已缓解,看门狗兜底 | radio1 HE40 → HE20,故障频率大幅下降;**下次编译固件加入 `CONFIG_HE_OVERRIDES`,对 wwan2 设置 `disable_he=1`**(见“未处理 / 后续”) |
| wwan2(2.4G) | 初步解决,看门狗兜底 | radio1 HE40 → HE20,再去掉 `txpower='13'` 限制(现 29 dBm)后观察 41 分钟无故障、tx failed 约 0.1%,需更长时间确认。如果仍复发,下次编译固件加入 `CONFIG_HE_OVERRIDES`,对 wwan2 设置 `disable_he=1`(见“未处理 / 后续”) |
| 两者 | 自动恢复 | 新增 `wwan-watchdog`,断流约 2 分钟内自动重连 |
## 排查结果
@@ -85,7 +85,7 @@ wifi up radio0
代价:2.4G 热点从 40 MHz 降到 20 MHz,5G 热点从 160 MHz 降到 40 MHz。高带宽需求由 6 GHz 热点(radio2,HE160)承担,未改动。
`txpower='13'` 保持不变。
radio1 原有 `txpower='13'`,后来去掉了(见“验证”中的 txpower 一节)。
注意:`wifi up radioX` 会断开该射频上的 STA。如果 SSH 正好走这条上联,命令可能执行到一半就断,应在路由器上放到后台执行(BusyBox 没有 `nohup`):
@@ -176,6 +176,43 @@ wifi up radio0
一分钟内 tx failed 从 182 涨到 853、速率掉到 MCS0,与最初的故障特征一致。两次都是断流约 1.5 分钟,看门狗自动恢复。同一时间 wwan5 正常(两条 SSID 走同一个 Nomadix 网关),说明是 2.4G 本机无线问题,不是上游故障。HE20 大幅降低了频率,但没有根治 wwan2。
### wwan2:去掉 radio1 发射功率限制后
00:41 删除了 radio1 的 `txpower='13'`,实际发射功率从 13 dBm 变为 29 dBm(radio0 原本就是 28 dBm)。
观察期间发生了一次意外重启(见下方“事故”),所以观察从开机算起:00:44 – 01:25,共 41 分钟。
| 项目 | HE20、13 dBm | HE20、29 dBm |
|---|---|---|
| 故障间隔 | 25 – 52 分钟一次 | 41 分钟内 0 次 |
| tx failed / tx packets | 故障前一分钟内 182 → 853 | 56 / 42954(约 0.13%) |
| tx 速率 | 故障时 HE-MCS0 8.6 Mbit/s | HE-MCS8 NSS2 206.5 Mbit/s |
| 看门狗动作 | 每次故障都触发 | 0 次 |
| mwan3 wwan2 状态变化 | offline / online | 只有开机时一次 online |
结果很好,但 41 分钟比之前最长的 52 分钟间隔还短,不能确定已根治,需要观察一天以上。查看方法:
```sh
logread -e wwan-watchdog | grep -v crond
logread | grep -E 'mwan3track.*wwan2 .*(offline|online)'
```
推测:发射功率低时,上行(STA → AP)的帧更容易失败,ath11k 的速率控制退到 MCS0 后没能恢复,进入“半死”状态。
### 事故:误杀 procd 导致路由器重启(00:44)
停止上一轮监控循环时,在路由器上执行了:
```sh
for p in $(pgrep -f 'sleep 60'); do pp=$(awk '{print $4}' /proc/$p/stat); kill $pp $p; done
```
本意是杀掉监控循环的 shell。但路由器上还有其他已被 init 收养的 `sleep 60` 进程,它们的父进程是 PID 1(procd),所以实际执行了 `kill 1`。procd 收到 SIGTERM 会重启系统。
影响:路由器重启一次,两条上联断线约 1 分钟。重启后检查,所有设置都在(HE40 / HE20、去掉的 txpower、crontab、看门狗、路由规则脚本、mwan3.user),wwan2 / wwan5 自动上线,prio 100 规则自动加回。
教训:不要按进程名批量 kill,更不要 kill 查到的父进程。停止远程监控只需结束本机的 ssh 进程。
另外试过把 radio1 改成 `HT20`:只有热点变成 HT,wwan2 仍然以 HE 连接上游(`tx bitrate ... HE-MCS 6`),没有意义,已改回 HE20。
### wwan5:HE160 时看门狗触发一次,HE40 后稳定
@@ -215,6 +252,8 @@ radio0 仍为 HE160 时,wwan5 出现了同样的故障,看门狗自动恢复
### wwan2:下次编译固件时加入 HE overrides,对 wwan2 关闭 HE
去掉 txpower 限制后 wwan2 暂未复发。如果长时间观察确认不再复发,这一步可以不做;如果仍复发,再按下面的方案处理。
目前 wwan2 靠看门狗兜底:wwan2 只是副线路(mwan3 权重 3),断流期间流量会自动走 wwan5,约 2 分钟内恢复。
要根治,需要让 wwan2 不用 HE(Wi-Fi 6)连上游,只用 HT(Wi-Fi 4)。wpa_supplicant 有网络级参数 `disable_he=1`,但现有固件不支持:
@@ -280,7 +319,6 @@ logread -e wwan-watchdog | grep wwan2
### 其他
- **wwan5 登录过期**:看门狗只记录日志,不会自动登录。如果上游登录页能用简单的 HTTP 表单提交,可以再加自动登录。
- **txpower**:radio1 的 `txpower='13'` 没有动。如果关 HE 后 wwan2 仍有问题,下一个可以试的是去掉这个限制。
- 每天 07:00 的定时重启(`0 7 * * * reboot`)保持不变。
## 回滚