Avec des noyaux jusqu'à 3,19, tous mes périphériques USB fonctionnent parfaitement.
Lors de la mise à niveau vers 4.0 ou version ultérieure, certains de mes périphériques USB cessent de fonctionner et le noyau produit des erreurs comme ceci:
[ 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
Cet exemple particulier n'était qu'un lecteur de carte mémoire USB bon marché ... Je m'en fous vraiment.
Le problème le plus important pour moi est que le récepteur Quad DVB-T sur mon boîtier backend mythtv est également soumis au même problème, donc je ne suis pas en mesure de mettre à niveau cette machine après 3.19 pour le moment. Il s'agit d'une carte PCI-e, qui ressemble à une sorte de pont pci-e vers usb, et les tuners DVB connectés via usb. Je ne suis pas tout à fait sûr, mais je pense qu'il pourrait en fait s'agir d'une carte PCIe -> PCI -> USB.
Voici les détails de la carte sur un noyau 3.19 fonctionnel:
# 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
Alors, qu'est-ce qui a changé dans les pilotes USB du noyau récemment? Est-ce un bug ou un problème de configuration?
Il y a plusieurs versions du noyau (3.8), les éléments USB ont changé, ce qui ehci-hcd
a dû être chargé auparavant ehci-pci
. initramfs-tools
a depuis été mis à niveau pour gérer cela automatiquement, mais j'ai toujours les restes commentés de la solution de contournement dans mon /etc/modules
fichier:
# 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
Est-ce une situation similaire, qui peut être gérée en chargeant les pilotes dans un ordre particulier ou en mettant sur liste noire certains pilotes obsolètes?
Quelques détails matériels et logiciels supplémentaires:
Cela s'est produit sur plusieurs machines, notamment:
- Carte mère Asus M4A89TD PRO USB3 avec processeur AMD Phenom II X6 1090T (station de travail)
- Asus M5A97 avec processeur AMD Phenom II X6 1090T (myth frontend)
- Asus Sabertooth 990FX avec processeur AMD Phenom II X6 1090T (station de travail et serveur)
- Asus Sabertooth 990FX avec processeur AMD FX (tm) -8150 à huit cœurs (mythe backend)
Le dernier, avec le FX-8150 (qui était ce que je traînais lorsque la carte mère précédente est morte et que j'ai dû la reconstruire), est la boîte mythique avec le récepteur DigitalNow Quad DVB-T. Le premier, le M4A89TD Pro, est la machine avec le lecteur de carte mémoire USB bon marché.
Tous ont au moins 8 Go de RAM et tous ont soit des GPU nvidia GTX-750 (boîtes mythiques), soit GTX-560 ou GTX-560Ti, en utilisant le pilote nvidia propriétaire. Tous utilisent Debian Sid, avec des noyaux récents (4.2.x sur tout sauf le backend mythique car c'est le seul où l'USB est important pour tout sauf HID - USB kbd et souris et même une tablette wacom fonctionnent bien, BTW, sur 4.0+ graines).
Toutes les machines démarrent des disques SSD de 128 à 256 Go en RAID-1 en utilisant XFS pour / et ext4 pour / boot. Le backend mythtv exécute également zfsonlinux pour le stockage en vrac. Tout comme le poste de travail / serveur combiné.
J'ai essayé les noyaux Debian, les noyaux Liquorix et les noyaux compilés sur mesure. Tous avec le même résultat: jusqu'à 3,19, c'est bien. 4.0 et versions ultérieures cassent mon récepteur DVB-T et mon lecteur de carte mémoire.
Remarque: je ne recherche pas de connaissances générales ou d'informations que vous pouvez trouver en cinq minutes avec google. Je recherche des informations spécifiques sur les régressions USB (ou autres éventuellement liées) connues dans les noyaux 4.0+ et, avec un peu de chance, un correctif ou une solution de contournement.
/etc/modules
. la liaison statique des modules au noyau ne fera aucune différence et ne fera probablement qu'empirer les choses en ne me donnant aucune possibilité de changer l'ordre de chargement des modules.