结论
是电源供电不足或 USB Hub 供电不稳的问题,概率极高。
从你的日志看,usb_to_msg_1054n: tx msg fc retry fail 反复出现,这是典型的 USB 通信超时/重试失败,通常由以下原因导致:
问题根因分析
1. USB Hub 供电不足
- 你挂载了 2 个 USB 设备
- 外部供电是 5V5A,但这是给开发板的,不是给 USB Hub 的
- 如果 USB Hub 是无源 Hub(没有独立供电),所有 USB 设备的电流都要从开发板的 USB 口取电
- RDK X5 的 USB 口单口供电能力有限(通常 ≤1A),带不动多个高功耗设备
2. WiFi 模块通过 USB 连接
- RDK X5 的 WiFi 模块通常是 USB 接口(如 RTL8822BU、AX972 等)
- 当 USB Hub 供电不稳时,WiFi 模块会掉电或通信超时,导致断连
- 必须重启才能恢复,说明 USB 控制器已经进入错误状态,需要重新枚举
3. 日志特征
usb_to_msg_1054n: tx msg fc retry fail
- 这是 USB 消息发送失败,重试多次后放弃
- 通常伴随
device descriptor read/64, error -110或device not accepting address等错误
解决方案
方案一:给 USB Hub 独立供电(推荐)
# 如果你的 USB Hub 有外接电源接口,务必接上
# 确保 Hub 的供电 ≥5V2A(根据挂载设备数量调整)
方案二:减少 USB 设备数量
# 暂时拔掉一个 USB 设备,只保留 WiFi
# 观察是否还会断连
方案三:更换为有源 USB Hub
- 购买带独立供电的 USB 3.0 Hub
- 推荐品牌:Anker、UGREEN、ORICO(有源版本)
方案四:检查 WiFi 模块供电
# 查看 WiFi 模块的电流需求
# 如果 ≥500mA,建议直接插在开发板原生 USB 口,不要经过 Hub
方案五:禁用 USB 自动节能(临时缓解)
# 临时禁用 USB LPM
echo 1 > /sys/module/usbcore/parameters/lpm_disable
# 永久生效:编辑 /boot/extlinux/extlinux.conf
# 在 APPEND 行添加:usbcore.lpm_disable=1
排查步骤
-
测量 USB Hub 输出电压
# 用万用表测量 Hub 的 5V 输出 # 如果 <4.75V,说明供电不足 -
查看 USB 设备电流
# 使用 USB 电流表或带电流显示的充电头 # 观察总电流是否超过 Hub 或开发板的供电能力 -
最小化测试
# 只接 WiFi,不接其他 USB 设备 # 运行一段时间,观察是否断连 -
查看完整 dmesg 日志
dmesg -w # 在断连时查看是否有更多 USB 错误信息
参考案例
社区已有类似问题:
- RDKx5 USB 频繁断连问题(海康相机 + USB Hub 供电不足)
- x5 wifi 连不上(4 个 USB 接口接满导致 WiFi 断连)
建议
- 优先给 USB Hub 独立供电
- WiFi 模块尽量直接插开发板原生 USB 口
- 如果必须用 Hub,选择有源 Hub(带电源适配器)
- 5V5A 是给开发板的,不是给 USB 设备的
如果以上方法仍无效,请提供:
- USB Hub 型号(是否有独立供电?)
- 挂载的两个 USB 设备具体是什么?
- 完整的
dmesg日志(断连前后的)
可以进一步帮你分析!