USB设备不接受地址


12

我有一系列正在工作的具有USB读卡器的机器。当我启动它们时,我会收到一连串的消息:

...
[ 2347.768419] hub 1-6:1.0: unable to enumerate USB device on port 6
[ 2347.968178] usb 1-6.6: new full-speed USB device number 10 using ehci_hcd
[ 2352.552020] usb 1-6.6: device not accepting address 10, error -32
[ 2352.568421] hub 1-6:1.0: unable to enumerate USB device on port 6
[ 2352.768179] usb 1-6.6: new full-speed USB device number 12 using ehci_hcd
[ 2357.352033] usb 1-6.6: device not accepting address 12, error -32
...

在某些较旧的计算机上,这仅需要尝试几次,然后读卡器才最终接受地址,而在较新的计算机上,则可能需要几分钟。更换硬件不是一种选择,而将USB读卡器插入其他端口仅是较旧机器的一种选择。在11.04下这是一个问题,我现在正在运行12.04 beta,并且它仍在发生。

我可以在软件中做些什么(也许是udev规则?)来解决此问题?

任何建议表示赞赏。如果您需要更多信息,我们很乐意提供。


对我来说,问题出在电缆上。
Gayan Weerakutti

Answers:


6

您能为USB设备尝试旧的初始化方案吗?可以通过更改以下参数来完成/etc/default/grub

  • 更改GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.old_scheme_first=1"
  • update-grub
  • 重新启动,看看是否有帮助

2

就我而言,我似乎在计算机内部有一个集线器(可能在背面提供了四端口群集),该集线器不接受分配的地址。

对我来说,日志消息如下所示:

usb 6-1: new low-speed USB device number 116 using uhci_hcd
usb 6-1: device not accepting address 116, error -71
hub 6-0:1.0: unable to enumerate USB device on port 1

这表明它是usb总线6。我没有任何连接,我希望它关闭。

现在我们需要找到相关的驱动程序。在这种情况下uhci_hcd

$ sudo -s
# cd /sys/bus/pci/drivers/uhci_hcd

并找到哪个PCI设备提供USB总线6:

# echo */usb6
0000:00:1a.2/usb5

这里的目录名称是与该USB总线相对应的PCI总线ID。然后就是:

# echo 0000:00:1d.0 > unbind

将其关闭。

如果这可行,则仅将最后一行添加到启动时脚本中。似乎应该有一个内核参数来避免某些USB总线,但我找不到。

(基于Titantux 的回答,但试图避免解除键盘的绑定。称我为老式,但我仍然使用它。)


0

我遇到了和你一样的情况。

但是我使用了Ubuntu 10.04。

但是,如果我使用另一台计算机,它永远也不会出现。

所以直到现在,我认为USB接口还是有帮助的。

将udev规则添加到系统后,它的发生可能比以前少。

你可以尝试一下 。

最好的祝愿!


0

创建一个包含以下内容的脚本并在启动时运行它:

cd /sys/bus/pci/drivers/ehci_hcd/

sudo sh -c 'find ./ -name "0000:00:*" -print| sed "s/\.\///">unbind'

那应该解决问题。

资料来源:这里


请注意,此命令将取消绑定所有EHCI设备(其中可能包括键盘)。
poolie

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.