read(2) always returns 0 when reading from /dev/usb/n.m.k bulk IN endpoint

Peer Stritzinger peerst at gmail.com
Tue Jul 13 08:59:27 UTC 2010


Hi,

FYI: just tried using the short xfer ioctl, but the behavior didn't change.

  in = open (argv[0], O_RDONLY);
  ioctl(in, USB_SET_RX_SHORT_XFER, 1);
  n = read(in, buf, NBUF);

now trying libusb for this.

-- Peer

On Mon, Jul 12, 2010 at 10:41 PM, Peer Stritzinger <peerst at gmail.com> wrote:

> Hi,
>
> On Mon, Jul 12, 2010 at 8:20 PM, Hans Petter Selasky <hselasky at freebsd.org
> > wrote:
>
>> On Monday 12 July 2010 19:22:28 Peer Stritzinger wrote:
>> > However the read always returns 0.
>> >
>> > Tried different buffer sizes etc.
>> Hi,
>>
>> Maybe you are missing to set the short transfer OK flag.
>>
>> Else I recommend using LibUSB.
>>
>> --HPS
>>
>
> Did'nt set this flag (not doing any ioctls on the ugen device at all).
>
> However I did try matching either the max packetlen, or the read buffer
> size with the actual bytes sent, so I thought it shouldn't matter.
>
> I'll move on to libusb and not waste any more time with the raw interfaces.
>
> Thanks
> -- Peer
>


More information about the freebsd-usb mailing list