[Nut-upsdev] Two APC900 UPS on the same usbbus1

Charles Lepple clepple at gmail.com
Thu Jul 18 03:51:58 BST 2019

On Jul 16, 2019, at 9:43 AM, Markus Grundmann wrote:
> Whenever I called "lsof -p <pid>" for both "usbhid-ups" processes I notice that only the ugen/1.5.0 (aka /dev/usb/1.5.0) device was used. After my "patch" the drivers was called corect with the option -x and the output of "upsc" reports the right UPS and serialno.

Are you sure that the "serial = ..." parameters were specified in ups.conf when you started the drivers originally with "-a apc90*"? 

The "-x serial=..." parameter to the driver is redundant when ups.conf has a "serial = " parameter. Also, the "port = ..." arguments are ignored by usbhid-ups, because there is no way to pass that port into libusb (and the ports returned during device enumeration are typically not stable across reboots anyway). We typically recommend "port = auto" for usbhid-ups (and other USB drivers).

If you are still seeing the problem where both UPSes are opening the same /dev node, we will need some driver traces to see why it is not matching the serial number specified in ups.conf. (I am not ready to rule out incompatible changes in FreeBSD 12.) Probably two "-D" flags should be sufficient. You can stop them with upsdrvctl first, but I would recommend starting usbhid-ups directly ("/usr/local/ups/bin/usbhid-ups -a apc900 -D -D"; otherwise, if you specify "upsdrvctl -D -D", NUT thinks you are trying to debug upsdrvctl itself.)

More information about the Nut-upsdev mailing list