Basically, all you need is a working powerd binary, usually
found in /sbin/powerd. This is usually part of the SysVinit
package. As far as I know, all current Linux distributions include a
recent version of SysVinit. Very old versions didn't include
The only problem you might have is that your cable might not match how
powerd is set up, in which case you'll have to either rewire your
cable, or pick up a copy of powerd.c and modify it to work with your
cable. Or, for that matter, you can always pick up one of the
following packages, most of which allow you to configure them to match
As mentioned, an alternative to using the powerd that comes with the
SysVinit package would be to use one of the UPS packages now
available. There are many packages currently available to aid in
setting up computer/ups communications. None of this was available
when I first wrote this Howto, which is why I had to write it. In
fact, there's a good chance that you might be able to use one of these
software packages, and avoid this Howto entirely!
As of 15 March 1997 or so,
Sunsite's UPS directory had quite a few
packages available. Other sites seem to have UPS control packages
available too. Here's what I've found to date (all but two from sunsite):
The .lsm file says that it's formerly the above package,
but it actually includes the above package as a .tar.gz
file inside of this tar.gz file! The documentation is
spotty. It seems to support APC UPSs in both smart mode and dumb
mode, but I can't be sure.
Another package for controlling APC Smart UPSs. Seems to include
some sort of master/slave support (i.e. - one machine signals
others to shut down when the power goes out). Seems to use the UPS
in smart mode, as opposed to via modem signal line toggling.
A replacement for the powerd that comes with the SysVinit package.
As opposed to comments included in the documentation it doesn't
seem to have been merged into the SysVinit package as of version
2.62. Its advantages are that it can act as a server for other
powerds running on other machines (for when you have a network of
machines hanging off a single UPS), and it can be configured by
config file - the source code doesn't have to be edited and
This package is for controlling Best UPSs. It's direct from
Best's web site. Includes binaries for lots of unix flavors,
but more importantly, it includes source code, so you can try it
out under Linux, and if it doesn't work, you can try to fix it.
The source code includes both ``basic checkups'' which controls
the UPS in dumb mode, and ``advanced checkups'' which is a little
more sophisticated - it will signal a shutdown when the UPS says
it has X minutes of power remaining instead of just shutting down
X minutes after the power goes out. The advanced checkups program
also will shut down when the UPS registers various alarms such as
High Ambient Temperature, Near Low Battery, Low AC Out, or User
A package that might very well be on sunsite by the time you read
this. It's a pair of communications module which works with Best
Ferrups UPSs. It operates the UPS in smart mode. It inter-operates
well with powerd-2.0 - useful if you have a big Best Ferrups UPS
keeping up all the machines on a network.
NOTE - This package has yet to be uploaded to Sunsite. I keep
begging the author to finish and upload it, but he has yet to find
It is a very complete package for APC UPSs. There is support for
the entire range of UPSs in their product line. I have now added
smart mode signaling to the package and support with APC's own
cables or a custom cable if you don't have an APC cable that is
supported to date.
A powerd and an X11 graphing utility which shows you the
voltages, frequencies, load percentage and battery level in
realtime. The protocol that the "Safeware" software uses,
and "Tripplite" UPSs are supported. Source + ELF binaries.
usvd is a daemon that monitors the state of an uninterrupted
power supply and reacts upon state changes (line fail,
line back, battery low situations). You can write your
own scripts that are called in these cases. It does *not*
Note that I've only glanced at these packages. I haven't used them.
We were just about to start using
in conjunction with
but we never quite got around to it.