I've posted this before being subscribed but was thwarted by moderation. I have a new UPS, actual manufacturer unknown. It comes with USB and serial connections, and a CD with windows software and some old unix software for serial support only. I'm using pretty much bleeding edge linux, and I want to avoid rs-232 if possible. Am I hopelessly naive?
This is what lsusb says: Bus 006 Device 002: ID ffff:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0xffff idProduct 0x0000 bcdDevice 1.00 iManufacturer 1 iProduct 2 068A iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 27 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 ** UNRECOGNIZED: 09 21 00 01 00 01 22 78 02 Device Status: 0x0000 (Bus Powered) The ffff:0000 is mighty suspicious, like someone didn't want to pay for a USB consortium membership. $ sudo /usr/sbin/upsdrvctl -DDD start myups Network UPS Tools - UPS driver controller 2.4.1 Starting UPS: myups exec: /lib/nut/usbhid-ups -a myups Network UPS Tools - Generic HID driver 0.34 (2.4.1) USB communication driver 0.31 No matching HID UPS found Driver failed to start (exit status=1) $ sudo /usr/sbin/upsdrvctl -DDD start myups Network UPS Tools - UPS driver controller 2.4.1 Starting UPS: myups exec: /lib/nut/usbhid-ups -a myups Network UPS Tools - Generic HID driver 0.34 (2.4.1) USB communication driver 0.31 Using subdriver: EXPLORE HID 0.1 This is all I could get from usbmon, with explore. This is just turning on the driver. I don't know how to cause the UPS to send any more info. $ sudo usbmon -i 6 265b7600 0.695954 S Ci:6:002:0 s 80 06 0300 0000 00ff 255 < 265b7600 0.700413 C Ci:6:002:0 0 4 = 04030904 265b7600 0.700431 S Ci:6:002:0 s 80 06 0301 0409 00ff 255 < 265b7600 0.705412 C Ci:6:002:0 0 4 = 04032000 265b7600 0.705420 S Ci:6:002:0 s 80 06 0300 0000 00ff 255 < 265b7600 0.710412 C Ci:6:002:0 0 4 = 04030904 265b7600 0.710427 S Ci:6:002:0 s 80 06 0302 0409 00ff 255 < 265b7600 0.716412 C Ci:6:002:0 0 10 = 0a033000 36003800 4100 265b7600 0.716455 S Co:6:002:0 s 01 0b 0000 0000 0000 0 265b7600 0.719412 C Co:6:002:0 0 0 265b7600 0.719427 S Ci:6:002:0 s 81 06 2100 0000 0009 9 < 265b7600 0.724412 C Ci:6:002:0 0 9 = 09210001 00012278 02 265b7600 0.724428 S Ci:6:002:0 s 81 06 2200 0000 0278 632 < 265b7600 0.806424 C Ci:6:002:0 0 632 = 05860904 a1010584 091ea100 8501091f 65007504 95011500 250f6500 b1027504 I've looked at http://www.usb.org/developers/devclass_docs/pdcv10.pdf (linked from http://www.networkupstools.org/protocols/) and deciphered the "** UNRECOGNIZED: 09 21 00 01 00 01 22 78 02" line from lsusb, but I don't know how to get it to spew out the 0x7802 bytes of reports the document describes. I suppose that I can install Windows in a virtual machine, pass the usb device from the host into the VM, install the Windows software that came with it (I don't know but I suppose it does work) and reverse engineer a driver from usbmon captures. But that sounds like a lot of work. And I'll need to buy Windows. Can anyone suggest an alternative? -Zeev _______________________________________________ Nut-upsuser mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/nut-upsuser

