Linux read usb descriptors

device descriptor read/64, error -110

I have a storage server running openmediavault which is based on debian. The OS is in a USB 3.0 Stick pluged directly on the motherboard (no USB-Hub or sth). The system was running fine for about 3 Months and 2 days ago I got this errors:

usb 1-3: device descriptor read/64, error -110 usb 1-3: device not accepting address 33, error -110 usb 1-3: device not accepting address 34, error -110 hub 1-0:1.0: unable to enumerate USB device on port 3 

When I restart the server, everything is fine again. The next day I face the same error. What can I do to fix this. I dont want to loose 3TB of data.

5 Answers 5

USB error -110 means «Timeout expired before the transfer completed», which could be caused by anything. Most commonly, it’s because power was exceeded; the host could not provide enough electric power for the pendrive to operate. Because it has not enough power also the USB stick cannot provide the device descriptor to the host, as a result it cannot be identified and so on. Maybe your motherboard it’s overloaded with devices that consume all the available power.

So far it worked well, and the only things I have pluged into the MB are 3 SATA-HDDs and the CPU-Fan. Nothing that could drain so much power.

Hmmm, it depends. you have study the specs of the motherboard, the hdd and the CPU fan (even I don’t think that fan drains a lot of power).

Off-topic. I once diagnosed a similar issue, an industrial computer board (which actually it was a former laptop line adjusted by Fujitsu-Siemens for industrial/medical use) and a FireWire industrial camera. This camera was reseting randomly. In fact all the peripherals were sharing the same power source, and in some situations the board was cutting the power to the camera, in order to suply it the more higher priority devices.

This answer does not make sense to me. The failed device is an HP LaserJet printer and so it have its own power supply.

Читайте также:  Linux smb mount fstab

The problem was a USB 3.0 Stick that needed more current than usual for a USB 2.0 device. This lead to the errors. I replaced the stick and in addition to that I installed the latest BIOS-Drivers. No more problems!

Just to add another data point: I was running into «error -110» messages for my Inateck dual bay USB 3.0 to SATA device (amazon link). This fixed it for me:

  1. shutdown -h now (turn off the computer)
  2. Unplug USB device from computer.
  3. Unplug power cord to back of the computer.
  4. Unplug power to Inateck — pull wall wart plug from wall socket.
  5. Noticed there was a green glowing LED on the Inateck wall wart; waited for that to go dark.
  6. Waited ~3min total.
  7. Plugged everything back in and booted up.

Note: Previously I tried just unplugging the computer and letting it sit for a while; that didn’t work. I had to unplug the USB from the computer and the usb device power adapter from the wall.

Must be something with USB power provisioning/negotiation?

Thanks for that information. I have had that glowing LED thing with some NIVIDIA drivers on Linux, so I knew what you meant. In my case I had plugged-in a powered USB hub before the power was connected. I am surprised though that the Hub drew power before anything was connected. Based on the comments here, seems the USB port status is locked at at 110 until whatever hot-start on-board memory loses power long enough to forget. Like I said, seen that already with the graphics driver. It is a relief to be back and running — I couldn’t see what might have gone awry.

I had the same problem, but I only needed to unplug and replug the power cable (while the PC is runnning). For some reason, simply rebooting the PC didn’t help.

Источник

unixforum.org

[Решено]usb 1-1: device descriptor read/64, error -110 (В чем проблема?)

[Решено]usb 1-1: device descriptor read/64, error -110

Сообщение held » 08.06.2009 15:22

Перестали определятся USB устройства. Команда lsusb долго весит в конце выдает список usb без тех к которым подключен сканер и принтер. При загрузки и выключении выходит ошибка

Читайте также:  Kali linux 2021 virtualbox

usb 1-4: device descriptor read/64, error -110
usb 1-4: device descriptor read/64, error -110
usb 1-4: device descriptor read/8, error -110
usb 1-4: device descriptor read/8, error -110

в kern.log постоянно сыпится

Jun 8 16:23:40 as-desktop kernel: [ 1613.609046] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:41 as-desktop kernel: [ 1613.856045] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:41 as-desktop kernel: [ 1614.105046] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:41 as-desktop kernel: [ 1614.353071] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:41 as-desktop kernel: [ 1614.600134] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:42 as-desktop kernel: [ 1614.849041] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:42 as-desktop kernel: [ 1615.829057] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:43 as-desktop kernel: [ 1616.077062] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:43 as-desktop kernel: [ 1616.315292] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:43 as-desktop kernel: [ 1616.561048] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:43 as-desktop kernel: [ 1616.808039] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:44 as-desktop kernel: [ 1617.057038] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:44 as-desktop kernel: [ 1617.304317] hub 4-0:1.0: unable to enumerate USB device on port 1 Jun 8 16:23:44 as-desktop kernel: [ 1617.553041] hub 4-0:1.0: unable to enumerate USB device on port 1

В журнале в messages временами добовляется

Jun 8 16:13:47 as-desktop kernel: [ 1020.672034] usb 2-2: new full speed USB device using ohci_hcd and address 8 Jun 8 16:14:18 as-desktop kernel: [ 1051.408037] usb 2-2: new full speed USB device using ohci_hcd and address 9 Jun 8 16:14:45 as-desktop kernel: [ 1078.296026] usb 1-4: new high speed USB device using ehci_hcd and address 7 Jun 8 16:14:55 as-desktop kernel: [ 1088.652027] usb 1-4: new high speed USB device using ehci_hcd and address 8 Jun 8 16:15:06 as-desktop kernel: [ 1099.008027] usb 1-4: new high speed USB device using ehci_hcd and address 9 Jun 8 16:15:36 as-desktop kernel: [ 1129.552044] usb 1-4: new high speed USB device using ehci_hcd and address 10 Jun 8 16:16:07 as-desktop kernel: [ 1160.808049] usb 2-2: new full speed USB device using ohci_hcd and address 10 Jun 8 16:16:18 as-desktop kernel: [ 1171.232027] usb 2-2: new full speed USB device using ohci_hcd and address 11 Jun 8 16:16:28 as-desktop kernel: [ 1181.652026] usb 2-2: new full speed USB device using ohci_hcd and address 12 Jun 8 16:16:59 as-desktop kernel: [ 1212.388022] usb 2-2: new full speed USB device using ohci_hcd and address 13 Jun 8 16:17:34 as-desktop kernel: [ 1247.080031] usb 2-2: new full speed USB device using ohci_hcd and address 14 Jun 8 16:17:44 as-desktop kernel: [ 1257.500032] usb 2-2: new full speed USB device using ohci_hcd and address 15 Jun 8 16:17:55 as-desktop kernel: [ 1267.920033] usb 2-2: new full speed USB device using ohci_hcd and address 16 Jun 8 16:18:25 as-desktop kernel: [ 1298.664739] usb 2-2: new full speed USB device using ohci_hcd and address 17

В чем проблема, подскажите, пожалуйста.

Читайте также:  Xargs команда в linux

Источник

How to read Binary Device Object Store (BOS) descriptor of USB Device on Linux

I need to programmatically read device descriptors of a USB device plugged into a Linux system (Ubuntu 18.04). I can read most of the descriptors I need (iSerial, iProduct, etc) by parsing lsusb output, or by reading directly from the usbfs files at /sys/bus/usb/devices/ . However I’m having trouble finding the Binary Device Object Store (BOS) descriptor using either method. I imagine I can query the BOS using libusb but it seems like since this is a USB spec standard descriptor, there may be a simpler way. Is possible read it directly from the usbfs, or query it from a standard utility tool like lsusb or other?

1 Answer 1

BOS descriptor can be get through control transfer. The control transfer parameters are:

bmRequestType: 0x80, bRequest: 0x06, wValue: 0x0F00, wIndex: 0x0000,

The header BOS descriptor is:

struct usb_bos_descriptor_header < u8_t bLength; u8_t bDescriptorType; u16_t wTotalLength; u8_t bNumDeviceCaps; >; 

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.14.43533

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Оцените статью
Adblock
detector