lsusb error -- can't get device qualifier / descriptor: Resource temporarily unavailable

9,759

It's probably a hardware issue on the machine, especially if this intermittent behavior was seen on it with Windows installed. Here's a few things you could try:

  1. Try some other USB devices, particularly flash drives while doing some file transfers. The keyboard is probably fine, but this would be another confirmation.

  2. When you plug in a usb device, you can do an ls -l /dev/disk/by-* to see what crops up there, since usb devices will be explicitly named/listed there. Regardless of what lsusb states, this should at least show connected devices (and they may disappear when they stop working, too... potentially another clue). Note: lsusb may key off of this information anyways, so you may not see a difference between the two.

  3. Looks like your machine identifies with a mix of 1.0/2.0 hubs. Is this correct as far as you know, per your machine's official specs? You could limit your usage/testing to the 2.0 ports to be more precise.

  4. You could try using an external usb hub and see how that goes. For example, do the intermittent connections occur less often while using an external hub on a 2.0 root hub?

Finally, you could always take a more direct route to a solution and perform the cheap experiment of installing a PCI-USB card (less than $20) to see if the issue goes away completely by using something like this.

Share:
9,759

Related videos on Youtube

Zev Spitz
Author by

Zev Spitz

Updated on September 18, 2022

Comments

  • Zev Spitz
    Zev Spitz over 1 year

    I've recently installed Fedora 25 Server on a relatively old machine (HP Compaq dc7700 Small Form Factor). It previously used to run Windows 10, but all the USB ports suddenly stopped working (I don't recall if it's worked since); I've installed Fedora in the hope of resolving the USB issue.

    My understanding is that after I've plugged in a USB device, it should appear when running lsusb. However, I only see the hubs, and not the device (in this case, a keyboard):

    [root@fedora zspitz]# lsusb
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    [root@fedora zspitz]# lsusb -t
    /:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    /:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    /:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    /:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
    /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/4p, 480M
    

    lsusb -v shows the following (presumably on stderr), interspersed with the rest of the output:

    can't get device qualifier: Resource temporarily unavailable
    can't get debug descriptor: Resource temporarily unavailable
    

    I've tried multiple USB ports, with the same result.

    The keyboard works normally on other (Windows) systems.

    How can I determine whether this is a hardware issue, or a driver issue -- USB device or system device? What further steps can I take to troubleshoot this?


    Full output of libusb -v:

    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass            9 Hub
      bDeviceSubClass         0
      bDeviceProtocol         0 Full speed (or root) hub
      bMaxPacketSize0        64
      idVendor           0x1d6b Linux Foundation
      idProduct          0x0002 2.0 root hub
      bcdDevice            4.08
      iManufacturer           3 Linux 4.8.6-300.fc25.x86_64 ehci_hcd
      iProduct                2 EHCI Host Controller
      iSerial                 1 0000:00:1d.7
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           25
        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
    Hub Descriptor:
      bLength               9
      bDescriptorType      41
      nNbrPorts             6
      wHubCharacteristic 0x000a
        No power switching (usb 1.0)
        Per-port overcurrent protection
      bPwrOn2PwrGood       10 * 2 milli seconds
      bHubContrCurrent      0 milli Ampere
      DeviceRemovable    0x00
      PortPwrCtrlMask    0xff
     Hub Port Status:
       Port 1: 0000.0100 power
       Port 2: 0000.0100 power
       Port 3: 0000.0100 power
       Port 4: 0000.0100 power
       Port 5: 0000.0100 power
       Port 6: 0000.0100 power
    can't get device qualifier: Resource temporarily unavailable
    can't get debug descriptor: Resource temporarily unavailable
    Device Status:     0x0001
      Self Powered
    
    Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               1.10
      bDeviceClass            9 Hub
      bDeviceSubClass         0
      bDeviceProtocol         0 Full speed (or root) hub
      bMaxPacketSize0        64
      idVendor           0x1d6b Linux Foundation
      idProduct          0x0001 1.1 root hub
      bcdDevice            4.08
      iManufacturer           3 Linux 4.8.6-300.fc25.x86_64 uhci_hcd
      iProduct                2 UHCI Host Controller
      iSerial                 1 0000:00:1d.2
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           25
        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     0x0002  1x 2 bytes
            bInterval             255
    Hub Descriptor:
      bLength               9
      bDescriptorType      41
      nNbrPorts             2
      wHubCharacteristic 0x000a
        No power switching (usb 1.0)
        Per-port overcurrent protection
      bPwrOn2PwrGood        1 * 2 milli seconds
      bHubContrCurrent      0 milli Ampere
      DeviceRemovable    0x00
      PortPwrCtrlMask    0xff
     Hub Port Status:
       Port 1: 0000.0100 power
       Port 2: 0000.0100 power
    can't get debug descriptor: Resource temporarily unavailable
    Device Status:     0x0001
      Self Powered
    
    Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               1.10
      bDeviceClass            9 Hub
      bDeviceSubClass         0
      bDeviceProtocol         0 Full speed (or root) hub
      bMaxPacketSize0        64
      idVendor           0x1d6b Linux Foundation
      idProduct          0x0001 1.1 root hub
      bcdDevice            4.08
      iManufacturer           3 Linux 4.8.6-300.fc25.x86_64 uhci_hcd
      iProduct                2 UHCI Host Controller
      iSerial                 1 0000:00:1d.1
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           25
        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     0x0002  1x 2 bytes
            bInterval             255
    Hub Descriptor:
      bLength               9
      bDescriptorType      41
      nNbrPorts             2
      wHubCharacteristic 0x000a
        No power switching (usb 1.0)
        Per-port overcurrent protection
      bPwrOn2PwrGood        1 * 2 milli seconds
      bHubContrCurrent      0 milli Ampere
      DeviceRemovable    0x00
      PortPwrCtrlMask    0xff
     Hub Port Status:
       Port 1: 0000.0100 power
       Port 2: 0000.0100 power
    can't get debug descriptor: Resource temporarily unavailable
    Device Status:     0x0001
      Self Powered
    
    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               1.10
      bDeviceClass            9 Hub
      bDeviceSubClass         0
      bDeviceProtocol         0 Full speed (or root) hub
      bMaxPacketSize0        64
      idVendor           0x1d6b Linux Foundation
      idProduct          0x0001 1.1 root hub
      bcdDevice            4.08
      iManufacturer           3 Linux 4.8.6-300.fc25.x86_64 uhci_hcd
      iProduct                2 UHCI Host Controller
      iSerial                 1 0000:00:1d.0
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           25
        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     0x0002  1x 2 bytes
            bInterval             255
    Hub Descriptor:
      bLength               9
      bDescriptorType      41
      nNbrPorts             2
      wHubCharacteristic 0x000a
        No power switching (usb 1.0)
        Per-port overcurrent protection
      bPwrOn2PwrGood        1 * 2 milli seconds
      bHubContrCurrent      0 milli Ampere
      DeviceRemovable    0x00
      PortPwrCtrlMask    0xff
     Hub Port Status:
       Port 1: 0000.0100 power
       Port 2: 0000.0100 power
    can't get debug descriptor: Resource temporarily unavailable
    Device Status:     0x0001
      Self Powered
    
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass            9 Hub
      bDeviceSubClass         0
      bDeviceProtocol         0 Full speed (or root) hub
      bMaxPacketSize0        64
      idVendor           0x1d6b Linux Foundation
      idProduct          0x0002 2.0 root hub
      bcdDevice            4.08
      iManufacturer           3 Linux 4.8.6-300.fc25.x86_64 ehci_hcd
      iProduct                2 EHCI Host Controller
      iSerial                 1 0000:00:1a.7
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           25
        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
    Hub Descriptor:
      bLength               9
      bDescriptorType      41
      nNbrPorts             4
      wHubCharacteristic 0x000a
        No power switching (usb 1.0)
        Per-port overcurrent protection
      bPwrOn2PwrGood       10 * 2 milli seconds
      bHubContrCurrent      0 milli Ampere
      DeviceRemovable    0x00
      PortPwrCtrlMask    0xff
     Hub Port Status:
       Port 1: 0000.0100 power
       Port 2: 0000.0100 power
       Port 3: 0000.0100 power
       Port 4: 0000.0100 power
    can't get device qualifier: Resource temporarily unavailable
    can't get debug descriptor: Resource temporarily unavailable
    Device Status:     0x0001
      Self Powered
    
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               1.10
      bDeviceClass            9 Hub
      bDeviceSubClass         0
      bDeviceProtocol         0 Full speed (or root) hub
      bMaxPacketSize0        64
      idVendor           0x1d6b Linux Foundation
      idProduct          0x0001 1.1 root hub
      bcdDevice            4.08
      iManufacturer           3 Linux 4.8.6-300.fc25.x86_64 uhci_hcd
      iProduct                2 UHCI Host Controller
      iSerial                 1 0000:00:1a.1
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           25
        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     0x0002  1x 2 bytes
            bInterval             255
    Hub Descriptor:
      bLength               9
      bDescriptorType      41
      nNbrPorts             2
      wHubCharacteristic 0x000a
        No power switching (usb 1.0)
        Per-port overcurrent protection
      bPwrOn2PwrGood        1 * 2 milli seconds
      bHubContrCurrent      0 milli Ampere
      DeviceRemovable    0x00
      PortPwrCtrlMask    0xff
     Hub Port Status:
       Port 1: 0000.0100 power
       Port 2: 0000.0100 power
    can't get debug descriptor: Resource temporarily unavailable
    Device Status:     0x0001
      Self Powered
    
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               1.10
      bDeviceClass            9 Hub
      bDeviceSubClass         0
      bDeviceProtocol         0 Full speed (or root) hub
      bMaxPacketSize0        64
      idVendor           0x1d6b Linux Foundation
      idProduct          0x0001 1.1 root hub
      bcdDevice            4.08
      iManufacturer           3 Linux 4.8.6-300.fc25.x86_64 uhci_hcd
      iProduct                2 UHCI Host Controller
      iSerial                 1 0000:00:1a.0
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           25
        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     0x0002  1x 2 bytes
            bInterval             255
    Hub Descriptor:
      bLength               9
      bDescriptorType      41
      nNbrPorts             2
      wHubCharacteristic 0x000a
        No power switching (usb 1.0)
        Per-port overcurrent protection
      bPwrOn2PwrGood        1 * 2 milli seconds
      bHubContrCurrent      0 milli Ampere
      DeviceRemovable    0x00
      PortPwrCtrlMask    0xff
     Hub Port Status:
       Port 1: 0000.0100 power
       Port 2: 0000.0100 power
    can't get debug descriptor: Resource temporarily unavailable
    Device Status:     0x0001
      Self Powered
    

    Full output of lspci -nn:

    00:00.0 Host bridge [0600]: Intel Corporation 82Q963/Q965 Memory Controller Hub [8086:2990] (rev 02)
    00:02.0 VGA compatible controller [0300]: Intel Corporation 82Q963/Q965 Integrated Graphics Controller [8086:2992] (rev 02)
    00:03.0 Communication controller [0780]: Intel Corporation 82Q963/Q965 HECI Controller [8086:2994] (rev 02)
    00:19.0 Ethernet controller [0200]: Intel Corporation 82566DM Gigabit Network Connection [8086:104a] (rev 02)
    00:1a.0 USB controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 [8086:2834] (rev 02)
    00:1a.1 USB controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 [8086:2835] (rev 02)
    00:1a.7 USB controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 [8086:283a] (rev 02)
    00:1b.0 Audio device [0403]: Intel Corporation 82801H (ICH8 Family) HD Audio Controller [8086:284b] (rev 02)
    00:1c.0 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 [8086:283f] (rev 02)
    00:1d.0 USB controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 [8086:2830] (rev 02)
    00:1d.1 USB controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 [8086:2831] (rev 02)
    00:1d.2 USB controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 [8086:2832] (rev 02)
    00:1d.7 USB controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 [8086:2836] (rev 02)
    00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev f2)
    00:1f.0 ISA bridge [0601]: Intel Corporation 82801HO (ICH8DO) LPC Interface Controller [8086:2814] (rev 02)
    00:1f.2 IDE interface [0101]: Intel Corporation 82801H (ICH8 Family) 4 port SATA Controller [IDE mode] [8086:2820] (rev 02)
    
    • Zev Spitz
      Zev Spitz about 7 years
      @dirkt Nothing is added to dmesg during lsusb -v. I've added the output of lspci -nn to the question.
    • dirkt
      dirkt about 7 years
      Anything in dmesg if you plug in and remove the keyboard? Normally it should tell you that a USB device was plugged in and removed. So far it looks like the root ehci/uhci drivers work in principle, and sort of recognize there should be another USB device, but fail to get the corresponding information. In your place, next I'd enable USB debugging in the kernel and look more closely at what happens, but that's difficult to do "remotely", and one has to read C code.
    • Zev Spitz
      Zev Spitz about 7 years
      @dirkt Nothing in dmesg after plugging in the keyboard, and nothing after removal.
    • dirkt
      dirkt about 7 years
      So that narrows it done to "host controller not working properly", as suspected. Start reading drivers/usb/host/[eu]hci*, enable CONFIG_DYNAMIC_DEBUG if necessary, google a bit how to debug the kernel if the dev_dbg messages are not sufficient, read up on how USB works, and go bug hunting. This will be time consuming, you'll need programming experience, and it won't be useful if the hardware is just broken.
  • Zev Spitz
    Zev Spitz about 7 years
    1. I tried inserting a flash drive; still not recognized by lsusb. 2. AFAICT, it's not listed under /dev/disk/by-* either (I'm not sure how I would see it, but it's formatted as FAT32 with a label, which I would expect to see somewhere. In addition, I'm only seeing sda1-6 which corresponds to the single hard disk; and sr0 which corresponds to the CD/DVD. 3. I wasn't able to find a specification that says anything about the USB version. 4. I've realized that intermittent is not quite the right word; under Windows, if the machine recognized the USB ports when first started, it would ...
  • Zev Spitz
    Zev Spitz about 7 years
    keep doing so until shutdown; if the USBs weren't recognized, then it would stay that way until shutdown. Under Linux, I have had no success in getting the USB recognized at all. Do you think an external hub might make a difference? 5. Since this machine is a small form factor, I need a PCI card with half-size metal bracket; but I will try that.
  • tniles
    tniles about 7 years
    With this info, no, I don't think an external hub will make a difference. However, a card you can install likely will work. Your updated description here in the comments makes it sound like they're just plain not init'ing correctly. Smells more and more like a HW failure...