游戏手柄出现 USB 错误 -71 (EPROTO)

游戏手柄出现 USB 错误 -71 (EPROTO)

我有几个带 USB 接口的游戏手柄,游戏手柄是 RockFire QF-501UV,当将它们连接到 USB 端口时,我收到以下消息:

Feb 27 22:32:55 localhost kernel: [97408.112022] usb 5-1: new low-speed USB device number 28 using uhci_hcd
Feb 27 22:32:55 localhost kernel: [97408.232024] usb 5-1: device descriptor read/64, error -71
Feb 27 22:32:55 localhost kernel: [97408.456033] usb 5-1: device descriptor read/64, error -71
Feb 27 22:32:55 localhost kernel: [97408.672024] usb 5-1: new low-speed USB device number 29 using uhci_hcd
Feb 27 22:32:56 localhost kernel: [97408.792020] usb 5-1: device descriptor read/64, error -71
Feb 27 22:32:56 localhost kernel: [97409.016018] usb 5-1: device descriptor read/64, error -71
Feb 27 22:32:56 localhost kernel: [97409.232039] usb 5-1: new low-speed USB device number 30 using uhci_hcd
Feb 27 22:32:56 localhost kernel: [97409.640020] usb 5-1: device not accepting address 30, error -71
Feb 27 22:32:57 localhost kernel: [97409.752024] usb 5-1: new low-speed USB device number 31 using uhci_hcd
Feb 27 22:32:57 localhost kernel: [97410.160020] usb 5-1: device not accepting address 31, error -71
Feb 27 22:32:57 localhost kernel: [97410.160038] hub 5-0:1.0: unable to enumerate USB device on port 1

通过谷歌搜索,我发现有些人遇到了类似(但不相同)的 USB 设备问题,有些人建议的解决方案对我来说不起作用。我尝试了以下方法,但没有奏效(消息相同):

echo -1 > /sys/module/usbcore/parameters/autosuspend
echo Y > /sys/module/usbcore/parameters/use_both_schemes
echo -n 0000\:00\:1d.7 > /sys/bus/pci/drivers/ehci_hcd/unbind

其中(执行最后一条命令之前):

# ls /sys/bus/pci/drivers/ehci_hcd
0000:00:1d.7  bind  module  new_id  remove_id  uevent  unbind

全部以 root 身份执行,并且在执行每个命令后我都检查是否存在差异。

Linux 甚至无法识别所连接的 USB

# lsusb
Bus 005 Device 023: ID 046d:c52e Logitech, Inc. 
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Linux 3.5.0-25-通用#38-Ubuntu SMP i686 i686 i686 GNU/Linux

答案1

值得庆幸的是,这个问题已经为我解决了。 解决方案:改为使用 USB 数据线,而不是使用 USB 仅充电线,尽管它们看起来相同。

和你类似,我的 Sansa Clip+ 4GB MP3 播放器之前在 Ubuntu 12.04 上能用,但现在不行了,类似

device not accepting address 31, error -71
hub 5-0:1.0: unable to enumerate USB device on port n

输出中的错误消息dmesg。我花了几个小时在 Windows Vista、Windows 7、Ubuntu 12.04、CentOS live DVD、Fedora live DVD、笔记本电脑、台式机上尝试,但都无济于事。

最后,我尝试了另一根 USB 线,它立即在 Windows 和 Ubuntu 12.04 上工作。然后我意识到我家里有多个 USB 充电器,我粗心地使用了其中一根线进行连接,目前正常工作的线很可能是 Sansa Clip+ MP3 播放器附带的 USB 数据线。在网上搜索后,我找到了 2 篇关于 USB 数据线和 USB 充电专用线之间区别的参考资料。充电专用线仅使用 2 个引脚提供电源(电力),并且不会在 2 个数据引脚上发送任何信号,因此当使用它们时,USB 设备无法连接到操作系统,无论操作系统类型是 Windows 还是 Linux。

2 个参考文献是:

  1. 维基百科:通用串行总线,“连接器类型”部分

    “为了可靠地启用仅充电功能,现代 USB 配件外围设备现在包括可提供与主机端口的电源连接但不提供数据连接的充电线,并且家庭和车辆充电座均可从转换器设备供电并且不包括主机设备和数据引脚,从而允许任何具有功能的 USB 设备通过标准 USB 线充电或运行。”

  2. USB 充电线和数据充电线之间的区别

无论如何,我很高兴问题最终得到解决,并希望您的问题也能尽快得到解决。

答案2

您的 USB 设备可能存在过流保护?请尝试以下说明以下页面并让我们知道它们是否有帮助。

USB 具有过流保护功能,当端口的功耗过高时就会触发。

从 PC 上拔下所有 USB 设备,关闭电源,等待一两分钟。将所有设备重新插回并启动 Linux。

相关内容