Hello, and thanks for the detailed report. Regarding /var/run/nut - I think `systemd-tmpfiles --create` should have taken care of this. Can you check if your tarball "package" actually shipped a /usr/lib/tmpfiles.d/nut-common-tmpfiles.conf file, and does it list (/var)/run/nut among the items it tracks? On the build system, would `grep PATH= config.log` reveal anything? (I suspect the PIDPATH could be defaulted as `(/var)/run` without the `.../nut` suffix)
Regarding run-time configurations, you did not specify a `--sysconfdir=/etc/nut` so it defaults to using an `etc` dir under the `--prefix` which is also defaulted in your case: nut-scanner -qUN > /etc/nut/ups.conf ... Mon 19 Feb 2024 03:06:21 AM UTC : OK: No more changes to reconcile between systemd service instances and device configurations in '/usr/local/ups/etc/ups.conf' I wonder how it finds *something* to claim a "nutdev" configuration, though. Is there something actually written into /usr/local/ups/etc/ups.conf or is NUT hallucinating (sounds trendy this year, maybe it grew an AI too?) :) > [Do I also need: "--enable-inplace-runtime"?] If you had a previous installation of NUT, perhaps a package, this option helps the `configure` script auto-detect other options like paths and user names for your new build to be a functional replacement of the old one. In particular, this helps with testing of new program iterations right from the build workspace using the same system-wide configs. Jim On Mon, Feb 19, 2024 at 4:51 AM Bruce Pleat via Nut-upsuser < nut-upsuser@alioth-lists.debian.net> wrote: > I'm trying to Compile/Package and then (on a different box) Config/Run > 2.8.1. Both boxes are Raspberry Pi 4b on Bullseye with a generic USB UPS. > > -- > > I'm trying to get nut running on my Raspberry (bullseye/11). (I'd also > love to share a working 2.8.1 for Raspberry with the world, but...) > > I compiled the latest code from git: version 2.8.1-774-g963abbd87 > I compiled it on one system that does NOT have a UPS, to "package" for my > three other UPS-monitoring systems. > > Here's the general history/steps. > > (Note: In some places, I did repeat prior steps in different orders, but > did not take detailed notes of every last diagnostic effort...) > > (Note: Anywhere I put a semicolon, I did each command separately, but am > simplifying here) > (Note: For each step, I can cite where I found it if desired) > > [The next four are just general info, not specific to this build] > [Installed VS Code on my RPi 4 - 8GB if relevant] > [Changed "disable-hardware-acceleration": true] > [Git clone: https://github.com/networkupstools/nut/] > [Installed a bunch of VS Code plugins/addins/whatevers] > > [Installed desired-feature prerequisites:] [Note: I did the "configure" > step repeatedly, looked at errors, and then "apt-get install" for needed > items, so I did run it several times...] > apt-get install ccache time git python perl curl make autoconf automake > libltdl-dev libtool valgrind cppcheck pkg-config gcc g++ clan libtool-bin > libxml2-utils xsltproc asciidoc libusb-1.0-0-dev libusb-dev libsystemd-dev > python3-systemd > ./autogen.sh > ./configure > ./configure --enable-dependency-tracking --enable-strip --with-nutconf > --with-usb --with-nut-monitor --with-nut-scanner --with-libsystemd > --with-doc --enable-strip --with-ssl=NO --with-openssl=NO --with-user=ups > --with-group=nut > [Do I also need: "--enable-inplace-runtime"?] > make DESTDIR=/tmp/package install > make DESTDIR=/tmp/package install-conf > [Not sure if needed for Package system, but I did:] mkdir -p > /var/state/ups; chmod 0770 /var/state/ups; chown root:nut /var/state/ups > make all; make; make check; make spellcheck > [Then, since I realized that might not be sufficient for packaging, redid > as follows:] > make all; make DESTDIR=/tmp/package install; make DESTDIR=/tmp/package > install-conf; cd conf; make DESTDIR=/tmp/package install; make > DESTDIR=/tmp/package install-conf ; make install; cd ..; make; make check > && make spellcheck > [Then tar -compress- it up to move to my desired "run" system] > > [Then, of course tar -expand- on run system] > [On the run system]: > useradd ups; groupadd nut > [Also added user "ups" to group "nut":] usermod -a -G nut ups] > > > mkdir -p /var/state/ups > chmod 0770 /var/state/ups > chown root:nut /var/state/ups > > [Copied man pages and reindexed, though not relevant here] > > [Then copied / linked from my tar folder as follows] > cp bin/* /bin > ln -s /usr/local/ups/etc /etc/nut > md /lib/ups; cp lib/* /lib/ups/ > cp libexec/* /usr/libexec > cp sbin /sbin/ > ln -s /usr/local/ups/lib /lib/ups > > [Configuration details...] > > [Why reinvent the wheel and risk a problem?] > nut-scanner -qUN > /etc/nut/ups.conf > > [Configuration of /etc/nut/ups.conf becomes:] > [nutdev-usb1] > driver = "usbhid-ups" > port = "auto" > vendorid = "0764" > productid = "0501" > product = "SL Series" > vendor = "CPS" > # bus = "001" > # device = "049" > # busport = "003" > > [Configuration of /etc/nut/nut.conf:] > #MODE=netserver #2024-02-18 - too ambitious to start > MODE=standalone #2024-02-18 > ALLOW_NODEVICE=true #2024-02-18 > export ALLOW_NO_DEVICE #2024-02-18 > ALLOW_NOT_ALL_LISTENERS=true #2024-02-18 > export ALLOW_NOT_ALL_LISTENERS #2024-02-18 > [All seemed to be defaults in the .sample] > > > [Configuration of /etc/nut/upsd.conf:] > MAXAGE 15 > TRACKINGDELAY 3600 > ALLOW_NO_DEVICE true > ALLOW_NOT_ALL_LISTENERS true > STATEPATH /var/run/nut > LISTEN 127.0.0.1 3493 > [All but the last seemed to be defaults in the .sample] > > [Configuration of /etc/nut/upsd.users:] > [admin] > password = testpass > actions = SET > instcmds = ALL > [actions and instcmds seemed to be admin examples in the .sample] > > > > [Configuration of /etc/nut/upsmon.conf:] > RUN_AS_USER ups > MONITOR nutdev-usb1@localhost 1 admin testpass primary > # MONITOR usbhid-ups@localhost 1 admin testpass primary > MINSUPPLIES 1 > SHUTDOWNCMD "/sbin/shutdown -h +0" > POLLFREQ 5 > POLLFREQALERT 5 > HOSTSYNC 15 > DEADTIME 15 > POWERDOWNFLAG "/etc/killpower" > OFFDURATION 30 > RBWARNTIME 43200 > NOCOMMWARNTIME 300 > FINALDELAY 5 > [All but the first two seemed to be defaults in the .sample] > > /usr/libexec/nut-driver-enumerator.sh --daemon > usbhid-ups -B -c reload-or-error > > [Creating the services - not sure how to autoconfigure these; From < > https://networkupstools.org/docs/user-manual.chunked/ar01s05.html>] > > systemd-tmpfiles --create > systemctl enable nut.target nut-driver.target \ > nut-monitor nut-server nut-driver-enumerator.path \ > nut-driver-enumerator.service > { sudo systemctl restart udev || true ; } && \ > sudo systemctl restart nut-driver-enumerator.service \ > nut-monitor nut-server > > upsdrvsvcctl resync > <<Results...>> > Service instance 'nut-driver@nutdev.service' did not have a device > recorded into properties, setting to 'nutdev' > OK > Mon 19 Feb 2024 02:22:13 AM UTC : OK: No changes to reconcile between > systemd service instances and device configurations in > '/usr/local/ups/etc/ups.conf' > <<Question: When I run this multiple times, the result is identical, > shouldn't the first line NOT repeat???>> > > [I try..] > upsdrvctl -D -d -B start > <<Results...>> > Network UPS Tools - UPS driver controller 2.8.1-774-g963abbd87 > 0.000000 [D1] upsdrvctl commanding all drivers (1 found): (null) > 0.000050 [D1] Starting UPS: nutdev > Network UPS Tools - Generic HID driver 0.52 (2.8.1-774-g963abbd87) > USB communication driver (libusb 1.0) 0.46 > 0.019078 Driver failed to start (exit status=1) > 0.019218 [D1] upsdrvctl: got some errors with preceding operations, > exiting with failure now > 0.019298 [D1] Completed the job of upsdrvctl tool, cleaning up and > exiting now > 0.019322 [D1] Completed the job of upsdrvctl tool, clean-up finished, > exiting now > <<The driver fails to start... how do I fix that? >> > > systemctl daemon-reload > <<no output/errors> > > [[Ran this once...]] > upsdrvsvcctl reconfigure > <<Results...>> > Dropping old systemd service instance for power device [nutdev] to > reconfigure the service unit... > Removing instance: 'nut-driver@nutdev' ... > Error reading the list of systemd service instances for UPS drivers, or > none are defined - after dropping > Adding new systemd service instance for power device [nutdev]... > Created symlink > /etc/systemd/system/nut-driver.target.wants/nut-driver@nutdev.service → > /lib/systemd/system/nut-driver@nutdev.service. > Enabled instance: 'nut-driver@nutdev' for NUT configuration section > 'nutdev' > Adding 'Wants'+After dependency for 'nutdev' on 'systemd-udev.service > systemd-udev-settle.service'... > OK > OK > OK > Started instance: 'nut-driver@nutdev' for NUT configuration section > 'nutdev' > OK > === The currently defined service instances are: > nutdev > === The currently defined configurations in '/usr/local/ups/etc/ups.conf' > are: > nutdev > Reloading or restarting NUT data server to make sure it knows new > configuration... > Mon 19 Feb 2024 03:06:21 AM UTC : OK: No more changes to reconcile between > systemd service instances and device configurations in > '/usr/local/ups/etc/ups.conf' > << The "Error" - Is this an issue? If so, how do I diagnose? >> > > [Ran it again...] > upsdrvsvcctl reconfigure > <<Results...> > Dropping old systemd service instance for power device [nutdev] to > reconfigure the service unit... > Removing instance: 'nut-driver@nutdev' ... > Removed > /etc/systemd/system/nut-driver.target.wants/nut-driver@nutdev.service. > Failed to reset failed state of unit nut-driver@nutdev.service: Unit > nut-driver@nutdev.service not loaded. > Error reading the list of systemd service instances for UPS drivers, or > none are defined - after dropping > Adding new systemd service instance for power device [nutdev]... > Created symlink > /etc/systemd/system/nut-driver.target.wants/nut-driver@nutdev.service → > /lib/systemd/system/nut-driver@nutdev.service. > Enabled instance: 'nut-driver@nutdev' for NUT configuration section > 'nutdev' > Adding 'Wants'+After dependency for 'nutdev' on 'systemd-udev.service > systemd-udev-settle.service'... > OK > OK > OK > Started instance: 'nut-driver@nutdev' for NUT configuration section > 'nutdev' > OK > === The currently defined service instances are: > nutdev > === The currently defined configurations in '/usr/local/ups/etc/ups.conf' > are: > nutdev > Reloading or restarting NUT data server to make sure it knows new > configuration... > (timestamp purged) OK: No more changes to reconcile between systemd > service instances and device configurations in '/usr/local/ups/etc/ups.conf' > <<Again, how do I diagnose/resolve "Failed" and "Error"?>> > > > [Tried from some random page] > systemctl start nut-driver-enumerator.service > [no response - assume good] > > [More diagnostic tries and errors...] > upsdrvctl start > [First time saw a few errors in journalctl so fixed them and retried > all...] > md /var/run/nut #not sure why this was not created > chmod o-rwx /etc/upsd.conf #so not world readable > [Then reran] > upsdrvctl start > <<Response...>> > Network UPS Tools - UPS driver controller 2.8.1-774-g963abbd87 > Network UPS Tools - Generic HID driver 0.52 (2.8.1-774-g963abbd87) > USB communication driver (libusb 1.0) 0.46 > Driver failed to start (exit status=1) > > journalctl -xe > <<Results... x is the PID and I strripped before "usbhid-ups">> > usbhid-ups[x]: No matching HID UPS found > usbhid-ups[x]: [D5] send_to_all: SETINFO driver.state "cleanup.exit" > usbhid-ups[x]: upsnotify: notify about state 4 with libsystemd: was > requested, but not running as a service unit now, will not spam more about > it > usbhid-ups[x]: upsnotify: failed to notify about state 4: no notification > tech defined, will not spam more about it > > [I then repeated from upsdrvsvcctl reconfigure but no difference] > > [Also I tried...] > upsdrvctl start "nutdev-usb1" > <<Results...>> > Network UPS Tools - UPS driver controller 2.8.1-774-g963abbd87 > UPS nutdev-usb1 not found in ups.conf > <<...which doesn't make sense to me since, again, here's my ups.conf...>> > [nutdev-usb1] > driver = "usbhid-ups" > port = "auto" > vendorid = "0764" > productid = "0501" > product = "SL Series" > vendor = "CPS" > # bus = "001" > # device = "049" > # busport = "003" > > #### > > Okay, how can I further diagnose or change anything or do anything > different? > > Thank you (both for making it this far and for any ideas)! > > > _______________________________________________ > Nut-upsuser mailing list > Nut-upsuser@alioth-lists.debian.net > https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser >
_______________________________________________ Nut-upsuser mailing list Nut-upsuser@alioth-lists.debian.net https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser