[Nut-upsdev] Two APC900 UPS on the same usbbus1
Markus Grundmann
markus at activezone.de
Thu Jul 18 07:02:08 BST 2019
On 18.07.19 04:51, Charles Lepple wrote:
> 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.)
You are right Chalres !!! But I don't know why I have not probed this
variant in the past :-(
I have used the origin upsdrvctl binary in the following test and it
works also and I'm little bit irritated now. Thanks for your reply!
Please forget my "PATCH" request *LOL*
$ tail -n15 /usr/local/etc/nut/ups.conf
# the -h option and/or read the driver's documentation.
user = root
[apc900]
driver = usbhid-ups
port = auto
serial = 3B1520X10340
desc = "APC900-LEFT"
[apc901]
driver = usbhid-ups
port = auto
serial = 3B1207X25460
desc = "APC900-RIGHT"
$ service nut start
Network UPS Tools - UPS driver controller 2.7.4
Network UPS Tools - Generic HID driver 0.41 (2.7.4)
USB communication driver 0.33
Using subdriver: APC HID 0.96
Network UPS Tools - Generic HID driver 0.41 (2.7.4)
USB communication driver 0.33
Using subdriver: APC HID 0.96
Starting nut.
Network UPS Tools upsd 2.7.4
fopen /var/db/nut/upsd.pid: No such file or directory
listening on 0.0.0.0 port 3493
Connected to UPS [apc901]: usbhid-ups-apc901
Connected to UPS [apc900]: usbhid-ups-apc900
$ ps auxw|grep -e nut -e ups
root 4929 0.0 0.0 11880 3040 - Ss 07:45 0:00.01
/usr/local/libexec/nut/usbhid-ups -a apc900
root 6418 0.0 0.0 11880 3040 - Ss 07:45 0:00.00
/usr/local/libexec/nut/usbhid-ups -a apc901
uucp 8097 0.0 0.0 30088 2892 - Ss 07:45 0:00.00
/usr/local/sbin/upsd
$ upsc apc900 | grep -i serial
device.serial: 3B1520X10340
driver.parameter.serial: 3B1520X10340
ups.serial: 3B1520X10340
$ upsc apc901 | grep -i serial
device.serial: 3B1207X25460
driver.parameter.serial: 3B1207X25460
ups.serial: 3B1207X25460
### Both drivers using the right device. Without the serial statement in
ups.conf only '/dev/usb/1.5.0' was used.
$ lsof -p 4929
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
usbhid-up 4929 root cwd VDIR 1643202022,2213797598 9 44338
/var/db/nut
usbhid-up 4929 root rtd VDIR 1643202022,2213797598 27 4 /
usbhid-up 4929 root txt VREG 1643202022,2213797598 191832 44147
/usr/local/libexec/nut/usbhid-ups
usbhid-up 4929 root txt VREG 1643202022,2213797598 148320 223
/libexec/ld-elf.so.1
usbhid-up 4929 root txt VREG 1643202022,2213797598 93672 13486
/usr/lib/libusb.so.3
usbhid-up 4929 root txt VREG 1643202022,2213797598 131824 200
/lib/libthr.so.3
usbhid-up 4929 root txt VREG 1643202022,2213797598 1949672 33820
/lib/libc.so.7
usbhid-up 4929 root 0u VCHR 0,16 0t0 16
/dev/null
usbhid-up 4929 root 1u VCHR 0,16 0t0 16
/dev/null
usbhid-up 4929 root 2u VCHR 0,16 0t0 16
/dev/null
usbhid-up 4929 root 3u unix 0xfffff8023ff4c6d0 0t0
->0xfffff800134846d0
usbhid-up 4929 root 4u VCHR 0,140 0t0 140
/dev/usb/1.4.0
usbhid-up 4929 root 5u VCHR 0,140 0t0 140
/dev/usb/1.4.0
usbhid-up 4929 root 6u unix 0xfffff80013483000 0t0
/var/db/nut/usbhid-ups-apc900
usbhid-up 4929 root 7u unix 0xfffff800735046d0 0t0
/var/db/nut/usbhid-ups-apc900
$ lsof -p 6418
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
usbhid-up 6418 root cwd VDIR 1643202022,2213797598 9 44338
/var/db/nut
usbhid-up 6418 root rtd VDIR 1643202022,2213797598 27 4 /
usbhid-up 6418 root txt VREG 1643202022,2213797598 191832 44147
/usr/local/libexec/nut/usbhid-ups
usbhid-up 6418 root txt VREG 1643202022,2213797598 148320 223
/libexec/ld-elf.so.1
usbhid-up 6418 root txt VREG 1643202022,2213797598 93672 13486
/usr/lib/libusb.so.3
usbhid-up 6418 root txt VREG 1643202022,2213797598 131824 200
/lib/libthr.so.3
usbhid-up 6418 root txt VREG 1643202022,2213797598 1949672 33820
/lib/libc.so.7
usbhid-up 6418 root 0u VCHR 0,16 0t0 16
/dev/null
usbhid-up 6418 root 1u VCHR 0,16 0t0 16
/dev/null
usbhid-up 6418 root 2u VCHR 0,16 0t0 16
/dev/null
usbhid-up 6418 root 3u unix 0xfffff80013754000 0t0
->0xfffff800134846d0
usbhid-up 6418 root 4u VCHR 0,232 0t0 232
/dev/usb/1.5.0
usbhid-up 6418 root 5u VCHR 0,232 0t0 232
/dev/usb/1.5.0
usbhid-up 6418 root 6u unix 0xfffff8023ff4c368 0t0
/var/db/nut/usbhid-ups-apc901
usbhid-up 6418 root 7u unix 0xfffff800134836d0 0t0
/var/db/nut/usbhid-ups-apc901
--
Best regards,
Markus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/nut-upsdev/attachments/20190718/ad8290fe/attachment.html>
More information about the Nut-upsdev
mailing list