Linux and UPS - BBox LP 500VA
I bought myself a UPS for my home server. It is a BBox LP 500VA (Model no: R-MIC-320-P201800A). I have just successfully made it work with my CentOS 5 Linux and I would like to share how I made it work as this is trivial.
The setup should do two things when working properly.
- Supply power when power is lost.
- Shut down the operating system gracefully after a certain period of time.
Getting no. 1 to work really needs no explanation.
As to getting the operating system - CentOS 5 Liunx in my case - to shut down gracefully has taken me quite some time. Including lots of help from Digitest, a German (English speaking) IT company that handles first line support for the product.
I first got hold of some Linux Server software off the public website. Forget that - It didn't work for me.
Then I got a different package from the support. The package is available for download from my website here: Downloads.
Here are the steps that I walk through to make the software work in my system.
You will run several "make" commands. Some of those will report errors - but that is not necessarily a problem; it wasn't on my system.
Make sure that you have a folder /usr/man/man8.
tar -xvf upseye.0.4.1.tar.gz
go to directory containing program sources:
cd upsd-2.0b1a
clear all intermediate files:
make clean
create dependence file:
make depend
create upsd application:
make
copy application to system directory:
make install
install daemon scripts:
make system
Now have a look in /etc/rc.d/rc5.d (if your server is running in graphical mode -rc3.d if not).
There is a file called S93ups there. That is the script that will run when your server boots.
Make sure that this script has the execute flag. I think that it doesn't by default.
Now edit this script. There is a line that reads
daemon upsd /dev/SOMETHING
make sure that you change SOMETHING to the name of your serial port.
In my instance that was
daemon upsd /dev/ttyS0
save it.
Make sure that the UPS is connected to the server using the serial cable.
Now run the script manually from a terminal:
/etc/rc.d/rc5.d/S93ups start
Have a look in your system log file. /var/log/messages now should contain something like this:
Aug 11 14:10:00 server upsd: main: v2.0b1 startup complete.
That means that the software started OK.
Now try and unplug the UPS - to make the server run on the battery.
Within 20 seconds the following should display in the log:
Aug 11 14:11:00 server upsd: log: ON BATTERY
This means that the software detected the change and is now scheduled to close down.
Now plug in the UPS again.
You should see this:
Aug 11 14:11:30 server upsd: log: OK
The software detected that we've got power again and the shutdown has been cancelled.
Finally have a look at /etc/inittab. Find the line that contains something like this:
pf::powerfail:/sbin/shutdown -f -h -+2 "Power failure; System Shutting Down"
That's the line that gets executed when the software detects that we're running on battery.
The line tells the server to schedule a shutdown in two minutes. I changed that value to +15; I expect the battery to last 15 minutes at least.
Update:
On the Microdowell website { Link } there is now a solution available that is a lot easier. You can download something called PowerPanel. Very easy to install. No compiling, runs out of the box.