Therefore I tried the following dirty patch to enable libusb-1.0 experimental support for NetBSD using the OpenBSD backend.
Take note FreeBSD has its own libusb-1.0 implementation which should be more mature than the OpenBSD backends of libusb-1.0 which is very recent.
diff --git a/configure.ac b/configure.ac index ebbc107..71aad37 100644 --- a/configure.ac +++ b/configure.ac @@ -83,6 +83,17 @@ case $host in AC_CHECK_HEADERS([poll.h]) AC_DEFINE([POLL_NFDS_TYPE],[nfds_t],[type of second poll() argument]) ;; +*-netbsd*) + AC_DEFINE(OS_OPENBSD, 1, [OpenBSD backend]) + AC_SUBST(OS_OPENBSD) + AC_MSG_RESULT([OpenBSD]) + backend="openbsd" + threads="posix" + THREAD_CFLAGS="-pthread" + PC_LIBS_PRIVATE="-pthread" + AC_CHECK_HEADERS([poll.h]) + AC_DEFINE([POLL_NFDS_TYPE],[nfds_t],[type of second poll() argument]) + ;; *-mingw*) AC_MSG_RESULT([Windows]) backend="windows"And indeed it seems to work under NetBSD (tested with a NetBSD 5.1 VirtualBox VM under Mac OS X Lion)
localhost$ sudo ./listdevs 04d8:fa2e (bus 0, device 2)I also tested libusb-pbatard's xusb example.
localhost$ sudo ./xusb -d 04d8:fa2e Opening device... speed: Unknown Reading device descriptor: Reading device descriptor: length: 18 device class: 0 S/N: 3 VID:PID: 04D8:FA2E bcdDevice: 0001 iMan:iProd:iSer: 1:2:3 nb confs: 1 Reading configuration descriptors: nb interfaces: 1 interface[0]: id = 0 interface[0].altsetting[0]: num endpoints = 2 Class.SubClass.Protocol: 00.00.00 endpoint[0].address: 01 max packet size: 0020 polling interval: 00 endpoint[1].address: 81 max packet size: 0020 polling interval: 00 interface[0].altsetting[1]: num endpoints = 2 Class.SubClass.Protocol: 00.00.00 endpoint[0].address: 01 max packet size: 0040 polling interval: 00 endpoint[1].address: 81 max packet size: 0040 polling interval: 00 Claiming interface 0... Reading string descriptors: String (0x01): "Travis Robinson" String (0x02): "Benchmark Device" String (0x03): "LUSBW1" Releasing interface 0... Closing device...