On Jan 21, 2020, at 7:50 AM, Gene Heskett <[email protected]> wrote: > > Now I've got another of those WTF questions. This ups doesn't ID itself > the same to an lsusb as it does to upsc. > From an lsusb: > Bus 001 Device 004: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS
The two IDs are vendor (VID) and product (PID). lsusb looks them up in a text file, typically /usr/share/misc/usb.ids, and concatenates the vendor and product strings in the short output format that you quoted. NUT reports those hex numbers as ups.vendorid and ups.productid, respectively, but doesn't look them up in usb.ids. > From a upsc: > device.mfr: CPS > device.model: CP625HGa > These strings are retrieved from the UPS itself. If you run "lsusb -v -d 0764:0501" as root, you should see output similar to what I got from an APC: $ sudo lsusb -v -d 051d: Bus 006 Device 002: ID 051d:0003 American Power Conversion UPS Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x051d American Power Conversion idProduct 0x0003 UPS bcdDevice 1.06 iManufacturer 1 American Power Conversion iProduct 2 Smart-UPS C 1000 FW:UPS 10.0 / ID=1005 ... The strings to the right of iManufacturer and iProduct are what the usbhid-ups driver returns under device.mfr and device.model. (Sometimes device.model is trimmed down, as is the case for APC firmware strings.) lsusb won't show the strings if you don't run it as root, since it needs privileges to send the request to retrieve the strings. Since NUT drivers need read/write access to USB devices anyway, the NUT USB code retrieves the full strings. _______________________________________________ Nut-upsuser mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
