PFSense + NUT + Old tripplite UPS issue
-
Hi!
I've been struggling a bit to run an older UPS on my pfsense (2.7.2). I installed NUT (2.8.2_1) and the UPS is a Tripplite Internet750U.
On the link I've found from network ups tools (https://networkupstools.org/stable-hcl.html), it tells me the driver should be usbhid-ups, however when running it with this parameters, it tells me I should switch to the tripplite-usb driver.Output from usbhid-usp
Network UPS Tools - Generic HID driver 0.52 (2.8.1.1) USB communication driver (libusb 1.0) 0.46 0.000000 [D1] Network UPS Tools version 2.8.1.1 (release/snapshot of 2.8.1.1) built with FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152); Target: x86_64-unknown-freebsd14.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/man --disable-silent-rules --infodir=/usr/local/share/info/ --build=amd64-portbld-freebsd14.0 0.000024 [D1] debug level is '2' 0.000190 [D1] Succeeded to become_user(nut): now UID=316 GID=316 0.000210 [D1] upsdrv_initups (non-SHUT)... 0.000214 [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.46') 0.000311 [D2] Checking device 1 of 1 (09AE/0001) 0.007495 [D2] - VendorID: 09ae 0.007499 [D2] - ProductID: 0001 0.007500 [D2] - Manufacturer: TRIPP LITE 0.007502 [D2] - Product: TRIPP LITE INTERNET750U 0.007504 [D2] - Serial Number: unknown 0.007505 [D2] - Bus: 000 0.007507 [D2] - Bus Port: 007 0.007508 [D2] - Device: 002 0.007510 [D2] - Device release number: 0001 0.007511 [D2] Trying to match device 0.007514 [D2] match_function_subdriver (non-SHUT mode): matching a device... 0.007523 This Tripp Lite device (09ae/0001) is not supported by usbhid-ups. Please use the tripplite_usb driver instead. 0.007525 [D2] match_function_subdriver (non-SHUT mode): failed to match a subdriver to vendor and/or product ID 0.007527 [D2] Device does not match - skipping 0.007536 [D2] libusb1: No appropriate HID device found 0.007539 libusb1: Could not open any HID devices: insufficient permissions on everything 0.007540 No matching HID UPS found 0.007549 upsnotify: failed to notify about state 4: no notification tech defined, will not spam more about it
Switching the config to the tripplite_usb
Network UPS Tools - Tripp Lite OMNIVS / SMARTPRO driver 0.35 (2.8.1.1) Warning: This is an experimental driver. Some features may not function correctly. 0.000000 [D1] Network UPS Tools version 2.8.1.1 (release/snapshot of 2.8.1.1) built with FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152); Target: x86_64-unknown-freebsd14.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/man --disable-silent-rules --infodir=/usr/local/share/info/ --build=amd64-portbld-freebsd14.0 0.000022 [D1] debug level is '2' 0.000186 [D1] Succeeded to become_user(nut): now UID=316 GID=316 0.000296 [D2] Checking device 1 of 1 (09AE/0001) 0.007133 [D2] - VendorID: 09ae 0.007138 [D2] - ProductID: 0001 0.007140 [D2] - Manufacturer: TRIPP LITE 0.007142 [D2] - Product: TRIPP LITE INTERNET750U 0.007144 [D2] - Serial Number: unknown 0.007145 [D2] - Bus: 000 0.007147 [D2] - Bus Port: 007 0.007148 [D2] - Device: 002 0.007150 [D2] - Device release number: 0001 0.007151 [D2] Trying to match device 0.007154 [D2] Device matches 0.007156 [D2] Reading configuration descriptor 1 of 1 0.007180 [D2] Claimed interface 0 successfully 0.007894 [D2] Retrieved HID descriptor (expected 9, got 9) 0.007898 [D2] HID descriptor length 52 0.808666 Unit ID not retrieved (not available on all models) 0.808673 [D2] Caller doesn't like this device 0.811207 [D2] libusb1: No appropriate HID device found 0.811211 libusb1: Could not open any HID devices: insufficient permissions on everything 0.811213 No matching USB/HID UPS found 0.811225 upsnotify: failed to notify about state 4: no notification tech defined, will not spam more about it
So with this one, it sees the UPS, there's a match, but fails to connect.
Here's the output of nut-scanner
Scanning USB bus. No start IP, skipping SNMP Scanning XML/HTTP bus. No start IP, skipping NUT bus (old connect method) Scanning NUT simulation devices. Scanning NUT bus (avahi method). Error sending Eaton <SCAN_REQUEST/> to <broadcast>, #1/3 Failed to create Avahi client: Daemon not running Error sending Eaton <SCAN_REQUEST/> to <broadcast>, #2/3 Error sending Eaton <SCAN_REQUEST/> to <broadcast>, #3/3 [nutdev1] driver = "tripplite_usb" port = "auto" vendorid = "09AE" productid = "0001" product = "TRIPP LITE INTERNET750U" vendor = "TRIPP LITE" bus = "000" device = "002" busport = "007" ###NOTMATCHED-YET###bcdDevice = "0001"
If I try to run the triplite driver with -u root, still fails (altered to show only the UPS section, it lists all my usb hubs and other componments)
Network UPS Tools - Tripp Lite OMNIVS / SMARTPRO driver 0.35 (2.8.1.1) Warning: This is an experimental driver. Some features may not function correctly. 0.000000 [D1] Network UPS Tools version 2.8.1.1 (release/snapshot of 2.8.1.1) built with FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152); Target: x86_64-unknown-freebsd14.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/man --disable-silent-rules --infodir=/usr/local/share/info/ --build=amd64-portbld-freebsd14.0 0.000022 [D1] debug level is '2' 0.000186 [D1] Succeeded to become_user(root): now UID=0 GID=0 0.000483 [D2] Checking device 4 of 7 (09AE/0001) 0.007417 [D2] - VendorID: 09ae 0.007420 [D2] - ProductID: 0001 0.007421 [D2] - Manufacturer: TRIPP LITE 0.007423 [D2] - Product: TRIPP LITE INTERNET750U 0.007425 [D2] - Serial Number: unknown 0.007427 [D2] - Bus: 000 0.007428 [D2] - Bus Port: 007 0.007429 [D2] - Device: 002 0.007431 [D2] - Device release number: 0001 0.007432 [D2] Trying to match device 0.007434 [D2] Device matches 0.007436 [D2] Reading configuration descriptor 1 of 1 0.007455 [D2] Claimed interface 0 successfully 0.008178 [D2] Retrieved HID descriptor (expected 9, got 9) 0.008182 [D2] HID descriptor length 52 0.808952 Unit ID not retrieved (not available on all models) 0.808960 [D2] Caller doesn't like this device 0.819357 [D2] libusb1: No appropriate HID device found 0.819360 libusb1: Could not open any HID devices: insufficient permissions on everything 0.819362 No matching USB/HID UPS found 0.819374 upsnotify: failed to notify about state 4: no notification tech defined, will not spam more about it
usbconfig dump_device_desc
ugen0.2: <TRIPP LITE TRIPP LITE INTERNET750U> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (60mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0110 bDeviceClass = 0x0000 <Probed by interface class> bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0008 idVendor = 0x09ae idProduct = 0x0001 bcdDevice = 0x0001 iManufacturer = 0x0001 <TRIPP LITE> iProduct = 0x0002 <TRIPP LITE INTERNET750U > iSerialNumber = 0x0000 <no string> bNumConfigurations = 0x0001
So yeah not to sure what to do next. All I can see is the insufficient permissions, wondering if it would be a permission thing, but on the other end, even trying it with root doesn't work.
Any input welcome!
-
@Evraptor The permissions error is a red herring.
It is possible that you are encountering a bug in NUT. There is an update to the version of NUT on pfSense pending. Probably best to wait for it unless you are in the mood to purchase another UPS.
Btw, "older UPS" often means older batteries. Lead acid batteries such as that UPS uses are good for only 3-5 years. If the batteries are older than 3 years, or the UPS has been unplugged for more than a year, the batteries will almost certainly need replacing.
-
Hey!
Good, hopefully the update will fix it up!
Old ups, but batteries inside were replaced. Ended up finding new batteries for that ups.
Kinda curious on what could produce a bug like this. From what I can see everything is setup proprely. Even permissions on the usb device is good. Really weird!
-
Finally got something working.
in ups.conf box in the settings I've added:
[UPS] subdriver = "TrippLite HID 0.85" vendorid = "09ae" productid = "0001"
So now I do have informations working on the UPS, but it states it's running on battery. Almost like the driver is not getting all the infos it requires
-
@Evraptor You can keep playing with it, but I would not trust it.
-
Hello, I just updated to 24.03 on a couple of netgate 4100 devices, and now I'm running into this also with several TRIPP LITE SMART750RM1U that are about a year old. They previously were working fine on an older version of pfSense.
I'm also seeing the "[D2] Caller doesn't like this device" debug message.
Sounds like I just have to wait for a new version though. Thanks for posting and thank you to dennypage for being so helpful.
If any debug info would help I'm happy to include it.
-
@stompro On the 4100, you could try the attached driver to confirm that it works.
-
@stompro If you tried the driver, I'd appreciated it if you let me know the result. Thanks.
-
@dennypage Sorry, I haven't figured out yet how I feel about using random binaries from web forms. After the XZ Backdoor hack I'm feeling paranoid about trusting established community contributors.
The linked binary is much larger than the currently installed version, which weirded me out. It is probably something like debugging symbols being included.
And I just got busy with other projects.
Any way I can pull a specific git branch and compile it myself?
Thanks -
@stompro Fair enough. I'm actually the pfSense NUT maintainer, but I do understand your caution. If you want to wait for official builds that's totally understandable.
Regarding the size, yes, the executable I posted has debug symbols, whereas the production one does not. Unfortunately the standard development tools are not present on pfSense so you cannot run the strip and size commands.
FWIW, the sha256sum on the executable as posted is
d4e4563ca03ed92ef780c0799cd1e29c3d53638d738fb74e47b196c8540d44cf
If you want to build it yourself, you will need to set up a FreeBSD 14 system and then install the FreeBSD ports package to do the build from.