382 lines
11 KiB
Plaintext
382 lines
11 KiB
Plaintext
GENERICUPS(8)
|
|
=============
|
|
|
|
NAME
|
|
----
|
|
genericups - Driver for contact-closure UPS equipment
|
|
|
|
NOTE
|
|
----
|
|
This man page only documents the specific features of the genericups
|
|
driver. For information about the core driver, see linkman:nutupsdrv[8].
|
|
|
|
SUPPORTED HARDWARE
|
|
------------------
|
|
This driver supports hardware from many different manufacturers as it only
|
|
uses the very simplest of signaling schemes. Contact closure refers to a
|
|
kind of interface where basic high/low signals are provided to indicate
|
|
status. This kind of UPS can only report line power and battery status.
|
|
|
|
This means that you will only get the essentials in ups.status: OL, OB,
|
|
and LB. Anything else requires a smarter UPS.
|
|
|
|
CABLING
|
|
-------
|
|
Cabling is different for every kind of UPS. See the table below for
|
|
information on what is known to work with a given UPS type.
|
|
|
|
EXTRA ARGUMENTS
|
|
---------------
|
|
This driver supports the following settings in the linkman:ups.conf[5]:
|
|
|
|
upstype='type'::
|
|
|
|
Required. Configures the driver for a specific kind of UPS. See the
|
|
<<_ups_types,UPS Types>> section below for more information on which entries
|
|
are available.
|
|
|
|
mfr='string'::
|
|
|
|
Optional. The very nature of a generic UPS driver sometimes means that
|
|
the stock manufacturer data has no relation to the actual hardware that is
|
|
attached. With the `mfr` setting, you can change the value that is seen by
|
|
clients that monitor this UPS.
|
|
|
|
model='string'::
|
|
|
|
Optional. This is like `mfr` above, but it overrides the model string
|
|
instead.
|
|
|
|
serial='string'::
|
|
|
|
Optional. This is like `mfr` above and intended to record the identification
|
|
string of the UPS. It is titled "serial" because usually this string is
|
|
referred to as the serial number.
|
|
|
|
sdtime='value'::
|
|
|
|
Optional. The driver will sleep for this many seconds after setting the
|
|
shutdown signal. This is necessary for some hardware which requires a
|
|
sustained level to activate the shutdown sequence.
|
|
+
|
|
The default behavior of the driver is to exit immediately. If this
|
|
doesn't reliably trigger a shutdown in your UPS hardware, use this
|
|
setting to give it more time to react.
|
|
|
|
NOTE: very large values for +sdtime+ may create warnings from upsdrvctl if
|
|
it gets tired of waiting for the driver to return.
|
|
|
|
CUSTOM CONFIGURATIONS
|
|
---------------------
|
|
|
|
You may override the values for CP, OL, LB, and SD by defining them in
|
|
the linkman:ups.conf[5] after the upstype setting.
|
|
|
|
For example, to set the cable power to DTR and the low battery value to
|
|
DCD, it would look like this:
|
|
|
|
CP = DTR
|
|
|
|
LB = DCD
|
|
|
|
Recognized values for input lines are CTS, DCD, and RNG. Recognized
|
|
values for output lines are DTR, RTS, and ST. See below for more about
|
|
what these signals mean.
|
|
|
|
These values may be negated for active low signals. That is, "LB=-DCD"
|
|
recognizes a low battery condition when DCD is not held high.
|
|
|
|
TYPE INFORMATION
|
|
----------------
|
|
The essence of a UPS definition in this driver is how it uses the serial
|
|
lines that are available. These are the abbreviations you will see below:
|
|
|
|
OL:: On line (no power failure) (opposite of OB - on battery)
|
|
|
|
LB:: Low battery
|
|
|
|
SD:: Shutdown load
|
|
|
|
CP:: Cable power (must be present for cable to have valid reading)
|
|
|
|
CTS:: Clear to Send. Received from the UPS.
|
|
|
|
RTS:: Ready to Send. Sent by the PC.
|
|
|
|
DCD:: Data Carrier Detect. Received from the UPS.
|
|
|
|
RNG:: Ring indicate. Received from the UPS.
|
|
|
|
DTR:: Data Terminal Ready. Sent by the PC.
|
|
|
|
ST:: Send a BREAK on the transmit data line
|
|
|
|
A "-" in front of a signal name (like -RNG) means that the indicated
|
|
condition is signaled with an active low signal. For example, [LB=-RNG]
|
|
means the battery is low when the ring indicate line goes low, and that
|
|
the battery is OK when that line is held high.
|
|
|
|
UPS TYPES
|
|
---------
|
|
|
|
0 = UPSonic LAN Saver 600
|
|
|
|
[CP=DTR+RTS] [OL=-CTS] [LB=DCD] [SD=DTR]
|
|
|
|
1 = APC Back-UPS/Back-UPS Pro/Smart-UPS with 940-0095A/C cable
|
|
|
|
[CP=DTR] [OL=-RNG] [LB=DCD] [SD=RTS]
|
|
|
|
2 = APC Back-UPS/Back-UPS Pro/Smart-UPS with 940-0020B cable
|
|
|
|
[CP=RTS] [OL=-CTS] [LB=DCD] [SD=DTR+RTS]
|
|
|
|
Type 2 has also been reported to work with the 940-0020C cable.
|
|
|
|
3 = PowerTech Comp1000 with DTR cable power
|
|
|
|
[CP=DTR] [OL=CTS] [LB=DCD] [SD=DTR+RTS]
|
|
|
|
4 = Generic RUPS Model
|
|
|
|
[CP=RTS] [OL=CTS] [LB=-DCD] [SD=-RTS]
|
|
|
|
5 = Tripp Lite UPS with Lan2.2 interface (black 73-0844 cable)
|
|
|
|
[CP=DTR] [OL=CTS] [LB=-DCD] [SD=DTR+RTS]
|
|
|
|
6 = Best Patriot with INT51 cable
|
|
|
|
[CP=DTR] [OL=CTS] [LB=-DCD] [SD=RTS]
|
|
|
|
7 = CyberPower Power99
|
|
Also Upsonic Power Guardian PG-500, Belkin Belkin Home Office,
|
|
F6H350-SER, F6H500-SER, F6H650-SER
|
|
|
|
[CP=RTS] [OL=CTS] [LB=-DCD] [SD=DTR]
|
|
|
|
8 = Nitram Elite 500
|
|
|
|
[CP=DTR] [OL=CTS] [LB=-DCD] [SD=???]
|
|
|
|
9 = APC Back-UPS/Back-UPS Pro/Smart-UPS with 940-0023A cable
|
|
|
|
[CP=none] [OL=-DCD] [LB=CTS] [SD=RTS]
|
|
|
|
10 = Victron Lite with crack cable
|
|
|
|
[CP=RTS] [OL=CTS] [LB=-DCD] [SD=DTR]
|
|
|
|
11 = Powerware 3115
|
|
|
|
[CP=DTR] [OL=-CTS] [LB=-DCD] [SD=ST]
|
|
|
|
12 = APC Back-UPS Office with 940-0119A cable
|
|
|
|
[CP=RTS] [OL=-CTS] [LB=DCD] [SD=DTR]
|
|
|
|
13 = RPT Repoteck RPT-800A/RPT-162A
|
|
|
|
[CP=DTR+RTS] [OL=DCD] [LB=-CTS] [SD=ST]
|
|
|
|
14 = Online P-series
|
|
|
|
[CP=DTR] [OL=DCD] [LB=-CTS] [SD=RTS]
|
|
|
|
15 = Powerware 5119, 5125
|
|
|
|
[CP=DTR] [OL=CTS] [LB=-DCD] [SD=ST]
|
|
|
|
16 = Nitram Elite 2002
|
|
|
|
[CP=DTR+RTS] [OL=CTS] [LB=-DCD] [SD=???]
|
|
|
|
17 = PowerKinetics 9001
|
|
|
|
[CP=DTR] [OL=CTS] [LB=-DCD] [SD=???]
|
|
|
|
18 = TrippLite Omni 450LAN with Martin's cabling
|
|
|
|
[CP=DTR] [OL=CTS] [LB=DCD] [SD=none]
|
|
|
|
19 = Fideltronic Ares Series
|
|
|
|
[CP=DTR] [OL=CTS] [LB=-DCD] [SD=RTS]
|
|
|
|
20 = Powerware 5119 RM
|
|
|
|
[CP=DTR] [OL=-CTS] [LB=DCD] [SD=ST]
|
|
|
|
Check docs/cables/powerware.txt
|
|
|
|
21 = Generic RUPS 2000 (Megatec M2501 cable)
|
|
|
|
[CP=RTS] [OL=CTS] [LB=-DCD] [SD=RTS+DTR]
|
|
|
|
22 = Gamatronic All models with alarm interface
|
|
(also CyberPower SL series)
|
|
|
|
[CP=RTS] [OL=CTS] [LB=-DCD] [SD=DTR]
|
|
|
|
SIMILAR MODELS
|
|
--------------
|
|
|
|
Many different UPS companies make models with similar interfaces. The
|
|
RUPS cable seems to be especially popular in the "power strip" variety of
|
|
UPS found in office supply stores. If your UPS works with an entry in the
|
|
table above, but the model or manufacturer information don't match,
|
|
don't despair. You can fix that easily by using the mfr and model
|
|
variables documented above in your linkman:ups.conf[5].
|
|
|
|
TESTING COMPATIBILITY
|
|
---------------------
|
|
|
|
If your UPS isn't listed above, you can try going through the list until
|
|
you find one that works. There is a lot of cable and interface reuse in
|
|
the UPS world, and you may find a match.
|
|
|
|
To do this, first make sure nothing important is plugged into the
|
|
outlets on the UPS, as you may inadvertently switch it off. Definitely
|
|
make sure that the computer you're using is not plugged into that UPS.
|
|
Plug in something small like a lamp so you know when power is being
|
|
supplied to the outlets.
|
|
|
|
Now, you can either attempt to make an educated guess based on the
|
|
documentation your manufacturer has provided (if any), or just start
|
|
going down the list.
|
|
|
|
Step 1
|
|
~~~~~~
|
|
|
|
Pick a driver to try from the list (genericups -h) and go to step 2.
|
|
|
|
Step 2
|
|
~~~~~~
|
|
|
|
Start the driver with the type you want to try -
|
|
|
|
genericups -x upstype=n /dev/port
|
|
|
|
Let upsd sync up (watch the syslog), and then run upsc to see what it
|
|
found. If the STATUS is right (should be OL for on line), continue to
|
|
<<_step_3,Step 3>>, otherwise go back to step 1.
|
|
|
|
Alternatively, you can run genericups in debug mode -
|
|
|
|
genericups -DDDDD -x upstype=n /dev/port
|
|
|
|
In this mode it will be running in the foreground and continuously
|
|
display the line and battery status of the UPS.
|
|
|
|
Step 3
|
|
~~~~~~
|
|
|
|
Disconnect the UPS from the wall/mains power. This is easiest if you
|
|
have a switched outlet in between it and the wall, but you can also just
|
|
pull the plug to test. The lamp should stay lit, and the status should
|
|
switch to "OB". If the lamp went out or the status didn't go to "OB"
|
|
within about 15 seconds, go to <<_step_1,Step 1>>. Otherwise, continue
|
|
to <<_step_4,Step 4>>.
|
|
|
|
Step 4
|
|
~~~~~~
|
|
|
|
At this point, we know that OL and OB work. If nothing else beyond
|
|
this point works, you at least know what your OL/OB value should be.
|
|
|
|
Wait for the UPS to start complaining about a low battery. Depending on
|
|
the size of your UPS battery and the lamp's bulb, this could take
|
|
awhile. It should start complaining audibly at some point. When this
|
|
happens, STATUS should show "OB LB" within 15 seconds. If not, go to
|
|
<<_step_1,Step 1>>, otherwise continue to <<_step_5,Step 5>>.
|
|
|
|
Step 5
|
|
~~~~~~
|
|
|
|
So far: OL works, OB works, and LB works.
|
|
|
|
With the UPS running on battery, run the genericups driver with the -k
|
|
switch to shut it down.
|
|
|
|
genericups -x upstype=n -k /dev/port
|
|
|
|
If the UPS turns off the lamp, you're done. At this point, you have
|
|
verified that the shutdown sequence actually does what you want. You
|
|
can start using the genericups driver with this type number for normal
|
|
operations.
|
|
|
|
You should use your findings to add a section to your ups.conf.
|
|
Here is a quick example:
|
|
|
|
[myups]
|
|
driver = genericups
|
|
port = /dev/ttyS0
|
|
upstype = 1
|
|
|
|
Change the port and upstype values to match your system.
|
|
|
|
NEW SUPPORT
|
|
-----------
|
|
|
|
If the above testing sequence fails, you will probably need to create a
|
|
new entry to support your hardware. All UPS types are determined from the
|
|
table in the genericups.h file in the source tree.
|
|
|
|
On a standard 9 pin serial port, there are 6 lines that are used as the
|
|
standard "high/low" signal levels. 4 of them are incoming (to the PC,
|
|
from the UPS), and the other 2 are outgoing (to the UPS, from the PC).
|
|
The other 3 are the receive/transmit lines and the ground.
|
|
|
|
Be aware that many manufacturers remap pins within the cable. If you have
|
|
any doubts, a quick check with a multimeter should confirm whether the
|
|
cable is straight-through or not. Another thing to keep in mind is that
|
|
some cables have electronics in them to do special things. Some have
|
|
resistors and transistors on board to change behavior depending on what's
|
|
being supplied by the PC.
|
|
|
|
SPECIFIC MODEL NOTES
|
|
--------------------
|
|
|
|
These have been contributed by users of this driver.
|
|
|
|
The Centralion CL series may power down the load if the driver starts up
|
|
with the UPS running on battery as the default line settings contain the
|
|
shutdown sequence. - Neil Muller
|
|
|
|
The Tripp-Lite Internet Office 700 must be used with the black 73-0844
|
|
cable instead of the gray 73-0743 cable. This entry should work with any
|
|
of their models with the Lan 2.2 interface - see the sticker by the DB9
|
|
connector on the UPS. - Stephen Brown
|
|
|
|
Type 5 should work with the Tripp-Lite Lan 2.1 interface and the 73-0724
|
|
cable. This was tested with the OmniSmart 675 PNP on Red Hat 7.2. - Q
|
|
Giese
|
|
|
|
Types 7 and 10 should both work with the PhoenixTec A1000.
|
|
|
|
BUGS
|
|
----
|
|
|
|
There is no way to reliably detect a contact-closure UPS. This means the
|
|
driver will start up happily even if no UPS is detected. It also means
|
|
that if the connection between the UPS and computer is interrupted, you
|
|
may not be able to sense this in software.
|
|
|
|
Most contact-closure UPSes will not power down the load if the line power
|
|
is present. This can create a race when using slave linkman:upsmon[8]
|
|
systems. See the linkman:upsmon[8] man page for more information.
|
|
|
|
The solution to both of these problems is to upgrade to a smart protocol
|
|
UPS of some kind that allows detection and proper load cycling on command.
|
|
|
|
SEE ALSO
|
|
--------
|
|
|
|
The core driver
|
|
~~~~~~~~~~~~~~~
|
|
linkman:nutupsdrv[8]
|
|
|
|
Internet resources
|
|
~~~~~~~~~~~~~~~~~~
|
|
The NUT (Network UPS Tools) home page: http://www.networkupstools.org/
|