I am seeing this problem in one or another form since ~2006, and it looks like it will be with us for a while.
My understanding is that there may be a *number* of issues with USB 2.0 + that end with more or less similar symptoms, producing lots of confusion.
A number of workarounds exist, the above is just one of them; basically it all goes down to some way of limiting the connection speed, after what the USB connection seems to survive; the most robust ( and the worst in the terms of efficiency ) is switching down to USB 1.0 :
Please note that for the most of the distributions we can't just do "rmmod ehci_hcd" anymore and have to "unbind" the driver from the usb hub -- or even from a specific port :
At USB 2.* level, limiting the speed normally solves most of the issues except for some "intellectual" hardware that likes to go offline to save power etc and never wakes up ; one of these is changing the "max_sectors" value: http://www.linux-usb.org/FAQ.html#i5 ; it may have to do something with setting the proper buffer size as well )
I will skip a number of related workarounds to keep this comment at a reasonable size ; returning back to the "intellectual" hardware, there are at least two quirk parameters to mention: "autosuspend" and "old_scheme_first" .
the second one is normally advised as a random shot when there is "some unknown bad magic happening", and I list it only for some very rare occasions ; here is a link: http://www.linux-usb.org/FAQ.html#ts10 .
hth,
/t13
PS. In some specific case, reading around the above links may also help )
I am seeing this problem in one or another form since ~2006, and it looks like it will be with us for a while.
My understanding is that there may be a *number* of issues with USB 2.0 + that end with more or less similar symptoms, producing lots of confusion.
A number of workarounds exist, the above is just one of them; basically it all goes down to some way of limiting the connection speed, after what the USB connection seems to survive; the most robust ( and the worst in the terms of efficiency ) is switching down to USB 1.0 :
https:/ /help.ubuntu. com/community/ Mount/USB# USB_2_Issues www.thinkwiki. org/wiki/ Problem_ with_USB_ 2.0
http://
Please note that for the most of the distributions we can't just do "rmmod ehci_hcd" anymore and have to "unbind" the driver from the usb hub -- or even from a specific port :
http:// lists.en. qi-hardware. com/pipermail/ discussion/ 2011-August/ 008508. html
( The obscure numbers behind this magic are described here : http:// www.makelinux. net/ldd3/ ?u=chp- 12-sect- 1, here : http://<email address hidden> /msg16895. html and here : http:// www.linux- usb.org/ FAQ.html# i6 ; this also contains a great introduction in sysfs: http:// www.reactivated .net/writing_ udev_rules. html )
At USB 2.* level, limiting the speed normally solves most of the issues except for some "intellectual" hardware that likes to go offline to save power etc and never wakes up ; one of these is changing the "max_sectors" value: http:// www.linux- usb.org/ FAQ.html# i5 ; it may have to do something with setting the proper buffer size as well )
in old days one have had to either write an udev rule ( see the link above ), or add the device into "unusual devs" and then recompile the kernel: http:// www.phildev. net/linux/ usb-unusualdevs -notes. html, http:// lxr.free- electrons. com/source/ include/ linux/usb_ usual.h, http:// lxr.free- electrons. com/source/ drivers/ usb/storage/ unusual_ devs.h, http:// yarchive. net/comp/ linux/quirks. html ;
nowadays things are probably better : http:// ftp.dei. uc.pt/pub/ linux/kernel/ people/ gregkh/ usb/2.6/ 2.6.28/ usb-storage- make-the- quirks- module- parameter- writable. patch, http:// lxr.free- electrons. com/source/ Documentation/ kernel- parameters. txt#L3444 and one can pass certain parameters to the kernel at the boot time : http:// lxr.free- electrons. com/source/ Documentation/ kernel- parameters. txt#L9, e.g. http:// anythingbutipod .com/forum/ showthread. php?t=49138 .
Back to limiting the connection speed. My favorite way to go is via cgroups ( http:// linux.oracle. com/documentati on/EL6/ Red_Hat_ Enterprise_ Linux-6- Resource_ Management_ Guide-en- US.pdf, http:// www.mjmwired. net/kernel/ Documentation/ cgroups. txt, http:// www.kernel. org/doc/ Documentation/ cgroups/ devices. txt, http:// www.oracle. com/technetwork /articles/ servers- storage- admin/resource- controllers- linux-1506602. html, etc ) along with a related udev rule ; this seems to work well in most of the cases.
I will skip a number of related workarounds to keep this comment at a reasonable size ; returning back to the "intellectual" hardware, there are at least two quirk parameters to mention: "autosuspend" and "old_scheme_first" .
First allows us to disable auto-suspending: http:// lxr.free- electrons. com/source/ Documentation/ kernel- parameters. txt#L3407, http:// wiki.xbmc. org/index. php?title= HOW-TO: Suspend_ and_wake_ in_Ubuntu# Disable_ Usbcore_ Autosuspend, http:// www.kernel. org/doc/ Documentation/ usb/power- management. txt, e.g. : http:// linuxtv. org/wiki/ index.php/ Leadtek_ WinFast_ DTV2000DS# Losing_ 1_tuner ;
the second one is normally advised as a random shot when there is "some unknown bad magic happening", and I list it only for some very rare occasions ; here is a link: http:// www.linux- usb.org/ FAQ.html# ts10 .
hth,
/t13
PS. In some specific case, reading around the above links may also help )
--