Also habe ich letzte Woche meine Rolling-Distribution OpenSuSe Tumbleweed mit aktualisiert zypper dist-upgrade
. Vor dem Update lief es einwandfrei. Nach dem Update begann der Kernel, das Terminal alle 4 Sekunden zu spammen. Dadurch ist das Terminal fastunbrauchbar, da Benutzereingaben oder Konsolenausgaben halbiert und auf mehrere Zeilen aufgeteilt werden. Hier ein dmesg | grep | tail
Ausschnitt:
[ 350.602656] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
[ 354.682627] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
[ 358.758627] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
Über USB sind nur zwei Geräte angeschlossen – Tastatur und Maus – und beide funktionieren einwandfrei. Die USB-Adresse kann sich ändern – manchmal ist es zusätzlich zu usb2-port2 auch usb4-port2 oder usb3-port2 (wie korreliere ich diese Namen mit der lsusb-Ausgabe – siehe unten).
Beim Update wurde der Kernel von 4.20 auf 5.5 umgestellt. Beim Booten mit dem 4.20-Kernel über die erweiterten Optionen von Grub treten diese Meldungen nicht auf. Auch eine Windows 7-Installation zeigt keine Probleme mit USB-Geräten oder Hubs.
Durch meine Suche bin ich zu der Annahme gelangt, dass es an diesem Kernel-Commit liegt:USB: Warm-Reset-Portanforderungen bei Wiederaufnahme des Hubs verarbeiten. Ubuntugelöstdas gleiche Problem, wenn ich dieses Commit zurücksetze, aber ich kann es nicht bei OpenSuSe erwähnt findenFehlerverfolgungoder in Foren.
Wie kann ich diese Meldungen stoppen? Die ideale Lösung wäre schnell, nicht aufdringlich und leicht rückgängig zu machen. Die manuelle Kompilierung und Installation des Kernels ist der letzte Ausweg.
Dies ist die Ausgabe von lsusb -t beim selben Bootvorgang:
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
|__ Port 3: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 5: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 5: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
sudo dmesg -n1
gibt eine leere Ausgabe.
lsusb -vv
zeigt das Folgende für die fehlerhafte Ressource ( usb4-port2
während dieses Bootvorgangs) an:
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 3
bMaxPacketSize0 9
idVendor 0x1d6b Linux Foundation
idProduct 0x0003 3.0 root hub
bcdDevice 5.05
iManufacturer 3 Linux 5.5.6-1-default xhci-hcd
iProduct 2 (error)
iSerial 1 0000:00:14.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x001f
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
bMaxBurst 0
can't get hub descriptor, LIBUSB_ERROR_TIMEOUT (Resource temporarily unavailable)
can't get debug descriptor: Resource temporarily unavailable
Antwort1
Die Distribution sollte alte(re) Kernel beibehalten und den letzten booten, der funktioniert hat.
Melden Sie den Fehler! Deinstallieren Sie den Fehler vielleicht, nachdem Sie die Daten für den Bericht zusammengestellt haben. Auf diese Weise wird der nächste einfach seinen Platz einnehmen.
Versuchen Sie es mit der nächsten Kernel-Version. Ach, wie viel Spaß es macht, mit experimentellen, fortlaufenden Versionen der Distribution herumzuspielen.