42 lines
2.3 KiB
Markdown
42 lines
2.3 KiB
Markdown
# RM520N-GL 5G 模块故障排查与自启链路(2026-08-20 更新)
|
||
|
||
## 开机自启链路(已验证可靠)
|
||
```
|
||
/etc/modules.d/90-pcie_mhi (pcie_mhi mhi_mbim_enabled=1) 驱动加载
|
||
↓
|
||
/etc/rc.d/S95modem5g (等待 /dev/mhi_MBIM 后起 quectel-CM -s wonet)
|
||
↓
|
||
/etc/rc.d/S96wan5g-route (策略路由 from 200.0/24 lookup wan5g + MASQUERADE)
|
||
```
|
||
- **无需**在 rc.local 里手动 bind mhi_q(那会抢设备导致 SYS_ERR)
|
||
- 飞牛断电重启后,原生流程自动恢复拨号(2026-08-20 实测:rmnet_mhi0.1 = 10.x,ping 223.5.5.5 ≈ 8.9ms)
|
||
|
||
## 故障现象:5G 起不来 / 模块 SYS_ERR
|
||
**症状**:无 rmnet_mhi0.1、无 /dev/mhi_DUN|MBIM、只有 /dev/mhi_BHI、无 quectel-CM 进程
|
||
**dmesg**:`dev_state:SYS_ERR`、`probe failed error -5/-110`
|
||
|
||
### 排查顺序(重要教训)
|
||
1. **优先断电重启飞牛**(模块真正断电复位;istoreos 内 reboot 不动 PCIe 供电,治不好 SYS_ERR)
|
||
2. 若重启无效,**临时手动唤醒**:
|
||
```
|
||
echo 0000:00:0a.0 > /sys/bus/pci/drivers/mhi_q/bind
|
||
```
|
||
(mhi_q = pcie_mhi 驱动注册名。bind 后 /dev/mhi_MBIM 出现,rmnet 接口建立)
|
||
3. **不要**手动 unbind/rmmod pcie_mhi / rescan 折腾——会把设备弄成"无驱动孤儿",反而更难恢复
|
||
|
||
### 已确认的死路(勿重复踩)
|
||
- 禁用 modules.d 里的内核 mhi 驱动(mhi_pci_generic 等)**无效**:它们是 PCI autoload(modalias 拉起的),禁 modules.d 拦不住
|
||
- 手动 rmmod pcie_mhi + 重 insmod **不唤醒**(refcnt 仍 0)
|
||
|
||
## 移远 pcie_mhi 驱动机制
|
||
- `/lib/modules/6.6.144/pcie_mhi.ko`,alias 为 `MHI_CORE`(非标准 PCI ID 匹配)
|
||
- insmod 后 PCI probe 函数注册为驱动名 **mhi_q**(dmesg 里 `mhi_q 0000:00:0a.0` 就是 pcie_mhi 在跑)
|
||
- 与内核 `mhi_pci_generic`(识别为 qcom-sdx65m,需装高通固件,实际加载失败)竞争同一设备
|
||
- 模块正常时 pcie_mhi 首发 probe 能成功;异常时需要 bind mhi_q 手动唤醒
|
||
|
||
## 5G 出口行为(2026-08-20 实测)
|
||
- IPv4 HTTP/HTTPS 国内站点:正常(baidu 200)
|
||
- 国外明文 HTTP(如 neverssl.com):可能被运营商/防火墙过滤(返回空/卡住)
|
||
- 5G 出口 **无 IPv6**(curl -6 返回 000)
|
||
- 主路由双 WAN failover 检测可能因此误判:若主路由用国外站点/双栈做健康检查会误报"外网不通"
|