libusb10: libusb_bulk_transfer returns LIBUSB_ERROR_OTHER caused by USB_FS_OPEN ioctl in ugen20_tr_open

Peer Stritzinger peerst at gmail.com
Wed Jul 14 17:41:41 UTC 2010


Hi,

On Wed, Jul 14, 2010 at 9:35 AM, Hans Petter Selasky <hselasky at c2i.net> wrote:
> On Tuesday 13 July 2010 23:40:43 Peer Stritzinger wrote:
>> What I get is rv -> LIBUSB_ERROR_OTHER to get closer to re reason for
>
> IN endpoints must be OR'ed with 0x80.

That was the problem, from the documentation (fbsd man page and
sourceforge) it wasn't clear that this has to be done.  OTOH it might
have occurred to me that libusb_bulk_transfer couldn't always guess
the direction so it must be told somehow.

It works now quite well now. Thanks a lot!

> Could you dump the configuration
> descriptor of your device? Also you might need to claim the interfaces.

Claiming the interface or not didn't make any difference (both ways it works).

Looking at the code of libusb_claim_interface it doesn't do much, and
claiming doesn't prevent other processes accessing the interface (I
can start the program that claims the interface multiple times without
problem).

Actually what I would like to do is reading one endpoint of a
interface in one process and writing in another process -- saves me
polling an/or doing async i/o.

It looks like it might just work but somehow I have the impression
that it wouldn't be the right way to do it and might break in future
versions of FreeBSD.

Best regards
-- Peer


More information about the freebsd-usb mailing list