Wie kann Konsolen-Spam aufgrund eines (wahrscheinlichen) Kernel-Fehlers gestoppt werden?

Wie kann Konsolen-Spam aufgrund eines (wahrscheinlichen) Kernel-Fehlers gestoppt werden?

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 | tailAusschnitt:

[  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 -n1gibt eine leere Ausgabe.

lsusb -vvzeigt das Folgende für die fehlerhafte Ressource ( usb4-port2wä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.

verwandte Informationen