[Nut-upsuser] NUT SuSE Linux 11.0 USB ULTRA ULT33046 ups

Arjen de Korte nut+users at de-korte.org
Wed Dec 31 09:50:07 UTC 2008


Citeren Bill Blessing <billy1180 at gmail.com>:

> Checking device (0D9F/0002) (001/002)
> - VendorID: 0d9f
> - ProductID: 0002
> - Manufacturer: POWERCOM CO., LTD.
> - Product: USB to Serial
> - Serial Number: unknown
> - Bus: 001
> Trying to match device
> Device matches
> failed to claim USB device, trying 2 more time(s)...
> detaching kernel driver from USB device...
> trying again to claim USB device...
> HID descriptor, method 1: (9 bytes) => 09 21 00 01 00 01 22 25 00
> HID descriptor, method 2: (9 bytes) => 09 21 00 01 00 01 22 25 00
> HID descriptor length 37
> Report Descriptor size = 37
> Report Descriptor: (37 bytes) => 06 a0 ff 09 01 a1 01 09 01 15 00 26 ff 00
>  75 08 95 08 81 02 09 02 75 08 95 08 91 02 09 03 75 08 95 05 b1 02 c0

OK, this is clear. This report descriptor is much too short for a HID  
Power Device Class UPS, so most likely it uses a USB to serial  
converter.

> Using subdriver: EXPLORE HID 0.1
> Report[get]: (2 bytes) => 00 00
> Path: ffa00001.ffa00001, Type: Input, ReportID: 0x00, Offset: 0, Size: 8,
> Value: 0.000000
> Report[buf]: (2 bytes) => 00 00
> Path: ffa00001.ffa00002, Type: Output, ReportID: 0x00, Offset: 0, Size: 8,
> Value: 0.000000
> Report[buf]: (2 bytes) => 00 00
> Path: ffa00001.ffa00003, Type: Feature, ReportID: 0x00, Offset: 0, Size: 8,
> Value: 0.000000
> Report descriptor retrieved (Reportlen = 37)
> Found HID device
> Detected a UPS: POWERCOM CO., LTD./USB to Serial

Indeed, a USB to serial converter. Now the problem is finding out what  
protocol it uses on the serial interface. I suspect that this will be  
similar to the Powercom devices we already support through the serial  
interface, but it would be nice to verify this by having a look at the  
output of usbsnoop while monitoring it through the bundled (?) driver  
on a Windows box.

If it indeed uses the Powercom protocol, there are basically two ways  
to get this UPS supported:

1) Support for the USB to serial converter used is build into the  
kernel module that creates a virtual /dev/ttyUSBx port to which the  
existing 'powercom' driver can connect. This usually is a slow  
process, unless the hardware used by the manufacturer is similar to  
existing/generic USB to serial converters already supported. I  
honestly don't know if this is feasible.

2) The existing 'powercom' driver is modified to talk to the USB to  
serial converter directly. We do this for instance for the 'megatec'  
driver (called 'megatec_usb' in that case), with varying levels of  
success. A much cleaner way would be to separate the protocol handling  
from the communication layer (like in the 'bcmxcp_ser'/'bcmxcp_usb'  
and (new) 'blazer_ser'/'blazer_usb' drivers. This latter requires  
rewriting the 'powercom' driver from the ground up however.

Both of the above require a developer with sufficient interest in  
supporting this device and ample of time to do this. If you're not  
able to do this yourself and you really need to monitor your UPS, I  
suggest to switch to another UPS that is already supported.

Best regards, Arjen
-- 
Please keep list traffic on the list




More information about the Nut-upsuser mailing list