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 - ]

Attachment: usb_bug_reproduce.pl
Description: Perl program

Reply via email to