104 lines
4.1 KiB
Plaintext
104 lines
4.1 KiB
Plaintext
$OpenBSD: README-main,v 1.11 2021/02/11 16:17:57 sthen Exp $
|
|
|
|
+-----------------------------------------------------------------------
|
|
| Running ${PKGSTEM} on OpenBSD
|
|
+-----------------------------------------------------------------------
|
|
|
|
NUT is split into separate components. A hardware driver interfaces
|
|
with the device and sends information to upsd. A monitor (upsmon)
|
|
connects to upsd and shuts down the machine when necessary.
|
|
|
|
These components can reside on separate computers (i.e. UPS monitored
|
|
by various computers may communicate with a central upsd, and a whole
|
|
network may run upsmon to allow for shutdown).
|
|
|
|
On OpenBSD, daemons from packages are usually started by adding to the
|
|
pkg_scripts line in /etc/rc.conf.local. For NUT, machines running
|
|
upsd or the hardware driver should include "upsd" in this line, and all
|
|
machines should include "upsmon". Where you run both, upsd should
|
|
be started first. For example you could use this line:
|
|
|
|
pkg_scripts=upsd upsmon [...any other daemons...]
|
|
|
|
Network devices
|
|
---------------
|
|
To reduce dependencies for the basic NUT package, some network devices
|
|
are supported by optional subpackages: nut-snmp (for SNMP-based devices),
|
|
nut-xml (for Eaton/MGE devices using an XML/HTTP protocol).
|
|
|
|
Connecting to a remote server running nutd(8) requires only the basic
|
|
NUT package which also includes the file you are reading now.
|
|
|
|
Configuring NUT
|
|
---------------
|
|
The following files must be edited for a typical installation.
|
|
|
|
* ups.conf
|
|
|
|
Details of UPS device/s are held here. These may either be directly
|
|
connected, or network devices (this can include a NUT server running on
|
|
another machine). Configuration sections for this file can be generated
|
|
for network and USB devices using nut-scanner(8). This is in the main
|
|
NUT package but picks up dependencies at runtime, so if you wish
|
|
to scan for network devices, just make sure the relevant package
|
|
is installed before you run the scanner.
|
|
|
|
To scan for network devices, specify start and end IP addresses:
|
|
|
|
# nut-scanner -s 192.168.17.1 -e 192.168.17.20
|
|
|
|
* upsd.users
|
|
|
|
upsd(8) user authentication is configured here.
|
|
|
|
* upsmon.conf
|
|
|
|
This file informs upsmon(8) which devices (configured in ups.conf) it
|
|
should monitor. It also contains passwords to authenticate to upsd(8).
|
|
|
|
Device permissions
|
|
------------------
|
|
For locally connected UPS devices, the userid running NUT (normally
|
|
_ups) must have access to the relevant device nodes.
|
|
|
|
RS232: Either add _ups to group "dialer" or change the group ownership
|
|
of the relevant /dev/tty* device to _ups.
|
|
|
|
USB: Use "usbdevs -vd" (as root) to identify the specific controller
|
|
(/dev/usbXX) and ugen (/dev/ugenXX) device nodes, then adjust permissions
|
|
to allow _ups to have write access (e.g. chmod g+w and chgrp _ups).
|
|
|
|
Special notice for APC USB devices
|
|
----------------------------------
|
|
Some APC USB devices are reported to only work with NUT if the device is
|
|
attached to ugen(4). Normally these devices attach to upd(4) to provide
|
|
system power sensors (see "sysctl hw.sensors"). If you are having problems
|
|
using such a device with NUT, you may need to prevent this attachment.
|
|
|
|
The option with fewest side-effects is to add the following entries to
|
|
the table in /sys/dev/usb/usb_quirks.c and build a new kernel:
|
|
|
|
{ USB_VENDOR_APC, USB_PRODUCT_APC_UPS, ANY, { UQ_BAD_HID }},
|
|
{ USB_VENDOR_APC, USB_PRODUCT_APC_UPS5G, ANY, { UQ_BAD_HID }},
|
|
|
|
Alternatively, if you do not use a USB keyboard/mouse, you could simply
|
|
disable the upd and uhidev drivers. The following line creates a new kernel
|
|
with the relevant changes:
|
|
|
|
printf 'disable uhidev\ndisable upd\nquit\n' | config -e -o /bsd.no-uhid /bsd
|
|
|
|
Starting the daemons
|
|
--------------------
|
|
To start the daemons without rebooting you can use:
|
|
|
|
# ${RCDIR}/upsd start
|
|
# ${RCDIR}/upsmon start
|
|
|
|
NUT documentation refers to a nut.conf file; this can be ignored, it is
|
|
only used with their System V init scripts, and not OpenBSD's rc scripts.
|
|
|
|
It is recommended that you test a full cycle of rebooting, checking
|
|
that the daemons are running correctly ("upsc <upsname>" will display
|
|
information retrieved by NUT from the UPS), allowing the machine
|
|
to be shut down by the UPS, and returning power.
|