[Nut-upsdev] Krauler UP-M500VA investigation

Alexander I. Gordeev lasaine at lvk.cs.msu.su
Wed Nov 15 23:24:43 CET 2006


Hi, Peter,

Peter Selinger wrote:

> This is good and bad. 

> The good news is that you have a nice Usage tree (the lines starting
> with Path: in your debug output below), and it is easy to guess the
> function of all the variables, as they all use standard names (except
> the top-level 00860004, which is likely a bug - should be 00840004).

If it is a bug, it's not caused by software.

> I note that some of the usage paths seem incomplete (they end in a
> period) - I just committed a change to SVN that might fix this
> problem, if it is indeed a problem. ("svn update" will update your
> sources).

I've updated souces, here is an update of the output:

admin at router:/tmp/harddisk/share/pub/system/development/newbuild2/opt/bin> ./newhidups -DD -u admin -x generic -x vendorid=0001 /dev/usb/hid/hiddev0
Network UPS Tools: 0.28 USB communication driver 0.28 - core 0.30 (2.1.0)

debug level is '2'
Checking device (0000/0000) (003/001)
- VendorID: 0000
- ProductID: 0000
- Manufacturer: Linux 2.4.20 ehci_hcd
- Product: PCI device 1106:3104
- Serial Number: 01:03.2
- Bus: 003
Trying to match device
Device does not match - skipping
Checking device (04FC/0C15) (003/002)
- VendorID: 04fc
- ProductID: 0c15
- Manufacturer: Sunplus Technology Inc.
- Product: USB to Serial-ATA bridge
- Serial Number: SAMSUNG SPS09QJ1NL805434
- Bus: 003
Trying to match device
Device does not match - skipping
Checking device (0000/0000) (002/001)
- VendorID: 0000
- ProductID: 0000
- Manufacturer: unknown
- Product: USB UHCI Root Hub
- Serial Number: 120
- Bus: 002
Trying to match device
Device does not match - skipping
Checking device (0000/0000) (001/001)
- VendorID: 0000
- ProductID: 0000
- Manufacturer: unknown
- Product: USB UHCI Root Hub
- Serial Number: 100
- Bus: 001
Trying to match device
Device does not match - skipping
Checking device (0001/0000) (001/006)
- VendorID: 0001
- ProductID: 0000
- Manufacturer: unknown
- Product: unknown
- 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 retrieved (Reportlen = 624)
Report descriptor retrieved (Reportlen = 624)
Found HID device
Report Descriptor size = 624
Detected a UPS: unknown/unknown
Using subdriver: GENERIC HID 0.1
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.FlowID, Type: Feature
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.ConfigVoltage, Type: Feature
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.ConfigFrequency, Type: Feature
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.LowVoltageTransfer, Type: Feature
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.HighVoltageTransfer, Type: Feature
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.iManufacturer, Type: Feature
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.iProduct, Type: Feature
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.iSerialNumber, Type: Feature
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.FlowID, Type: Feature
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.ConfigVoltage, Type: Feature
Can't retrieve Report 1 (16): Device or resource busy
Path: 00860004.Flow.ConfigFrequency, Type: Feature
Can't retrieve Report 2 (16): Device or resource busy
Path: 00860004.Flow.ConfigApparentPower, Type: Feature
Can't retrieve Report 2 (16): Device or resource busy
Path: 00860004.Flow.ConfigActivePower, Type: Feature
Can't retrieve Report 2 (16): Device or resource busy
Path: 00860004.Flow.DelayBeforeStartup, Type: Feature
Can't retrieve Report 2 (16): Device or resource busy
Path: 00860004.Flow.DelayBeforeShutdown, Type: Feature
Can't retrieve Report 3 (16): Device or resource busy
Path: 00860004.BatterySystem.BatterySystemID, Type: Feature
Can't retrieve Report 3 (16): Device or resource busy
Path: 00860004.BatterySystem.PresentStatus.Used, Type: Feature
Can't retrieve Report 3 (16): Device or resource busy
Path: 00860004.BatterySystem.PresentStatus.Good, Type: Feature
Can't retrieve Report 3 (16): Device or resource busy
Path: 00860004.BatterySystem.Voltage, Type: Feature
Can't retrieve Report 3 (16): Device or resource busy
Path: 00860004.BatterySystem.Temperature, Type: Feature
Can't retrieve Report 3 (16): Device or resource busy
Path: 00860004.BatterySystem.Test, Type: Input
Can't retrieve Report 3 (16): Device or resource busy
Path: 00860004.BatterySystem.Test, Type: Feature
Can't find object 00860004.PowerConverter.PowerConverterID
Path: 00860004.PowerConverter.PowerConverterID, Type: Input
Can't find object 00860004.PowerConverter.Input.InputID
Path: 00860004.PowerConverter.Input.InputID, Type: Input
Can't find object 00860004.PowerConverter.Input.FlowID
Path: 00860004.PowerConverter.Input.FlowID, Type: Input
Can't find object 00860004.PowerConverter.Input.PresentStatus.Good
Path: 00860004.PowerConverter.Input.PresentStatus.Good, Type: Input
Can't find object 00860004.PowerConverter.Input.Voltage
Path: 00860004.PowerConverter.Input.Voltage, Type: Input
Can't find object 00860004.PowerConverter.Input.Frequency
Path: 00860004.PowerConverter.Input.Frequency, Type: Input
Can't find object 00860004.PowerConverter.Output.OutputID
Path: 00860004.PowerConverter.Output.OutputID, Type: Input
Can't find object 00860004.PowerConverter.Output.FlowID
Path: 00860004.PowerConverter.Output.FlowID, Type: Input
Can't find object 00860004.PowerConverter.Output.Voltage
Path: 00860004.PowerConverter.Output.Voltage, Type: Input
Can't find object 00860004.PowerConverter.Output.Frequency
Path: 00860004.PowerConverter.Output.Frequency, Type: Input
Can't find object 00860004.PowerConverter.Output.PercentLoad
Path: 00860004.PowerConverter.Output.PercentLoad, Type: Input
Can't find object 00860004.PowerConverter.Output.PresentStatus.Overload
Path: 00860004.PowerConverter.Output.PresentStatus.Overload, Type: Input
Can't find object 00860004.PowerConverter.Output.PresentStatus.Boost
Path: 00860004.PowerConverter.Output.PresentStatus.Boost, Type: Input
Can't find object 00860004.PowerConverter.Output.PresentStatus.Buck
Path: 00860004.PowerConverter.Output.PresentStatus.Buck, Type: Input
upsdrv_updateinfo...
dstate_init: sock /tmp/harddisk/share/pub/system/development/newbuild2/opt/var/state/ups/newhidups-hiddev0 open on fd 5
upsdrv_updateinfo...
Waiting for notifications...
upsdrv_updateinfo...
Waiting for notifications...
Signal 2: exiting
Closing device 

> Also, your usage tree seems to be identical to that of two other
> devices that we have recently seen (see the nut-upsdev and nut-upsuser
> mailing list archives): one of them was a "MEC" and the other an
> "Ablerex".  Since all three devices have identical (or near-identical;
> I did not check very carefully) usage trees, their internals are
> probably made by the same company.  So if we ever support these
> devices, there will probably be a single subdriver servicing all three
> of them.

> The bad news is the many "Can't retrieve Report" messages. It looks
> like the device doesn't want to communicate any actual values of those
> variables. This again is consistent with what we observed in the "MEC"
> and "Ablerex" devices - they too resisted actually being read. That is
> of course a flagrant violation of the USB specification. We have not
> yet been able to coax any useful information out of these devices.

> -- Peter

Sounds really bad. Maybe I can help to find this out?
I have a copy of Upsilon 2000, an UPS monitoring tool. But it supports
usb only under Windows. Maybe tracing usb io could help?
Unfortunately I don't feel myself experienced enough. But there's no
harm in trying.

-- 
 Alexander                          mailto:lasaine at lvk.cs.msu.su




More information about the Nut-upsdev mailing list