之前看了 STF 的解决方案,依然无法解决问题。随后进行了多种测试,在系统设备 log 中,发现 usb driver dead 之前,有一个系统自带的 hub 不断重新识别。还不清楚这个问题的诱因,但是怀疑确定跟 kernel 的 usb 电源管理有关。关闭 usb autosuspend 测试一个星期,未出现问题。
两种方法关闭 usb autosuspend:
- 临时关闭, 重启后恢复系统默认值
echo -1 >/sys/module/usbcore/parameters/autosuspend
- 永久关闭,修改 kernel boot parameters
- /etc/default/grub 中添加 usbcore.autosuspend=-1 到 GRUB_CMDLINE_LINUX_DEFAULT。如GRUB_CMDLINE_LINUX_DEFAULT 有 “quiet splash” 默认选项,则为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1"
- 保存文件后,update grub: