Mit Kerneln bis 3.19 funktionieren alle meine USB-Geräte einwandfrei.
Beim Upgrade auf 4.0 oder höher funktionieren einige meiner USB-Geräte nicht mehr und der Kernel erzeugt folgende Fehler:
[ 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
Dieses besondere Beispiel war nur ein billiger USB-Speicherkartenleser ... das interessiert mich nicht wirklich.
Das wichtigere Problem für mich ist, dass der Quad-DVB-T-Receiver auf meiner mythtv-Backend-Box ebenfalls dem gleichen Problem ausgesetzt ist, sodass ich diesen Computer derzeit nicht nach 3.19 aktualisieren kann. Dies ist eine PCI-e-Karte, die aussieht, als wäre sie eine Art PCI-E-zu-USB-Brücke, und die über USB angeschlossenen DVB-Tuner. Ich bin mir nicht ganz sicher, aber ich denke, es könnte tatsächlich eine PCIe -> PCI -> USB-Karte sein.
Hier sind die Details der Karte zu einem funktionierenden 3.19-Kernel:
# 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
Was hat sich in letzter Zeit in den Kernel-USB-Treibern geändert? Ist das ein Fehler oder ein Konfigurationsproblem?
Vor einigen Kernel-Versionen (3.8) wurde das USB-Material geändert, sodass es ehci-hcd
zuvor geladen werden musste ehci-pci
. initramfs-tools
wurde seitdem aktualisiert, um dies automatisch zu handhaben, aber ich habe immer noch die auskommentierten Reste der Problemumgehung in meiner /etc/modules
Datei:
# 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
Ist dies eine ähnliche Situation, die durch Laden von Treibern in einer bestimmten Reihenfolge oder durch Auflisten bestimmter veralteter Treiber behoben werden kann?
Weitere Details zu Hardware und Software:
Dies ist auf mehreren Maschinen aufgetreten, darunter:
- Asus M4A89TD PRO USB3-Motherboard mit AMD Phenom II X6 1090T-Prozessor (Workstation)
- Asus M5A97 mit AMD Phenom II X6 1090T Prozessor (Mythos Frontend)
- Asus Sabertooth 990FX mit AMD Phenom II X6 1090T Prozessor (Workstation und Server)
- Asus Sabertooth 990FX mit AMD FX (tm) -8150 Acht-Kern-Prozessor (Mythos-Backend)
Der letzte mit dem FX-8150 (den ich herumliegen hatte, als das vorherige Motherboard starb und ich ihn neu bauen musste) ist die Mythos-Box mit dem DigitalNow Quad DVB-T-Empfänger. Der erste, der M4A89TD Pro, ist das Gerät mit dem billigen USB-Speicherkartenleser.
Alle haben mindestens 8 GB RAM und alle haben entweder nvidia GTX-750 (Mythos-Boxen) oder GTX-560- oder GTX-560Ti-GPUs, die den proprietären nvidia-Treiber verwenden. Auf allen läuft Debian Sid mit den neuesten Kerneln (4.2.x für alles außer dem Mythos-Backend, da dies das einzige ist, bei dem USB für alles andere als HID wichtig ist - USB kbd und Maus und sogar ein Wacom-Tablet funktionieren unter 4.0+ einwandfrei Kernel).
Alle Computer booten von 128-256 GB SSDs in RAID-1 mit XFS für / und ext4 für / boot. Das mythtv-Backend führt auch zfsonlinux für die Massenspeicherung aus. Wie ist die kombinierte Workstation / Server.
Ich habe Debian-Stock-Kernel, Liquorix-Kernel und benutzerdefinierte kompilierte Kernel ausprobiert. Alle mit dem gleichen Ergebnis: bis zu 3,19 ist in Ordnung. 4.0 und höher kaputt meinen DVB-T-Empfänger und meinen Speicherkartenleser.
Bitte beachten Sie: Ich bin nicht nach allgemeinen Kenntnissen oder Informationen, die in fünf Minuten mit Google gefunden werden können. Ich bin nach spezifischen Informationen über bekannte USB-Regressionen (oder andere möglicherweise verwandte Regressionen) in 4.0+ Kerneln und mit etwas Glück nach einem Patch oder einer Problemumgehung.
/etc/modules
. Das statische Verknüpfen der Module mit dem Kernel macht keinen Unterschied und verschlimmert wahrscheinlich die Situation, da ich keine Möglichkeit habe, die Reihenfolge zu ändern, in der die Module geladen werden.Antworten:
Dies klingt nach einer Kernel-Regression unter 4.x Linux, zumindest für Ihre spezifische Hardware.
http://archlinuxarm.org/forum/viewtopic.php?f=53&t=8798
Es kann in diesem Commit sein, aber es ist schwer zu sagen, da Sie keine weiteren Informationen über Ihr System angegeben haben.
https://github.com/torvalds/linux/commit/a0b5cd4ac2d6542d524d8063961bf914b5df1efa
Einige Systeme haben anscheinend Probleme mit mindestens USB 3: https://lists.debian.org/debian-kernel/2015/08/msg00066.html
Die eigentliche Frage ist also, was ist Ihre Hardware und was ist der neueste 4.x-Kernel, den Sie ausprobiert haben. Dies wurde möglicherweise in einer kürzlich veröffentlichten Version 4.x behoben. Ist das Problem mit USB 2 und 3 oder nur 3 oder nicht mit der USB-Version verbunden? Das wird helfen, es einzugrenzen. Ihre Daten scheinen auf Ihrem System nur USB2 Max zu sein.
Kernel-Regressionen sind normal.
Wie ich den Leuten sage, wenn sie diese Art von Frage stellen, hat ein neuer Linux-Kernel mehrere mögliche Ergebnisse:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1455376 Das ist ein Ubuntu-Fehler bei der USB-Behandlung.
Normalerweise werden Fehler, die sich auf Dinge auswirken, die viele Leute verwenden, relativ schnell behoben. Es lohnt sich daher, die neueste Version des neuesten stabilen Kernels zu überprüfen, die meiner Meinung nach derzeit bei 4,3 liegt.
Wenn Sie Ubuntu verwenden, können Sie den Liquorix-Kernel ausführen, zumindest wenn es sich um aktuelles Ubuntu handelt, nicht um LTS, wie dies auch für nicht stabile Debian-Releases gilt.
Zu sehen: inxi -bxxx wäre hilfreich, um die Grundlagen Ihres Systems zu zeigen. inxi kann von den meisten Distribution-Repositories installiert werden.
Hier ist Greg KHs Liste der USB-Änderungen für 4.0 / 3.20
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e29876723f7cb7728f0d6a674d23f92673e9f112
http://kernelnewbies.org/Linux_4.0 zeigt den vollständigen Änderungssatz.
https://lkml.org/lkml/2015/6/26/511 das sind die Änderungen in USB für 4.2-rc1. Wie Sie sehen, ist die Frage, was sich geändert hat, wahrscheinlich nicht genau die richtige Frage. Nützlicher wäre es, festzustellen, ob das Problem für Ihre Hardware in den neuesten Versionen bereits behoben wurde.
quelle