What is wrong with FreeBSD and USB Support

Markus Rechberger mrechberger at gmail.com
Mon Mar 6 05:50:09 UTC 2017


I got one step further it turns out that the problem is indeed the
FreeBSD Stack, the latency is terrible causing an overflow on the
chipside. Once that happens the transfer has to be restarted (which
requires to toggle a register).
Is there any way to do low latency transfers with FreeBSD?


On Mon, Mar 6, 2017 at 6:19 AM, Markus Rechberger <mrechberger at gmail.com> wrote:
> Hi,
> I have been trying to port a driver to freebsd for a day now and the
> result is quite negative.
> So my feedback about libusb20 and the FreeBSD USB Kernel Stack:
> 1. the documentation is not clear how to set up asynchronous bulk
> transfers (please explain the architecture of this API)
> 2. the errors returned by libusb20 (and probably from the kernel) are
> not detailed enough (in certain cases I'm able to get libusb20 unknown
> error, to my understanding every error should have some meaning).
> 3. the FreeBSD USB Stack messes around with the transfer itself
> damaging the entire result (eg resulting in stalled USB bulk
> transfers).
> 4. The FreeBSD data transfer implementation itself is a disaster, I'm
> able to transfer data at a rate of 2 MB/sec, anything higher results
> in a stalled usb transfer?!
> 5. USB Control messages are 100% slower than with other operating
> systems (eg. it took 14 seconds to load a driver with FreeBSD while it
> only takes 7 seconds on other systems).
> Since I have been using USB stacks with Linux, Mac and some other
> systems I can say that FreeBSD has the most irritating implementation
> of all.
> So finally I wonder what is wrong with FreeBSD's USB support?
> Best Regards,
> Markus

More information about the freebsd-multimedia mailing list