[Nut-upsdev] libusb usage
Charles Lepple
clepple at gmail.com
Tue Dec 7 13:19:59 UTC 2010
On Dec 7, 2010, at 7:10 AM, Arjen de Korte wrote:
> Citeren Michal Hlavinka <mhlavink at redhat.com>:
>
>> I've been asked to find out some answers from libusb maintainer, so
>> I'm
>> forwarding them:
>>
>> - Why nut uses legacy libusb-0.1 api and not libusb 1.0 ?
>
> Well, mostly because at the time we started adding USB support to
> NUT, libusb-0.1 was all there is.
Also, there is a little more static friction to overcome if we switch
to libusb-1.0 - in order to keep configure-time complexity down, we
would want to switch *all* of the drivers to libusb-1.0 (since not all
of the USB-based drivers are served by the common code that usbhid-ups
uses). The real trick there is runtime testing of all of the drivers.
If you are trying to eliminate direct dependencies on the old
libusb-0.1 package, there is always the libusb-0.1-compat package. I
believe that FreeBSD 8+ has incorporated that into their libusb-1.0
API for the new USB stack, and aside from some changes in our
configuration scripts, it seems to work well at runtime.
NUT as a whole doesn't reap many of the benefits of libusb-1.0 since
the NUT architecture uses a single thread and process to interact with
the hardware. A more integrated system like UPower might be better
served by the asynchronous calls in 1.0.
--
Charles Lepple
More information about the Nut-upsdev
mailing list