Charles Lepple wrote:
> 
> On 7/24/06, Phil DeBoest <[EMAIL PROTECTED]> 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


_______________________________________________
Nut-upsuser mailing list
Nut-upsuser@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/nut-upsuser

Reply via email to