-
-
Notifications
You must be signed in to change notification settings - Fork 376
No FSD when using driver apcupsd-ups #460
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Created a pull request (#461) which should fix this. |
jimklimov
pushed a commit
to jimklimov/nut
that referenced
this issue
Aug 25, 2017
Fix issue networkupstools#460 so NUT with apcupsd-ups driver will correctly initiate a shut down on low battery. Bump version to 0.5 Closes: networkupstools#460 Closes: networkupstools#461
aquette
pushed a commit
that referenced
this issue
Aug 25, 2017
* gitlog2changelog: Date header only occurs at start of line Alternative to #427 * gitlog2changelog: log parse errors for Author and Date Suggested by Jim Klimov. * configure.ac : move comment to a more relevant line * docs/man/Makefile.am : small typo in comment * configure.ac : refer to detailed doc from --with-doc help text; preset explicit nut_with_doc=man=auto value * m4/nut_check_asciidoc.m4 configure.ac : parametrize the required minimum versions (asciidoc/a2x, dblatex) * configure.ac docs/man/Makefile.am : track DOC_INSTALL_DISTED_MANS fallback behavior * docs/man/Makefile.am : do not rebuild docs and do not error out if a prebuilt copy is among sources (not only in builddir as before) * docs/Makefile.am : make sure the builddir copy of docbook-xsl.css is writeable (file is copied from OS, some distros have it 444 and not 644) * docs/man/Makefile.am : Fix up manpage source timestamps when dist-ing * docs/man/Makefile.am : Fix up dist-ed manpage source timestamps regardless of DOC_INSTALL_DISTED_MANS value * docs/man/Makefile.am : Suffice to have prebuilt docs in dist-ed sources only if DOC_INSTALL_DISTED_MANS is enabled * usbhid-ups: only check iOEMInformation once for openups2 This prevents the 'libusb_get_string: invalid argument' message from being logged continously. Patch provided by Alphonse <[email protected]> http://lists.alioth.debian.org/pipermail/nut-upsdev/2017-July/007314.html * snmp-ups: Introduce values lookup functions As already used in other drivers, such as usbhid-ups, introduce optional values lookup functions, beside from values lookup mapping. This allows to have a more powerful and generic values processing before publication Signed-off-by: Arnaud Quette <[email protected]> * CPS HID: add input.frequency and output.frequency (0.5) Suggested by Andy Jan: http://lists.alioth.debian.org/pipermail/nut-upsuser/2017-August/010856.html * snmp-ups: Fix the phase of outlet groups for Eaton PDU Compute the phase to which an outlet group is connected WRT the total number of phase(s) and the considered outlet group number. Signed-off-by: Arnaud Quette <[email protected]> * Extend namespace for iPDU and outlets Extend NUT namespace to also publish the name of an outlet, using "outlet.n.name", beside from the existing "outlet.n.desc" Signed-off-by: Arnaud Quette <[email protected]> * snmp-ups: Publish outlet.n.name for Eaton ePDU Signed-off-by: Arnaud Quette <[email protected]> * NUT namespace: fix an extraneous character insertion A character was wrongly inserted during the previous commit, triggering a spellcheck error Signed-off-by: Arnaud Quette <[email protected]> * Remove exec bits on SNMP subdrivers Signed-off-by: Arnaud Quette <[email protected]> * apcupsd-ups: interpret "SHUTTING DOWN" as "LB" Fix issue #460 so NUT with apcupsd-ups driver will correctly initiate a shut down on low battery. Bump version to 0.5 Closes: #460 Closes: #461 * snmp-ups: fix the rounding / truncation of some values The multiplier system of the snmp-ups driver resulted in some values being rounded to the nearby integer value, thus causing a loss of the decimals and the value precision in general. This was mainly visible on the value of currents, but also on some voltages Signed-off-by: Arnaud Quette <[email protected]> * snmp-subdrivers.txt : reference the multitude of eaton subdrivers * eaton-mib.h renamed into separate constituent headers * eaton-mib.c renamed into separate constituent sources, earlier history retained in eaton-pdu-genesis2-mib.c * Re-merged drivers/eaton-mib.c from upstream/master and regenerated DMF * eaton-pdu-revelation-mib.c eaton-pdu-pulizzi-mib.c eaton-pdu-genesis2-mib.c : no use to include dstate.h here * eaton-pdu-marlin-mib.c eaton-pdu-revelation-mib.c : port the renamed structure names from original eaton-mib.c evolution * Integrate recent upstream changes into DMF * WIP remerge DMF to master so it can compile * Eaton ePDU SNMP MIB file split in four (#465) * snmp-subdrivers.txt : reference the multitude of eaton subdrivers * eaton-mib.h renamed into separate constituent headers * eaton-mib.c renamed into separate constituent sources, earlier history retained in eaton-pdu-genesis2-mib.c * eaton-pdu-revelation-mib.c eaton-pdu-pulizzi-mib.c eaton-pdu-genesis2-mib.c : no use to include dstate.h here * eaton-pdu-marlin-mib.c eaton-pdu-revelation-mib.c : port the renamed structure names from original eaton-mib.c evolution * automake: only pass net-snmp cflags to snmp-ups (#464) Other than formerly assumed in the makefile cflags can be more than includes. And some of them need to be in sync in regard to CFLAGS and LDFLAGS - for example usage of -fPIE. This conflicts with a current assumption in the makefile "In any case, CFLAGS are only -I options, so there is no harm". On a Distribution where PIE is enabled by default, but disabled for special cases (like net-snmp) the configure detection gets them as: LIBNETSNMP_CFLAGS = -DNETSNMP_ENABLE_IPV6 -fno-strict-aliasing -g -O2 -fdebug-prefix-map=/build/net-snmp-nlMQSZ/net-snmp-5.7.3+dfsg=. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -DNETSNMP_USE_INLINE -Ulinux -Dlinux=linux -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib/x86_64-linux-gnu/perl/5.26/CORE -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include LIBNETSNMP_LIBS = -Wl,-Bsymbolic-functions -specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now -L/usr/lib/x86_64-linux-gnu -lnetsnmp -lcrypto -lm Of importance are: -specs=/usr/share/dpkg/no-pie-compile.specs -specs=/usr/share/dpkg/no-pie-link.specs Now when compiling the non-snmp objects incorrectly get the "-specs=/usr/share/dpkg/no-pie-compile.specs" due to the assumption that it is safe to add up all CFLAGS to the global one. LDFLAGS imported that way are only added to snmp. snmp_ups_LDADD = $(LDADD_DRIVERS) $(LIBNETSNMP_LIBS) [...] snmp-ups$(EXEEXT): $(snmp_ups_OBJECTS) $(snmp_ups_DEPENDENCIES) $(EXTRA_snmp_ups_DEPENDENCIES) @rm -f snmp-ups$(EXEEXT) $(AM_V_CCLD)$(LINK) $(snmp_ups_OBJECTS) $(snmp_ups_LDADD) $(LIBS) That leads to other (all non snmp_ups) objects in drivers failing to build. They get the no-pie-compile.specs (incorrect) spec but not the no-pie-link.specs on the link step. Some other parts like mge_shut and nutdrv_qx already have custom CFLAGS/LDFLAGS that are not added to the global CFLAGS. So despite the commend in the makefile this doesn't seem to be new in general to nut. I don't want to mess too much with your build system for now as I don't know many of its implications. So I chose not the full drop of that global CFLAGS merge, but a minimal patch for now which fixes the issue described. Thereby closes #463 Signed-off-by: Christian Ehrhardt <[email protected]> * snmp-ups: add support for input.phase.shift (#433) * snmp-ups: add support for input.phase.shift ATS can now publish the electrical dephasing between input sources Signed-off-by: Arnaud Quette <[email protected]> * Make spellchecker happy about "dephasing" * Expel the helper function that interacts with dstate from eaton-pdu-marlin-mib.c to eaton-pdu-marlin-helpers.c/.h * eaton-pdu-marlin-helpers.c : update comments for marlin_outlet_group_phase_fun() * snmp-ups / eaton-marlin : introduce WITH_SNMP_LKP_FUN to separate codebases that support these callbacks from those that currently do not * eaton-marlin : cosmetic whitespace fixes * snmp-ups : update copyrights from Eaton staffers * eaton-ats16-mib.dmf : updated to include phase.shift from new C MIB mapping * dstate.h : use our timehead.h to have "struct timeval" defined * eaton-pdu-marlin-helpers.c/h fix * snmp-ups / eaton-marlin : introduce WITH_SNMP_LKP_FUN to separate codebases that support these callbacks from those that currently do not * drivers/Makefile.am : adapt to solution of #464 / #463 * scripts/DMF/Makefile.am : use WITH_DMFMIB to trigger WITH_SNMP_LKP_FUN in snmp-ups codebase, in particular * scripts/DMF/Makefile.am : rearrange long line for readability * scripts/DMF/Makefile.am : revert the magic with dstate.o in DMF selftests * jsonify-mib.py : pass LDFLAGS after the output and original source file * Add newly reorganized and generated eaton-pdu-*-mib.dmf files to SCM * drivers/Makefile.am : adapt to solution of #464 / #463 * drivers/Makefile.am : adapt to solution of #464 / #463 * drivers/Makefile.am : cosmetic fix in DMF branch * scripts/DMF/dmf-test.c : introduce and comment WITH_SNMP_LKP_FUN to separate codebases that support these callbacks from those that currently do not * configure.ac : make sure to remove temp dir from dmfify tests
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When using the driver apcupsd-ups then the shutdown condition is configured in /etc/apcupsd/apcupsd.conf (BATTERYLEVEL & MINUTES = remaining battery percentage & runtime when shutdown will be initiated).
Then the shutdown has to be disabled in apcupsd or just this one machine with apcupsd will get shut down without informing others via nut. This can be done for example by editing /etc/apcupsd/apccontrol and change "${SHUTDOWN} -h" to "${SHUTDOWN} -k".
Now nut should be usable with the apcupsd-ups-driver. But nut will never initiate a shutdown (FSD), because apcupsd changes the ups-status from "ONBATT" to "SHUTTING DOWN" when it's working on battery and the battery (or runtime) is below the limits, while nut interprets "SHUTTING DOWN" in the same way as a loss in connection.
This is wrong. "SHUTTING DOWN" should be the same as "LOWBATT". I will post a fix shortly.
The text was updated successfully, but these errors were encountered: