13

I have a series of machines that I am building for work that have usb card readers. When I boot them I get a long series of messages:

...
[ 2347.768419] hub 1-6:1.0: unable to enumerate USB device on port 6
[ 2347.968178] usb 1-6.6: new full-speed USB device number 10 using ehci_hcd
[ 2352.552020] usb 1-6.6: device not accepting address 10, error -32
[ 2352.568421] hub 1-6:1.0: unable to enumerate USB device on port 6
[ 2352.768179] usb 1-6.6: new full-speed USB device number 12 using ehci_hcd
[ 2357.352033] usb 1-6.6: device not accepting address 12, error -32
...

On some older machines this only takes a few attempts before the card reader finally accepts an address, while on newer machines it can take many minutes. Changing hardware is not an option and plugging the usb card reader into a different port is only an option for the older manchines. This was a problem under 11.04 and I am now running the 12.04 beta and its still happening.

Is there something I can do in the software (a udev rule perhaps?) that would fix this?

Any advice appreciated. I'm happy to provide more details if you need them.

1
  • For me, the issue was with the cable. Jan 23, 2019 at 11:38

5 Answers 5

8
+50

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
2

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.)

1

Had

usb 2-2: new high speed USB device using address 10
usb 2-2: device not accepting address 10, error -71
...
usb 2-2: new high speed USB device using address 13
usb 2-2: device not accepting address 13, error -71

on CentOS.

Found http://paulphilippov.com/articles/how-to-fix-device-not-accepting-address-error

Sure enough, inserting a powered USB hub in the equation solved it.

0

I met the same situation as yours.

But I used the Ubuntu 10.04.

But if I used another computer, it never come out.

So until now, I think it was something with my USB interface.

After I add udev rules to my system, it can occur less the before.

You can try it .

Best wishes!

-1

Make a script containing the following and run it on startup:

cd /sys/bus/pci/drivers/ehci_hcd/

sudo sh -c 'find ./ -name "0000:00:*" -print| sed "s/\.\///">unbind'

That should solve the problem.

Source: here

1
  • 1
    Note that this command as written is going to unbind every EHCI device, which might include your keyboard.
    – poolie
    Jun 2, 2014 at 3:34

You must log in to answer this question.

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