1

So, I updated my rolling distro OpenSuSe Tumbleweed last week using zypper dist-upgrade. It was running fine prior to the update. After the update, the kernel started spamming the terminal every 4 seconds. This makes the terminal close to unusable, as user input or any console output gets bisected and split over many lines. Here's a dmesg | grep | tail snippet:

[  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?

Only two devices are connected via USB - keyboard and mouse - and both work fine. The usb address can change - it's sometimes usb4-port2 or usb3-port2 in addition to usb2-port2 (how do I correlate these names with lsusb output - see at the bottom).

During the update, the kernel changed from 4.20 to 5.5. When booting with the 4.20 kernel via grub advanced options, these messages don't appear. A Windows 7 installation also doesn't show any issues with any USB devices or hubs.

Searching leads me to believe that is due to this kernel commit: usb: handle warm-reset port requests on hub resume. Ubuntu resolved the same issue by reverting this commit but I can't find it mentioned at the OpenSuSe bug tracker or in forums.

How do I stop these messages? Ideal solution would be quick, non-intrusive and easily reverted. Manual kernel compilation and installation is a last resort.


This is the lsusb -t output in the same boot:

/:  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 gives empty output.

lsusb -vv shows the following for the errant resource (usb4-port2 during this boot)

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
9
  • Are you seeing these messages in X/Wayland terminal emulator or in tty? Mar 9, 2020 at 17:36
  • In tty only, not in emulators.
    – Gyan
    Mar 9, 2020 at 17:39
  • 1
    yeah, that's what I thought. Try sudo dmesg -n1. Mar 9, 2020 at 17:39
  • Ah, I'm back in Windows. Anything else you think will be helpful? Will post tomorrow.
    – Gyan
    Mar 9, 2020 at 17:56
  • sudo dmesg -n1 gives empty output.
    – Gyan
    Mar 10, 2020 at 9:43

1 Answer 1

0

The distribution should leave old(er) kernels around, boot the last one that worked.

Report the bug! Perhaps after compiling data for the report, uninstall the miscreant. That way the next one will just take it's place.

Try next kernel release. Ah, the joys of fooling around with experimental, rolling releases of the distribution.

1
  • Can't use older kernel without hassle, as nvidia drivers are compiled for the current 5.5 one - X doesn't start with 4.20.
    – Gyan
    Mar 10, 2020 at 10:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .