Prev |  | Next

## 2. libusb version and binary

Until NUT release 2.7.4 the only option to build NUT drivers for USB connectivity was to use libusb-0.1 or a variant of it provided by an OS distribution. The original Sun Solaris releases and later related systems provided their customized version for example (packaged originally as `SUNWlibusbugen`, `SUNWugen{,u}` and `SUNWusb{,s,u,vc}`).

However, libusb-0.1 consuming programs had some stability issues reported when running with long-term connections to devices (such as an UPS), especially when using USB hubs and chips where hardware vendors had cut a few corners too many, which were addressed in a newer rewrite of the library as libusb-1.0.

Subsequently just as at least the illumos-based distributions evolved to include the new library and certain patches for it, and the library itself matured, the NUT project also added an ability to build with libusb-1.0 either directly or using its 0.1-compat API (available since NUT 2.8.0 release).

If your "standard" build of NUT has problems connecting to your USB UPS (libusb binary variant should be visible in driver debug messages), consider re-building NUT from source with the other option using the recent library build as available for your distribution.

In this context, note the OpenIndiana libusb-1 package pull requests with code which was successfully used when developing this documentation:

- https://github.com/OpenIndiana/oi-userland/pull/5382
- (TO CHECK) https://github.com/OpenIndiana/oi-userland/pull/5277

Binaries from builds made in OpenIndiana using the recipe from PR #5382 above were successfully directly used on contemporary OmniOS CE as well.

Prev |  | Next
| Home |