[Nut-upsdev] Powerware 3105 (USB) in FreeBSD

Peter Selinger selinger at mathstat.dal.ca
Sat Nov 26 16:43:54 UTC 2005


Kjell Claesson wrote:
> 
> > however the newhidups driver output the following data, is it possible
> > to continue and write a sub-driver to newhidups?
> > 
> 
> It is not a hid device. - And why does it answer like it do?
> 
> All usb devices have an enumerating process. And it is wrong of the
> hid driver to report it as a hid device as the klass is 0 and
> that mean that the klass is defined at interface level.
> 
> And if you look at interface level it say class=ff and it
> mean vendor protocol.
> 8<-----------------------------------------------------
> T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=1.5 MxCh= 0
> D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
> P:  Vendor=0592 ProdID=0002 Rev= 0.80
> S:  Manufacturer=Powerware
> S:  Product=Powerware UPS
> C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  2mA
> I:  If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=usbfs
> E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=20ms
> 8<-------------------------------------------------------
> 
> So the solution is to make the usblib on freebsd handle
> interrut endpoint's. The driver is working nice on Linux
> running a 2.6 kernel.
> 
> And you may have a look on bcmxcp.c and the protocol code,
> I don't think that Peter let this code go into the hid driver.

Yes, you are right. The way that newhidups checks for HID devices is a
bit sloppy at the moment. It works for all the actual HID devices that
we have seen so far, but it could occasionally mistakenly open a
non-HID device. I will fix this in the (perhaps distant) future.

-- Peter



More information about the Nut-upsdev mailing list