[Nut-upsuser] Tripp Lite Smart1000LCD driver problem

Peter Selinger selinger at mathstat.dal.ca
Sun Aug 6 04:10:42 UTC 2006


Charles Lepple wrote:
> 
> On 7/24/06, Phil DeBoest <phil at deboest.com> wrote:
> > HID descriptor retrieved (Reportlen = 459)
> > Unable to get Report descriptor (-75)
> 
> Phil,
> 
> This looks a lot like the problem mentioned here:
> 
> http://lists.alioth.debian.org/pipermail/nut-upsdev/2005-November/000318.html
> 
> Peter,
> 
> Do you know where the problem turned out to be in the aforementioned
> message? If it is a wrong value for desc->wDescriptorLength, we could
> start a "quirks" table, and override the descriptor length for that
> particular UPS (and for some of the APCs, if we are still seeing that
> problem).
> 
> -- 
> - Charles Lepple
> 

Indeed, the cause of this bug was isolated here:

http://lists.alioth.debian.org/pipermail/nut-upsdev/2006-February/000705.html

As it turns out, there are two ways of retrieving report 0x21 (the HID
descriptor) from the UPS: either by requesting report 0x21 directly,
or by requesting report 0x02, which will have a copy of report 0x21
tucked onto its end. Normally, the two ways are supposed to give the
same result. However, on some buggy UPS's (notably Tripp Lite, and
some APC), only the second method works. "lsusb" always uses the second
method, whereas NUT has always used the first. 

I have just committed some changes to the development branch that
hopefully solve this problem. Now I retrieve the HID descriptor in two
different ways, and when in doubt, use the second value (the same as
"lsusb"). I have also made libusb_open() more tolerant in case the
actual report descriptor is shorter than expected; so this should no
longer fail.

Phil, James, Justin, could you test this? Thanks, -- Peter




More information about the Nut-upsuser mailing list