This is an old revision of the document!
NUT (Network UPS Tool)
Based on information found on the Network UPS Tool website (http://networkupstools.org/doc/2.2.0/INSTALL.html), these installation instructions were written for Fun_Plug 0.5 and fonz's Network UPS Tools (NUT) version 2.2.2. (http://www.inreto.de/dns323/fun-plug/0.5/packages/)
Getting Started
What's Needed
Successful installation of NUT requires three packages from fonz's website (http://www.inreto.de/dns323/fun-plug/0.5/packages/). They are;
- libusb-0.1.12-1.tgz;
- neon-0.25.5-1.tgz and;
- nut-2.2.2-2.tgz
How To Get The Packages
Using wget, obtain the three packages identified above and store them in an appropriate directory on your DNS323. The directory I selected to save these files in is named /mnt/HD_a2/Downloads/D-Link/Fun_Plug/NUT.
Using the directory of your choice, obtain and save the files to your DNS323 by following these commands;
cd /mnt/HD_a2/Downloads/D-Link/Fun_Plug/NUT
wget http://www.inreto.de/dns323/fun-plug/0.5/packages/neon-0.25.5-1.tgz wget http://www.inreto.de/dns323/fun-plug/0.5/packages/libusb-0.1.12-1.tgz wget http://www.inreto.de/dns323/fun-plug/0.5/packages/nut-2.2.2-2.tgz
Be sure to replace /mnt/HD_a2/Downloads/D-Link/Fun_Plug/NUT with the name of the directory you saved the files to.
How To Install The Packages
The three packages are installed to the appropriate fun_plug directories using the following commands;
funpkg -i /mnt/HD_a2/Downloads/D-Link/Fun_Plug/NUT/neon-0.25.5-1.tgz funpkg -i /mnt/HD_a2/Downloads/D-Link/Fun_Plug/NUT/libusb-0.1.12-1.tgz funpkg -i /mnt/HD_a2/Downloads/D-Link/Fun_Plug/NUT/nut-2.2.2-2.tgz
Be sure to replace /mnt/HD_a2/Downloads/D-Link/Fun_Plug/NUT with the name of the directory you saved the files to.
Prepare The UPS Driver Environment
Once the packages are downloaded and installed the NUT environment will need to be configured before you'll be able to access and control your UPS. Or should I say your UPS will be able to control your DNS323! Instruction found at the Network UPS Tool website (http://networkupstools.org/doc/2.2.0/INSTALL.html) advises creation of a Group and several users. Creating such allows one to establish a higher level of security on the configuration files.
Create User Group
For the purposes of this exercise a group named nut
will be added. At the prompt enter the following command;
groupadd nut
Create User
For the purposes of this exercise a user named ups
will be created and added to the group named nut
. The user is created and added to the existing group by entering the following command;
adduser -s /bin/false -G nut -H ups
The system will respond with:
Changing password for ''ups'' Enter the new password (minimum of 5, maximum of 8 characters) Please use a combination of upper and lower case letters and numbers.
Selected a password for ups
then enter it at the New password: and again at the Re-enter new password: prompts.
Create ups.conf file
During NUT installation sample configuration files were copied to the /ffp/etc directory. These files are identifiable by their .sample
suffix. During this step of the configuration process a ups.conf file will be created from the ups.conf.sample. This is achieved by copying the sample ups configuration file to the /ffp/etc directory. The command to do so follows;
cp /ffp/etc/ups.conf.sample /ffp/etc/ups.conf
Increase Security
Change ownership of /ffp/etc/ups.conf
chown root:nut /ffp/etc/ups.conf
Use favourite editor (I use Notepad++) to establish ups.conf settings.
An APC Back-UPS RS 900 is connected to the USB port on my DNS323. Settings for this device would be;
[APC_UPS] driver = usbhid-ups port = USB desc = "Back-UPS RS 900"
A UPS hardware compatibility list is located at http://networkupstools.org/compat/stable.html
Change ownership of /ffp/var/state/ups directory
chmod 0770 /ffp/var/state/ups chown root:nut /ffp/var/state/ups
—– Startup —–
Start the driver for your hardware.
# /ffp/bin/upsdrvctl -t -u ups start
Make sure the driver doesn't report any errors. It should show a few details about the hardware and then enter the background. You should get back to the command prompt a few seconds later. For reference, a successful start of the usbhid-ups driver looks like this:
Network UPS Tools - UPS driver controller 2.2.2 Network UPS Tools: 0.29 USB communication driver - core 0.33 (2.2.2) Using subdriver: APC HID 0.92
If the driver doesn't start cleanly, make sure you have picked the right one for your hardware. You might need to try other drivers by changing the “driver=” value in ups.conf.
Be sure to check the driver's man page to see if it needs any extra settings in ups.conf to detect your hardware.
If it says “can't bind /var/state/ups/…” or similar, then your state path probably isn't writable by the driver. Check the permissions and mode on that directory.
—– Configuration Process —–
Basic configuration of upsd requires copying the sample configuration file to the /ffp/etc directory.
cp /ffp/etc/upsd.conf.sample /ffp/etc/upsd.conf
Configuring a specific host requires modification of the upsd.conf file. For example, to add a host named DNS323_NAS on IP 192.168.1.50 the following lines need to be added to the upsd.conf file;
ACL DNS323_NAS 192.168.1.50/32
ACCEPT DNS323_NAS
Copy sample user configuration file to the /ffp/etc directory.
cp /ffp/etc/upsd.users.sample /ffp/etc/upsd.users
Use favourite editor (I use Notepad++) to establish upsd.users settings.
[ups] password = allowfrom = localhost DNS323_NAS actions = SET instcmds = ALL
Do not make either of the upsd files (upsd.conf or upsd.users) world-readable. Since they both hold access control data and passwords they just need to be readable by the user you created in the preparation process.
The suggested configuration is to chown it to root, chgrp it to the group you created, then make it readable by the group.
cd /ffp/etc chown root:nut upsd.conf upsd.users chmod 0640 upsd.conf upsd.users
Start the network server.
# /ffp/sbin/upsd -u ups
(To stop the network server use /ffp/sbin/upsd -u ups -c stop)
Make sure that the UPS is providing good status data.
# /ffp/bin/upsc APC_UPS@localhost ups.status or
Look at all of the status data which is being monitored.
/ffp/bin/upsc APC_UPS@localhost
What happens now depends on the kind of UPS and driver you have.In the list, you should see ups.status with the same value you got above. A sample run on an APC Back-UPS RS 900 looks like this:
battery.charge: 100 battery.charge.low: 10 battery.charge.warning: 50 battery.date: 2001/09/25 battery.mfr.date: 2008/06/05 battery.runtime: 2025 battery.runtime.low: 120 battery.temperature: 3022999999999998800 battery.type: PbAc battery.voltage: 27.8 battery.voltage.nominal: 24.0 driver.name: usbhid-ups driver.parameter.pollfreq: 30 driver.parameter.pollinterval: 2 driver.parameter.port: auto driver.version: 2.2.2 driver.version.data: APC HID 0.92 driver.version.internal: 0.33 input.voltage: 122.0 input.voltage.nominal: 120 output.voltage: 120.0 output.voltage.nominal: 120.0 ups.beeper.status: enabled ups.delay.shutdown: 20 ups.delay.start: 30 ups.firmware: 9.o2 .D ups.firmware.aux: o2 ups.load: 229999999999999940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ups.mfr: American Power Conversion ups.mfr.date: 2007/10/24 ups.model: Back-UPS RS 900 ups.productid: 0002 ups.serial: 5B0743U08220 ups.status: OL ups.test.result: No test initiated ups.timer.reboot: 0 ups.timer.shutdown: -1 ups.vendorid: 051d
—– Configure Monitor —–
Create user and add to existing group. For the purposes of this exercise the user will be named nutmon
adduser -s /bin/false -G nut -H -D nutmon
Create a user for the monitor
adduser -s /bin/false -G nut -H monuser
The system will respond with:
Changing password for monuser Enter the new password (minimum of 5, maximum of 8 characters) Please use a combination of upper and lower case letters and numbers.
Selected a password for ups then enter it at the New password: and Re-enter new password: prompts.
Copy sample monitor configuration file to the /ffp/etc directory.
cp /ffp/etc/upsmon.conf.sample /ffp/etc/upsmon.conf
Use favourite editor (I use Notepad++) to establish upsmon.conf settings.
Do not make the upsmon.conf files world-readable. Since this file holds access control data and passwords it just needs to be readable by the user you created in the preparation process.
The suggested configuration is to chown it to root, chgrp it to the group you created, then make it readable by the group.
chmod 0640 upsmon.conf chown root:nut upsmon.conf
Configure upsd to recognize upsmon.
First create an ACL in upsd.conf for the host that will be running upsmon. Then use it in an ACCEPT line to allow that host to monitor the UPS. This will let upsmon connect to upsd.
Assuming a host called DNS323_NAS with the IP address of 192.168.1.50, the additional configuration items would look like this:
ACL mybox 192.168.1.50/32 ACCEPT DNS323_NAS
Start the upsmon monitor.
# /ffp/sbin/upsmon -u monuser
—– Installing WinNUT —–
Create a user for WinNUT Monitoring Tool
adduser -s /bin/false -G nut -H winnmonuser
The system will respond with:
Changing password for winnmonuser Enter the new password (minimum of 5, maximum of 8 characters) Please use a combination of upper and lower case letters and numbers.
Selected a password for ups then enter it at the New password: and Re-enter new password: prompts.
Preserving Passwords
Each time the DNS323 is booted key files are copied from NVRAM to the /etc directory. When this occurs information pertaining to those Groups and Users added as shown above will be lost. Loss can be prevented by writing group and user information to NVRAM using the store-passwd.sh script.
store-passwd.sh