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 nutwill 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

Navigation

Personal Tools