[Nut-upsdev] usbhid-ups fails with Belkin F6C120-UNV in nut-2.4.3
Jon Burgess
jburgess777 at googlemail.com
Sat Mar 20 19:19:08 UTC 2010
On Sat, 2010-03-20 at 19:27 +0100, Arjen de Korte wrote:
> Citeren Jon Burgess <jburgess777 at googlemail.com>:
>
>
> > The change in SVN r2098 triggers the problem. By looking at the usbmon
> > output I see that this device fails to respond to the get_report
> > requests when the request size is 512 bytes.
>
> Thanks for reporting this. Can you try if fixing the size to 8 bytes
> (instead of SMALLBUF) helps? You may wish to change both of the
> following lines in in 'drivers/libhid.c':
>
> 144 unsigned char buf[8];
> 472 unsigned char buf[8];
>
> I vaguely remember that you can't read more than 8 bytes in a single
> operation, but I don't recall if this is a Belkin specific limitation
> or depends on the libusb version used.
8 bytes works and seems to be largest value that does.
It appears that this UPS is a low speed device and the USB standard
seems to say these only support transactions of up to 8 bytes in length
usb 7-1: new low speed USB device using uhci_hcd and address 2
There are a few mentions of 8 bytes in the lsusb output for the device:
bMaxPacketSize0 8
wMaxPacketSize 0x0008 1x 8 bytes
Jon
> Note that the logic that attempted to calculate the size of reports is
> flawed in earlier versions. Devices that would report more than the
> calculated size would find that these reports would be ignored
> completely. This isn't good either.
>
> Best regards, Arjen
More information about the Nut-upsdev
mailing list