[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