Running #lsusb -D <device path> or opening the device from a random Perl script will either yield the manufacturer name, or the product name, or both, or neither ... depending on how it happens to feel at the time.
I ran usbmon and mounted the kernel debugfs and got this example of a partially failed transaction:
Code: Select all
daacee00 3258841209 S Ci:6:028:0 s 80 06 0300 0000 00ff 255 <
daacee00 3258847165 C Ci:6:028:0 0 4 = 04030904
daacee00 3258847184 S Ci:6:028:0 s 80 06 0301 0409 00ff 255 <
daacee00 3258856170 C Ci:6:028:0 -84 16 = 1a037700 77007700 2e006f00 62006400
f0b1d980 3258856251 S Ci:6:028:0 s 80 06 0300 0000 00ff 255 <
f0b1d980 3258862165 C Ci:6:028:0 0 4 = 04030904
f0b1d980 3258862185 S Ci:6:028:0 s 80 06 0302 0409 00ff 255 <
f0b1d980 3258873169 C Ci:6:028:0 0 20 = 14034100 75007400 6f006d00 61007400 6f007200
f0b1d980 3258873264 S Ci:6:028:0 s 80 06 0300 0000 00ff 255 <
f0b1d980 3258880172 C Ci:6:028:0 0 4 = 04030904
f0b1d980 3258880215 S Ci:6:028:0 s 80 06 0300 0409 00ff 255 <
f0b1d980 3258886165 C Ci:6:028:0 0 4 = 04030904
the line:
"daacee00 3258856170 C Ci:6:028:0 -84 16 = 1a037700 77007700 2e006f00 62006400"
appears to be the troublesome one ... it seems to be saying its going to send 0x0A bytes, I can see it manages "www.obd" and then seems to crap out ... not sure what the -84 code is .. I guess its an error code for something?
I've disabled other interrupts on the system, (im running on INT2, so I've cleared INT0 and INT1) .. any clues where to start looking? Its a 3.3V system and runing through a pair of 68R into the linux box, the lines appear to go close to rail and look lovely and crisp on the scope, so I doubt it is levels ...
The initial setup seems to go OK, I can see it finds the device and works out what it is, vendor ID, product ID etc, that all seems to go off with out a hitch .. its the later queries and anything from the fltk application that seem to be cursed ... any clues on where to begin to dig?