Skip to content

Linux kernel USB errors -71 and -110

Linux

After an upgrade of my PC's mainboard BIOS the boot would take a minute or more to complete and sometimes the lightdm login screen would sit there but not accept keyboard input for another minute or so. Then the keyboard got enabled and I could log in normally. Everything worked fine after that bootup struggle completed. This was fully reproducible and persisted across reboots. Weird.

The kernel dmesg log showed entries that looked suspicious:

dmesg log excerpt showing USB error messages

Googleing these error -110 and error -71 is a bit hard. Now why the USB driver does not give useful error messages instead of archaic errno-style numbers escapes me. This is not the 80s anymore.

Citation needed (Wikipedia style) The wisdom of the crowd says error -110 is something around "the USB port power supply was exceeded" [source].

Now lsusb -tv shows device 1-7 ... to be my USB keyboard. I somehow doubt that wants more power than the hub is willing to provide.

The Archlinux BBS Forums recommend to piece together information from drivers/usb/host/ohci.h and (updated from their piece which is from 2012) /tools/include/uapi/asm-generic/errno.h. This is why some people then consider -110 to mean "Connection timed out". Nah, not likely either.

Reading through the kernel source around drivers/usb/host did not enlighten me either. To the contrary. Uuugly. There seems to be no comprehensive list what these error codes mean. And the numbers are assigned to errors conditions quite arbitrarily. And - of course - there is no documentation. "It was hard to do, so it should be hard to understand as well."

Luckily some of the random musings I read through contained some curious advice: power cycle the host. So I did and that did not make the error go away. Other people insisted on removing cables out of wall sockets, unplugging everything and conducting esoteric rituals. That made it dawn on me, the mainboard of course nicely powers the USB in "off" state, too. So switching the power supply off (yes, these have a separate switch, go find yours), waiting a bit for capacitors to drain and switching things back on and ... the errors were gone, the system booted within seconds again.

So the takeaway message: If you get random error messages like

device descriptor read/64, error -110
device not accepting address 42, error -71

on devices that previously worked fine ... completely remove power from the host, the hubs and the USB devices. So they forget they saw each other on the bus before. And when they see each other after that blackout, they will happily go through negotiating protocol details with each other again successfully.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

ychaouche on :

Curious. I had my laptop's keyboard not responding entirely after waking up from sleep. It happened to me only once. I put it to sleep regularly, it never happened before, and to this time it only happened once. (the usb mouse worked, but not the laptop's own keyboard). I had to restart it.

tak2hu on :

I'm having this issue with the exact error code when connecting my ipad that's running linux (see konradybcio/linux-apple) with the initramfs from pmos iphone 6 to my laptop so that I can ssh/telnet/minicom into it. I hope it's the fault of some driver idk

Max on :

Hi Daniel, I just wanted to thank you for this post. I had the same problem, and your fix just solved it!

OliverT on :

Dear Daniel, I just had a similar issue while testing a StarTech dual USB-C port PCIe card (Product ID: PEXUSB312C3) with an Acasis dual-NVMe dock. The StarTech uses the ASMedia ASM236X series chip which is well supported in modern (6.1.x) Linux kernels. What was intruiging was that a new Samsung 980 NVMe drive connected fine but a failed no-none NVMe produced a stanza like so:

Mar 06 13:16:57 testing1 kernel: usb 7-1: new high-speed USB device number 3 using xhci_hcd Mar 06 13:16:57 testing1 kernel: usb 7-1: Device not responding to setup address. Mar 06 13:16:57 testing1 kernel: usb 7-1: Device not responding to setup address. Mar 06 13:16:58 testing1 kernel: usb 7-1: device not accepting address 3, error -71

In this case I only tested power-off-, insert NVMe drive, power-off and I'd tentatively suggest that error -71 is what it says in the same line: a USB bus device being enumerated but not accepting (for some other reason) the assigned USB ID. I made a note of error -110 in my home wiki tho - just in case :-)

Add Comment

Markdown format allowed
Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Submitted comments will be subject to moderation before being displayed.