使用遊戲手把時 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-generic #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 配件週邊現在包括充電電纜,可提供與主機連接埠的電源連接,但不提供數據連接,並且家用​​和車輛充電底座都可以透過轉換器設備供電,而不需要任何資料連接。

  2. USB 充電線和數據充電線之間的區別

無論如何,我很感激它最終得到了解決,並希望您的問題也能盡快解決。

答案2

也許您的 USB 裝置有過流保護?請試試以下說明:下一頁並讓我們知道他們是否有幫助。

USB 具有過流保護功能,當連接埠功耗過高時會觸發此保護。

從 PC 上拔下所有 USB 設備,關閉電源,然後等待一兩分鐘。將所有裝置插回並啟動至 Linux。

相關內容