Issues after upgrade to 2.8.0
-
Hello all. Just pulled the trigger and updated to 2.8.0. Everything went smoothly except for NUT. I'm getting this in the logs:
Jun 5 03:51:09 upsmon 36111 Poll UPS [ups@localhost] failed - Driver not connected Jun 5 03:51:09 upsmon 36111 Poll UPS [ups] failed - Driver not connected Jun 5 03:51:04 upsmon 36111 UPS ups@localhost is unavailable Jun 5 03:51:04 upsmon 36111 Poll UPS [ups@localhost] failed - Driver not connected Jun 5 03:51:04 upsmon 36111 Poll UPS [ups] failed - Driver not connected Jun 5 03:50:59 upsmon 36111 Communications with UPS ups@localhost lost Jun 5 03:50:59 upsmon 36111 Poll UPS [ups@localhost] failed - Driver not connected Jun 5 03:50:59 upsmon 36111 UPS ups is unavailable
It's a CyperPower unit. I found this previous post from 2.7.0 (https://www.reddit.com/r/PFSENSE/comments/14tebia/nut_issues_on_270/) that stated to put interuptonly in the extra arguments but that doesn't seem to have fixed the issue. Funny part is I had no issues on 2.7.0 using the usbhid driver.
Thanks in advance!
edit: Results of running:
[2.8.0-RELEASE][root@fw.jonestech.lan]/root: /usr/local/libexec/nut/usbhid-ups -DDD -a ups Network UPS Tools - Generic HID driver 0.53 (2.8.2) USB communication driver (libusb 1.0) 0.47 0.000000 [D1] upsdrv_makevartable... 0.000067 [D1] Using USB implementation: libusb-1.0.0 (API: 0x1000102) 0.000123 [D3] main_arg: var='driver' val='usbhid-ups' 0.000131 [D3] main_arg: var='port' val='auto' 0.000137 [D3] main_arg: var='interruptonly' val='<null>' 0.000148 [D3] main_arg: var='pollinterval' val='15' 0.000152 [D1] testval_reloadable: setting 'pollinterval' exists and differs: new value '15' vs. '2' 0.000158 [D3] main_arg: var='ignorelb' val='<null>' 0.000166 [D3] main_arg: var='override.battery.charge.warning' val='45' 0.000175 [D3] main_arg: var='override.battery.charge.low' val='40' 0.000194 [D1] Network UPS Tools version 2.8.2 (release/snapshot of 2.8.2) built with FreeBSD clang version 19.1.5 (https://github.com/llvm/llvm-project.git llvmorg-19.1.5-0-gab4b5a2db582); Target: x86_64-unknown-freebsd15.0; Thread model: posix and configured with flags: --sysconfdir=/usr/local/etc/nut --program-transform-name= --localstatedir=/var/db/nut --datadir=/usr/local/etc/nut --with-devd-dir=/usr/local/etc/devd --with-drvpath=/usr/local/libexec/nut --with-statepath=/var/db/nut --with-altpidpath=/var/db/nut --with-pidpath=/var/db/nut --with-pkgconfig-dir=/usr/local/libdata/pkgconfig --with-user=nut --with-group=nut --with-python=/usr/local/bin/python3.11 --without-python2 --with-python3=/usr/local/bin/python3.11 --without-nut_monitor --with-ltdl --with-nut-scanner --with-avahi --with-cgi --with-cgipath=/usr/local/www/cgi-bin/nut --with-htmlpath=/usr/local/www/nut --with-gd-includes=-I/usr/local/include --with-gd-libs='-L/usr/local/lib -lgd' --without-dev --with-freeipmi --without-ipmi --with-doc=no --with-modbus --with-neon --without-nss --with-openssl --with-powerman --with-serial --with-snmp --with-usb=auto --prefix=/usr/local --mandir=/usr/local/share/man --disable-silent-rules --infodir=/usr/local/share/info/ --build=amd64-portbld-freebsd15.0 0.000202 [D1] debug level is '3' 0.000428 [D1] Succeeded to become_user(nut): now UID=316 GID=316 0.000453 [D1] upsdrv_initups (non-SHUT)... 0.000458 [D2] Initializing an USB-connected UPS with library libusb-1.0.0 (API: 0x1000102) (NUT subdriver name='USB communication driver (libusb 1.0)' ver='0.47') 0.000580 [D2] libusb1: No appropriate HID device found 0.000586 libusb1: Could not open any HID devices: no USB buses found 0.000589 No matching HID UPS found 0.000600 upsnotify: failed to notify about state 4: no notification tech defined, will not spam more about it
Hopefully that helps. I'm lost on why it can't find a USB bus when the UPS shows up on a usbconfig.
-
Several reboots seemed to have fixed the issue. Hopefully it stays away.
-
@JonesTech I recommend removing all the excess config you have put in.
There are far too many copy/paste magic recipes for NUT on the internet that mislead people. The best approach with NUT is to start with the default configuration, and let NUT and your UPS take care of business as designed. You should only add directives to NUT if you are doing so to address a specific problem, and even then be very minimalist. And with every OS or NUT upgrade, you should retest/reconfirm that the directives are actually still necessary.
ignorelb
, while commonly recommended on the internet in various recipes derived from 10 or 15+ year old information, is almost always a very bad idea. It should ONLY be used if you have one of those very unfortunate old UPSs that declare Low Battery immediately on mains fail. On a modern UPS, you simply don't want to ignore the UPS saying "Hey, the battery is low, I'm about to shut down..."interruptonly
is not pertinent to the initial connection of the driver, and should only be done if necessary to address constant disconnects with your UPS. Usually this is used to work around bugs in the USB or driver layer. If you do need to put this in, you should retest this with every OS or NUT upgrade to see if it is still required.Increasing
pollinterval
will make it longer before the system knows you are on battery. Almost certainly not what you want.override.battery.charge.warning
has no meaning with the pfSense configuration.override.battery.charge.low
will cause NUT to initiate a shutdown even though you have over a third of your run-time remaining. While this is a meaningful directive, are you sure this is what you want? And are you sure your UPS will work correctly this case?