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...