我有这个由两个 WD Elements 外置 USB 驱动器构建的全新软件 RAID-1,我可以看到 Linux 重复了以下消息:
...
[302148.036912] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
[302153.052029] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302186.031481] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302217.050210] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302281.043543] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302312.090158] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302351.076851] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
...
Run Code Online (Sandbox Code Playgroud)
那么,它说什么?这是正常的吗?这是我应该尝试解决的问题吗?
更新
实际上,这些消息并不适用于我认为的驱动器。我还有一堆其他 USB 驱动器通过 USB 集线器连接到这台计算机。无论如何,我的问题基本上是这条消息用简单的英语表示什么?
Ale*_*ski 34
让我试试。
从字面上看,该消息表示 Linux USB 堆栈已向您的特定设备(设备 #19 和 #20,无论它们是什么)发出“USB_RESET”。该错误似乎每 10-30 秒发生一次。重置后,日志应该有新的枚举消息,因为 USB 重置将强制连接的设备进入“默认状态”。看起来您的日志的冗长程度非常低。
在操作过程中重置 USB 设备是一种非常严重的情况。如果遇到“事务错误”,控制器会求助于这个“端口”重置。当链路未完成 USB 事务的所有必需阶段或存在 CRC 错误时,会发生事务错误。在普通 USB 中,EHCI 控制器将自动重试失败的事务(通常最多 3 次),然后将设置 XACT_ERROR 中断。从统计上看,根据错误理论,如果一个链接对连续 3 次尝试没有正确响应,则特定 USB 段有问题,主要是电气问题。所以事务错误被认为是致命的,软件会尝试恢复链接。如果 tree-four 尝试恢复链路失败,则主机认为此端口已死,并退出。
然而,在 Linux 中,有人认为 3 次理论上的尝试是不够的,Linux 软件执行了额外的 32(三十二)次尝试,总共 96(!!!)次。如果硬件链接恰好是电气边缘,则 96 次尝试可能会在 99.99% 的时间内成功。Linux 软件专家声称这有助于提高有问题的设备/电缆的可操作性。从本质上讲,这种技术隐藏了这种特定 USB 连接的严重问题,从长远来看,这对用户没有帮助。
问题可能在于驱动器的边际电压 (VBUS) 供应、VBUS 故障或信号线上的信号衰减。我会先尝试极短的高质量认证电缆,然后检查错误统计数据是否发生变化。
此错误在文章Linux:使用 ehci_hcd 重置高速 USB 设备错误和解决方案中有所描述 :
此错误表示 USB 2.0 可能无法在您的系统上运行,或者只能以 USB 1.1 的速度运行。要解决此问题:
- 更换硬件:在大多数情况下,您需要更换主板。
- 删除 ehci_hcd 驱动程序
- 禁用 ehci_hcd 驱动 USB 2.0 接口并将其用作 USB 1.1。总之禁用ehci_hcd。
如果您不想更换主板,要删除 ehci_hcd 驱动程序,请编辑文件/etc/modprobe.d/blacklist.conf
并添加以下行:
blacklist ehci_hcd
Run Code Online (Sandbox Code Playgroud)
最后,使用 mkinitrd 脚本构建一个目录结构,可以作为没有 ehci_hcd 的 initrd 根文件系统:
# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)
Run Code Online (Sandbox Code Playgroud)
重新启动作为测试。
一篇有类似说明的文章是: 为什么错误“kernel: usb 1-2.2: reset high speed USB device using ehci_hcd and address 6”写入/var/log/messages文件?