什么是USB设备重置?


20

我有这个带有两个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
...

那么,它怎么说呢?这正常吗?这是我应该尝试解决的问题吗?

更新
实际上,这些消息不适用于我认为是的驱动器。我还有许多其他USB驱动器也通过USB集线器连接到这台计算机。无论如何,我的问题基本上是该消息用普通英语意味着什么?


3
从USB驱动器制作RAID听起来不是个好主意。RAID就是要可靠地拥有所有驱动器,USB才是热插拔设备。由于您使用的是RAID-1,因此还不错,但是也不是一个好主意。
mvp

1
在RAID配置中使用USB设备没有任何问题。这是一个非常合理的想法,尤其是当您认为这是一台家用计算机而不是企业服务器时。您可以争论USB吞吐量的限制,但这对我个人而言不是一个问题。这次突袭是一种比其他任何事情都更懒惰的备份解决方案的方法。
ILIV 2013年

1
您表示驱动器已连接到笔记本计算机的USB端口。说出您想要的,但这只是定时炸弹等待熄灭。另外,如果您的设备是USB3,则内核必须使用xhci_hcd。如果使用的是ehci_hcd,则意味着您的设备以USB2速度运行。
2013年

1
为什么是“定时炸弹”?
ILIV

2
我知道,下一次,请尝试提出将其称为定时炸弹的真实原因。仅作记录,我没有猫或任何其他宠物,我从没拉过电缆,这款笔记本电脑已经文具好几年了,USB端口被烧坏的可能性大约等于直接连接断开,“别的东西”很有趣,甚至可能发生在配置和安装最彻底的企业服务器上。所以,别再这么偏执了。这是RAID-1。同时拥有2个磁盘的可能性很小。这是一个坚实的解决方案。期。
ILIV

Answers:


22

让我尝试。

从字面上看,该消息表明Linux USB堆栈已向您的特定设备(设备#19和#20,无论它们是什么)发出了“ USB_RESET”。该错误似乎每10-30秒发生一次。重置后,由于USB重置将迫使连接的设备进入“默认状态”,因此日志中应包含新鲜的枚举消息。看起来您的日志的详细程度已大大降低。

在操作过程中重置USB设备是非常严峻的情况。如果控制器遇到“事务错误”,则诉诸该“端口”复位。当链接未完成USB事务的所有必需阶段或发生CRC错误时,就会发生事务错误。在普通USB中,EHCI控制器将自动重试失败的事务(通常最多3次),然后设置XACT_ERROR中断。从统计学上讲,根据错误理论,如果一个链接连续对三个尝试均未正确响应,则特定的USB部分存在问题,主要是电气问题。因此,事务错误被认为是致命的,软件会尝试恢复链接。如果树四尝试恢复链接失败,主机将认为该端口已死,然后退出。

但是,在Linux中,有人认为3次理论尝试是不够的,Linux软件又执行了32次(三十二次)尝试,总共进行了96次(!!!)。如果硬件链接恰好在电气上是微不足道的,则96次尝试可能会在99.99%的时间内成功。Linux软件专家声称这有助于提高可疑设备/电缆的可操作性。从本质上讲,该技术在特定的USB连接中隐藏了一个严重的问题,长期以来对用户没有帮助。

问题可能出在驱动器上的边际电压(VBUS)供应,VBUS毛刺或信号线上的信号衰减。我会先尝试使用极短的高质量认证电缆,然后检查错误统计信息是否发生了变化。


超级总结,谢谢!一些其他来源会很酷。
Christian Benke

1
您知道这是否可能增加ehci_hcd模块进行的重试次数吗?还是有可能强制ohci_hcd使用特定设备(例如,/dev/sda由处理ehci_hcd,“有问题” /dev/sdb由处理ohci_hcd)?
dma_k

5

Linux:使用ehci_hcd重置高速USB设备错误和解决方案一文中描述了此错误 :

此错误表明USB 2.0可能无法在您的系统上运行,或者只能以USB 1.1的速度运行。要解决此问题:

  1. 更换硬件:在大多数情况下,您需要更换主板。
  2. 删除ehci_hcd驱动程序
  3. 禁用ehci_hcd驱动器USB 2.0接口并将其用作USB 1.1。简而言之,请禁用ehci_hcd。

如果您不想更换主板,请删除ehci_hcd驱动程序,编辑文件/etc/modprobe.d/blacklist.conf 并添加以下行:

blacklist ehci_hcd

最后,使用mkinitrd脚本构建一个目录结构,该目录结构可以用作没有ehci_hcd的initrd根文件系统:

# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)

重新启动作为测试。

带有类似说明的文章是: 为什么将错误“内核:USB 1-2.2:使用ehci_hcd和地址6重置高速USB设备”写入/ var / log / messages文件?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.