[sane-devel] USB-sniff help with Canon FS2720U

Bertrik Sikken bertrik at zonnet.nl
Mon Jul 17 21:52:18 UTC 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Tabor Kelly wrote:
> Hello,
> 
> I am hoping to write a SANE backend for my Canon FS2720U slide
> scanner. After playing with Snoopy Pro and deciding that it was
> lacking in many regards, I have switched so USB-sniff. However, I am
> new to USB and device drivers in general and I am looking for some
> help reading the USB-sniff output.
> 
> Specifically, I want to know how the elements of the USB-sniff output
> map to the USB 1.1 specification. Here is the first log I attempted to
> read (http://tabor.taborandtashell.net/sane-fs2720u/turned_on.LOG).
> This is just what I get when I turn on the scanner for the first time.
> So, I have a long list of questions and I have searched for answers
> but I couldn't find any.
> 
> What does Status in USB-sniff map to in the USB 1.1 spec?

I think it doesn't map to anything in the USB spec.

> Does URB_FUNCTION_CONTROL_TRANSFER refer the the Control Transfer
> discussed in the USB 1.1 spec? If so, what is a
> URB_FUNCTION_CLASS_INTERFACE? I couldn't find it in the spec.

Yes, URB_FUNCTION_CONTROL_TRANSFER maps to a control transfer.
The data you see in the SetupPacket maps to table 9-2 in paragraph
9.3 from the USB 2.0 spec (I don't have USB 1.1 spec here)

> What are the TransferFlags and why can't I find their description in
> the USB 1.1 spec?

I think it is something windows specific.

> TransferBuffer is just the memory address of the start of the buffer,
> right?
>
> What is TransferMDL?
> 
> What is UrbLink?

Yes, all three are windows-driver specific and don't really have to
do anything with the USB spec. They're also unimportant w.r.t.
reverse-engineering.

> Do RequestTypeReservedBits, Request, Value, and Index in USB-sniff map
> to bmRequest, bRequest, wValue, and wLength respectively in the USB
> 1.1 spec?

Yes, basically these are the individual fields as decoded from the
setup packet.

By the way, it's indeed a bit unusual to see interface-class requests
at the start of the log. It looks like those transfers are used to
upload firmware or something. Can you find out what the USB id of
your device is, after it has been plugged into windows?
Can you also check what the USB id / descriptors look like when it
is plugged into Linux? And after turning it off and on again while
connected to linux? (run 'lsusb -vv' as root).
If firmware is being uploaded, the USB id should change.

Regards,
Bertrik
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEvAaRETD6mlrWxPURAlH3AJ44WBIBliguPZTXmh27QGw/uotkwgCfXuKd
C6dWGLRk9sv7/glAOw7+tok=
=RxIP
-----END PGP SIGNATURE-----



More information about the sane-devel mailing list