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.
Could you try the old initialization scheme for usb devices? This can be done by changing the kernel parameter in
/etc/default/grub
:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
toGRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.old_scheme_first=1"
update-grub
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:
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
, soand find which PCI device provides usb bus 6:
The directory name here is the PCI bus ID corresponding to that USB bus. Then it's just simply:
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.)
Had
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.
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!
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