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