For a long time now I have had real problems with USB bulk transfer stuff (anything that moves reasonable amounts of data to mass storage devices and gnomad2 - an interface to a Creative Zen mp3 player, not using a mass storage interface - has never worked right for me).
Finally a comment on a mailing list lead me to suspect the gnome-pilot daemon as the culprit. Further testing has shown that if something is looping performing the following operations:- * open /proc/bus/usb/devices * stat the fh from above * read fh * close fh * poll() on any filehandles (do not need to be USB related - /dev/null works fine) then USB operations frequently fail with "control timeout on ep0in" - as has been reported on the linux-usb-users list:- http://www.mail-archive.com/[EMAIL PROTECTED]/msg11221.html I've attached a little bit of perl which is the smallest bit of code I have got that reproduces this effect (it does a deliberate stat() on the filehandle - that appears to be needed. I did think about removing the stat() from the gnome-pilot code as a workround, but the stat() is implicit as part of the internals of fopen() apparently). Obviously you need to do some USB data transfer operation whilst the perl code is running. I have seen this problem previously with 2.4.x kernels, I currently see it with 2.6.8 (Fedora 2 build - kernel-2.6.8-1.521 i686 arch) and have in hindsight never seen bulk USB transfers work on a box where gnome- pilot (or rather gpilotd) is running. Its going to be a real fun bug to pin down.... Nigel. -- [ Nigel Metheringham [EMAIL PROTECTED] ] [ - Comments in this message are my own and not ITO opinion/policy - ]
usb_bug_reproduce.pl
Description: Perl program