USB device not accepting address

Could you try the old initialization scheme for usb devices? This can be done by changing the kernel parameter in /etc/default/grub:

  • change the line that says GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" to GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.old_scheme_first=1"
  • run update-grub
  • reboot and see if it helped

In my case I seem to have a hub inside the machine (probably providing the four-port cluster on the back) that won't accept the assigned address.

The log messages for me look like this:

usb 6-1: new low-speed USB device number 116 using uhci_hcd
usb 6-1: device not accepting address 116, error -71
hub 6-0:1.0: unable to enumerate USB device on port 1

This shows it's usb bus 6. I don't have anything connected to it, and I want it to shut up.

Now we need to find the relevant driver. In this case it's uhci_hcd, so

$ sudo -s
# cd /sys/bus/pci/drivers/uhci_hcd

and find which PCI device provides usb bus 6:

# echo */usb6
0000:00:1a.2/usb5

The directory name here is the PCI bus ID corresponding to that USB bus. Then it's just simply:

# echo 0000:00:1d.0 > unbind

to turn it off.

If this works then just the last line can be added to a boot-time script. It seems like there ought to be a kernel parameter to avoid some USB buses but I can't find one.

(Based on the answer by titaniumtux but trying to avoid unbinding my keyboard. Call me old-fashioned but I still use it.)