Với các hạt nhân lên tới 3.19, tất cả các thiết bị USB của tôi hoạt động hoàn hảo.
Khi nâng cấp lên 4.0 trở lên, một số thiết bị USB của tôi ngừng hoạt động và kernel tạo ra các lỗi như thế này:
[ 3.369436] usb 9-1: device descriptor read/64, error -62
[ 3.593543] usb 9-1: new full-speed USB device number 4 using ohci-pci
[ 3.997572] usb 9-1: device not accepting address 4, error -62
[ 4.120602] usb 9-1: new full-speed USB device number 5 using ohci-pci
[ 4.524792] usb 9-1: device not accepting address 5, error -62
[ 4.524911] usb usb9-port1: unable to enumerate USB device
[ 15.402105] usb 9-1: new full-speed USB device number 6 using ohci-pci
[ 15.530135] usb 9-1: device descriptor read/64, error -62
[ 15.759224] usb 9-1: device descriptor read/64, error -62
[ 15.983312] usb 9-1: new full-speed USB device number 7 using ohci-pci
[ 16.111309] usb 9-1: device descriptor read/64, error -62
[ 16.340398] usb 9-1: device descriptor read/64, error -62
[ 16.564378] usb 9-1: new full-speed USB device number 8 using ohci-pci
[ 16.968454] usb 9-1: device not accepting address 8, error -62
[ 17.091555] usb 9-1: new full-speed USB device number 9 using ohci-pci
[ 17.495570] usb 9-1: device not accepting address 9, error -62
[ 17.495603] usb usb9-port1: unable to enumerate USB device
[ 17.673702] usb 9-1: new full-speed USB device number 10 using ohci-pci
[ 17.801758] usb 9-1: device descriptor read/64, error -62
[ 18.030814] usb 9-1: device descriptor read/64, error -62
[ 18.254834] usb 9-1: new full-speed USB device number 11 using ohci-pci
[ 18.382858] usb 9-1: device descriptor read/64, error -62
[ 18.611902] usb 9-1: device descriptor read/64, error -62
[ 18.835977] usb 9-1: new full-speed USB device number 12 using ohci-pci
[ 19.240034] usb 9-1: device not accepting address 12, error -62
[ 19.363101] usb 9-1: new full-speed USB device number 13 using ohci-pci
[ 19.767182] usb 9-1: device not accepting address 13, error -62
[ 19.767226] usb usb9-port1: unable to enumerate USB device
Ví dụ cụ thể đó chỉ là một đầu đọc thẻ nhớ USB giá rẻ .... Tôi không thực sự quan tâm đến nó.
Vấn đề quan trọng hơn với tôi là bộ thu Quad DVB-T trên hộp phụ trợ huyền thoại của tôi cũng gặp vấn đề tương tự, vì vậy tôi không thể nâng cấp máy đó qua 3.19 vào lúc này. Đây là thẻ PCI-e, trông giống như một loại cầu nối pci-e với usb và bộ điều chỉnh DVB được gắn qua usb. Tôi không hoàn toàn chắc chắn nhưng tôi nghĩ nó thực sự có thể là thẻ PCIe -> PCI -> USB.
Dưới đây là chi tiết của thẻ trên kernel 3.19 đang hoạt động:
# lsusb | grep Leadtek
Bus 010 Device 005: ID 0413:6680 Leadtek Research, Inc.
Bus 010 Device 004: ID 0413:6680 Leadtek Research, Inc.
Bus 010 Device 003: ID 0413:6680 Leadtek Research, Inc.
Bus 010 Device 002: ID 0413:6680 Leadtek Research, Inc.
# dmesg | grep -i DigitalNow| grep pci
[ 9.405568] input: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-1/rc/rc1/input17
[ 9.405687] rc1: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-1/rc/rc1
[ 9.475939] input: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-2/rc/rc2/input22
[ 9.476049] rc2: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-2/rc/rc2
[ 9.542441] input: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-3/rc/rc3/input24
[ 9.542617] rc3: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-3/rc/rc3
[ 9.609134] input: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-4/rc/rc4/input26
[ 9.609289] rc4: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-4/rc/rc4
# lspci | grep '^0[45]:'
04:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa)
05:00.0 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev 62)
05:00.1 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev 62)
05:00.2 USB controller: VIA Technologies, Inc. USB 2.0 (rev 65)
# lspci -vv -s 05:00
05:00.0 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev 62) (prog-if 00 [UHCI])
Subsystem: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 26
Region 4: I/O ports at d020 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk+ DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: uhci_hcd
05:00.1 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev 62) (prog-if 00 [UHCI])
Subsystem: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 64 bytes
Interrupt: pin B routed to IRQ 41
Region 4: I/O ports at d000 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk+ DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: uhci_hcd
05:00.2 USB controller: VIA Technologies, Inc. USB 2.0 (rev 65) (prog-if 20 [EHCI])
Subsystem: VIA Technologies, Inc. USB 2.0 Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 64 bytes
Interrupt: pin C routed to IRQ 50
Region 0: Memory at fe500000 (32-bit, non-prefetchable) [size=256]
Capabilities: [80] Power Management version 2
Flags: PMEClk+ DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: ehci-pci
Vì vậy, những gì đã thay đổi trong trình điều khiển USB kernel gần đây? Đây có phải là một lỗi, hoặc nó là một vấn đề cấu hình?
Một số phiên bản kernel trước đây (3.8), công cụ USB đã thay đổi để ehci-hcd
phải được tải trước đó ehci-pci
. initramfs-tools
kể từ đó đã được nâng cấp để xử lý việc đó một cách tự động, nhưng tôi vẫn nhận xét được phần còn lại của cách giải quyết trong /etc/modules
tệp của mình :
# make sure ehci-pci loads immediately after ehci-hcd for kernel 3.8
# (should be handled automagically by initramfs-tools 0.110 now)
#ehci-hcd
#ehci-pci
Đây có phải là một tình huống tương tự, có thể được xử lý bằng cách tải trình điều khiển theo một thứ tự cụ thể hoặc bằng cách đưa vào danh sách đen các trình điều khiển lỗi thời?
Một số chi tiết phần cứng và phần mềm:
Điều này đã xảy ra trên một số máy bao gồm:
- Bo mạch chủ Asus M4A89TD PRO USB3 với Bộ xử lý AMD Phenom II X6 1090T (máy trạm)
- Asus M5A97 với Bộ xử lý AMD Phenom II X6 1090T (huyền thoại)
- Asus Sabertooth 990FX với Bộ xử lý AMD Phenom II X6 1090T (máy trạm và máy chủ)
- Asus Sabertooth 990FX với AMD FX (tm) -8150 Bộ xử lý tám lõi (phụ trợ huyền thoại)
Cái cuối cùng, với FX-8150 (đó là những gì tôi đã nằm xung quanh khi bo mạch chủ trước đó chết và tôi phải xây dựng lại nó), là hộp huyền thoại với Bộ thu Quad DVB-T của DigitalNow. Chiếc đầu tiên, M4A89TD Pro, là máy có đầu đọc thẻ nhớ USB giá rẻ.
Tất cả đều có ít nhất 8GB RAM và tất cả đều có GPU nvidia GTX-750 (hộp huyền thoại) hoặc GPU GTX-560 hoặc GTX-560Ti, sử dụng trình điều khiển nvidia độc quyền. Tất cả đều đang chạy sid Debian, với các kernel gần đây (4.2.x trên mọi thứ trừ phần phụ trợ huyền thoại vì đó là thứ duy nhất mà USB quan trọng đối với mọi thứ trừ HID - USB kbd và chuột và thậm chí cả máy tính bảng wacom đều hoạt động tốt, BTW, trên 4.0+ hạt nhân).
Tất cả các máy đều khởi động SSD 128-256GB trong RAID-1 bằng XFS cho / và ext4 cho / boot. Chương trình phụ trợ huyền thoại cũng đang chạy zfsonlinux để lưu trữ số lượng lớn. Như là máy trạm / máy chủ kết hợp.
Tôi đã thử hạt nhân debian, hạt nhân alcoholix và hạt nhân được biên soạn tùy chỉnh. Tất cả đều có cùng kết quả: lên tới 3.19 là ổn. 4.0 và sau đó phá vỡ bộ thu DVB-T và đầu đọc thẻ nhớ của tôi.
Xin lưu ý: Tôi không theo kiến thức chung, hoặc thông tin có thể tìm thấy trong năm phút với google. Tôi đang theo dõi thông tin cụ thể về bất kỳ hồi quy USB (hoặc có thể liên quan nào khác) đã biết trong các nhân 4.0+ và, may mắn thay, một bản vá hoặc cách khắc phục.
/etc/modules
. liên kết các mô-đun vào kernel một cách tĩnh sẽ không có sự khác biệt và có thể sẽ khiến mọi thứ tồi tệ hơn bằng cách cho tôi không có cơ hội để thay đổi thứ tự mà các mô-đun được tải.