Home
Apcupsd is a UPS control system that permits orderly shutdown of
Contents
1. 1 5 6 9 10 The RJ45 pins are looking at the end of the connector 10987654321 137 From Jan Babinski jbabinsk at pulsarbeacon dot com many thanks The BackUPS XS1000 BX 1000 ships with the 940 0127B usb cable and the optional 940 0128D serial cable I m trying to get it running under OpenBSD so usb is out of the question I ve tried smart serial with the custom cable but that s not working so Pm stuck with dumb serial over 940 0128D I have noticed that this cable is not supported by apcupsd so I set out to find out how much different this cable is compared with the supported ones After tearing the cable apart see schematic below I noticed that it is functionally similar to the 940 0128A cable except for NC on 6 DTR and 2 RD on the computer side Cable 940 0128D DB9 Computer RJ45 10 UPS 5 q 6 o a 00000 0000000000 oooo ie ele E 9 6 10 _ 1 RI 9 lt CTS 8 lt E 2N2222 NPN AS JE a B C vvvv gt lt 2 OnBatt RTS 7 gt 2k 1N5819 vvvv gt lt 3 LowBatt C Mol B DCD 1 lt E 2N 2222 NPN DTR 4 gt gt 8 KillPwr GND 5 7 Signal GND 138 Shield 4 Chassis GND Cable 940 0127B USB Computer RJ45 10 UPS Eos l APA Dd 4 10 ct 5V 1 1 5V DATA 2
2. 228 8 in Europe ADO Power load Status flags Turn dumb Only on 3rd gen Smar tUPS SmartUPS v s BackUPS Pro Soft shutdown after p delay re turn online when power returns Only works when UPS is on bat tery Simulate power failure Old firmware revision Self test battery results stored in eX Results of last self test Enter smart mode Shutdown immediately no delay need gt 1 5s between first and sec ond Z Show protocol version alert mes sages valid commands delimited by periods Firmware revision UPS local id Return threshold Battery level 177 Ranges typical 011 4 depends on what you have plugged in Bitmapped see below BYE OK 1 when switching to battery then when back on line GWD or IWT The last charac ter indicates the locale Domestic International OK OK good battery BT failed due to insufficient capac ity NG failed due to overload NO no results available no test performed in last 5 minutes SM N A 3 15 H4 AN Z 789 lt ABCDEFGKLMNOPQRSUVWXYZ abcefgjklm F Link Level alert messages commands 50 9 D 50 SKU vari able length 9 firmware revision D country code D USA I International A Asia J Japan M Canada UPS_IDEN you can program any 8 characters here battery charge threshold for re turn 00 00 01 15 02 25 03
3. Emergency UPS batteries have failed nChange them NOW wall then exits commfailure This event is generated each time the communications line with the computer is severed This event is not detected on dumb signaling UPSes Default does a printf Warning serial port communications with UPS lost wall then exits commok After a commfailure event is issued when the communications to the computer is re established this event will be generated Default does a printf Serial communications with UPS restored wall then exits doreboot This event is depreciated and should not be used Default does a reboot of the system by calling shutdown h now doshutdown When the UPS is running on batteries and one of the limits expires time run load this event is generated to cause the machine to shutdown Default does a shutdown of the system by calling shutdown h now emergency Does an emergency shutdown of the system by calling shutdown h now failing This event is generated when the UPS is running on batteries and the battery power is exhausted The event following this one will be a shutdown Default does a printf UPS battery power exhausted Doing shutdown n wall then exits 96 loadlimit This event is generated when the battery charge is below the low limit specified in the apcupsd conf file Default does a printf UPS battery discharge limit reached Doing shut
4. apcaccess eeprom Valid EPROM values for the SMART UPS 1000 Config Current Permitted Description Directive Value Values Upper transfer voltage HITRANSFER 253 253 264 271 280 Lower transfer voltage LOTRANSFER 196 196 188 208 204 Return threshold RETURNCHARGE O 00 15 50 90 Output voltage on batts OUTPUTVOLTS 230 230 240 220 225 Sensitivity SENSITIVITY H HMLL Low battery warning LOWBATT 2 02 05 07 10 Shutdown grace delay SLEEP 20 020 180 300 600 Alarm delay BEEPSTATE 0 OTLN Wakeup delay WAKEUP 0 000 060 180 300 Self test interval SELFTEST 336 336 168 ON OFF where the Current Value will depend on how your UPS is configured and the Permitted Values will depend on what UPS model you have Using apctest to Configure Your EEPROM To make the EEPROM changes with apctest you must first stop the apcupsd daemon apctest is not installed during the installation process so to use it you will need to do the following after having built apcupsd cd lt apcupsd source gt src 78 su lt root password gt apctest At that point you should get output similar to the following 2003 07 07 11 19 21 apctest 3 10 6 07 July 2003 redhat Checking configuration Attached to driver apcsmart sharenet type DISABLE cable type CUSTOM_SMART You are using a SMART cable type so I m entering SMART test mode mode type SMART Setting up serial port Creating serial port lock file Hello this is the apcupsd Cable Test program
5. UPSMODE disable share net sharenet are valid types disable net are the only known and tested classes 158 share sharenet classes are being tested For normal standalone operations you will set UPSMODE to disable to indicate that you are disabling the master slave networking However if you are using a single UPS to power several computers and you have configured master and slave computers then set this value to net Use share for two or seven 2 7 additional simple signal ports on a SmartAccessories tm internal external box for SmartUPSes The share and sharenet code is not fully tested NETTIME lt time in seconds gt The interval in seconds that the master uses to send information to slave machines This rate is automatically set to 1 second if the UPS goes on batteries and reset to your specified value when the mains power returns A typical value might be 60 seconds NETPORT lt IP port number gt This port number is used for commu nications in the master slave networking code Note that the mas ter and each slave must have the same port number specified on the NETPORT directive in the configuration file This port may also be specified during installation by using the with net port option of the configure program The NETPORT should not be confused with the port number for the Network Information Server which is specified with the SERVER PORT configuration directive MASTER lt
6. 2 Custom build a high security kernel with devfs enabled and make sure devfs is mounted and devfsd is running 3 Custom build a high security kernel with dynamic minors disabled 4 Use udev 23 Miscellaneous If all these things check out and you still can t see the UPS something is more seriously wrong than this manual can cover find expert help If you are unable to list USB devices or drivers you kernel may not be USB capable and that needs to be fixed BSD USB Configuration Known BSD USB Issues Problem FreeBSD lockups Some users have experienced lockups apcupsd stops responding on FreeBSD systems Recent versions of Apcupsd have addressed this issue Please upgrade to apcupsd 3 10 18 or higher Problem FreeBSD kernel panics if USB cable is unplugged while apcupsd is running This is another kernel bug and is most easily worked around by not hot unplugging the UPS while apcupsd is running This issue may be fixed in recent FreeBSD kernels Platforms and Versions The BSD USB driver supports FreeBSD OpenBSD and NetBSD Thanks go to the BSD developers who kept a nearly identical interface across all three platforms The driver has been tested with the following platform versions FreeBSD 5 4 Primary development platform FreeBSD 5 3 FreeBSD 4 11 NetBSD 2 0 NetBSD 1 6 2 OpenBSD 3 6 FreeBSD 5 4 has had the most testing since it is the primary platform on which the driver is developed The other platfo
7. 9 DATA DATA 3 10 DATA GND 4 7 Signal GND Shield 4 Chassis GRND Win32 Implementation Restrictions for Simple UPSes Due to inadequacies in the Win32 API it is not possible to set clear get all the serial port line signals apcupsd can detect CTS DSR RNG and CD It can set and clear RTS and DTR This imposes a few minor restrictions on the functionality of some of the cables In particular LineDown on the Custom Simple cable and Low Battery on the 0023A cable are not implemented Internal Apcupsd Actions for Simple Cables This section describes how apcupsd 3 8 5 March 2002 treats the serial port line signals for simple cables apcaction c condition power failure detected cable CUSTOM_SIMPLE action ioctl TIOCMBIS DTR set DTR enable power bit apcaction c condition power back cable CUSTOM_SIMPLE action ioctl TIOCMBIC DTR clear DTR clear power bit action ioctl TIOCMBIC ST clear ST TxD apcserial c 139 condition action serial port initialization cable 0095A 0095B 0095C ioctl TIOMBIC RTS cable 01194 0127A 0128A action action apcserial condition ioctl TIOMBIC DTR ioctl TIOMBIS RTS Ci save_dumb_status cable CUSTOM_SIMPLE action action ioctl TIOMBIC DTR ioctl1 TIOMBIC RTS cable 0020B 0020C 01194A action ioctl TIOMBIC DTR cable 0095A 0095B 0095C action
8. Apcupsd Support and Knowledge Base Brian Schau Brian Schau at compaq com Hard Core Coders Riccardo Facchetti riccardo at master oasi gpa it Kern Sibbald kern at sibbald dot com Part Time Coders Jonathan H N Chin jc254 at newton cam ac uk Andre Hedrick andre at linux ide org Brian Schau Brian Schau at compaq com Carl Erhorn Carl Erhorn at hyperion com Distribution Maintainers Alpha Kern Sibbald kern at sibbald dot com temp Debian Leon Breedt ljb at debian org FreeBSD BSDi Jeff Palmer scorpio at drkshdw org NetBSD Neil Darlow neil at darlow co uk HP UX Carl Erhorn Carl_Erhorn at hyperion com Robert K Nelson rnelson at airflowsciences com OpenBSD Devin Reade gdr at gno org RedHat Kern Sibbald kern at sibbald dot com Slackware Devin Reade gdr at gno org 190 Sparc Solaris Carl Erhorn Carl Erhorn at hyperion com SUSE Riccardo Facchetti riccardo at master oasi gpa it Win32 Kern Sibbald kern at sibbald dot com Project Discussions APCUPSD Mailing List Thanks to American Power Conversion APC who helped in giving techni cal information on their UPSes A special thanks to APC who gave me Riccardo a Smart UPS1400 INET when my old Back UPS v s 650 s battery died Thank you guys your help has been invaluable Thanks to all the users that send bug reports and suggestions we need your help Thanks to every one I forgot here If you feel Ihave forgot your name please don
9. Max number of field positions to be filled FVL Values that are returned and legal Programming the UPS EEPROM There are at this time a maximum of 12 different values that can be pro grammed into the UPS EEPROM They are Item Command 1 c 2 X 3 u 4 l 5 e 6 o 7 s 8 p 9 q 10 k 11 r 12 E Meaning The UPS Id or name The last date the batteries were replaced The Upper Transfer Voltage The Lower Transfer Voltage The Return Battery Charge Percentage The Output Voltage when on Batteries The Sensitivity to Line Quality The Shutdown Grace Delay The Low Battery Warning Delay The Alarm Delay The Wakeup Delay The Automatic Self Test Interval The first two cases Ident and Batt date are somewhat special in that you 186 tell the UPS you want to change the value then you supply 8 characters that are saved in the EEPROM The last ten item are programmed by telling the UPS that you want it to cycle to the next permitted value In each case you indicate to the UPS that you want to change the EEPROM by first sending the appropriate query command e g c for the UPS ID or u for the Upper Transfer voltage This command is then immediately followed by the cycle EEPROM command or In the case of the UPS Id or the battery date you follow the cycle command by the eight characters that you want to put in the EEPROM In the case of the other ten items there is nothing more to enter The UPS
10. dicated by the panel lamps before trying to use the computer system This will allow the UPS to handle short dropouts while it recharges Of course if you can leave the computer off during the recharge time the UPS will recharge much faster As an aside when the batteries failed my total runtime at 100 charge and an idle state was 9 minutes which is pretty bad I replaced the batteries with extended capacity cells which add about 15 to the stock capacity Now after two complete charge discharge cycles 100 charge shows the available run time to be 42 minutes on the system when it s idle and 33 min utes when the system is very busy The differences are due to the load of the computer when the disks are busy and the cpus are not in a halted state my system halts the cpus when they are idle to save power and lower heat as do other OS like Linux when compared to an idle state Apcupsd indicates the load is about 27 when idle and as much as 37 when heavily loaded I ve found that two charge discharge cycles result in a more ac curate recalibration when installing new cells It appears that some batteries need to be put through a couple of complete cy 86 cles before they reach their full capacity I ve also noticed that the full charge voltage is different for each battery until they have been through two cycles On the initial charge of my new batteries the 100 charge voltage on the two cells was almost 5 VDC a
11. 1 Cls 09 hub Sub 00 Prot 00 Driver hub Ad 81 I Atr 03 Int MxPS 8 Ivl 255ms Bus 00 Lev 01 Prnt 01 Port 00 Cnt 01 Dev 2 Spd 12 MxCh 4 Ver 1 00 Cls 09 hub Sub 00 Prot 00 MxPS 8 Cfgs 1 Vendor 0451 ProdID 1446 Rev 1 00 Ifs 1 Cfg 1 Atr e0 MxPwr 100mA If 0 Alt 0 EPs 1 Cls 09 hub Sub 00 Prot 00 Driver hub HomvonNmhHa uu oO tom 200 imimHHOAOUNUNNOMNm HOM ON Ad 81 I Atr 03 Int MxPS 1 Ivl 255ms Bus 00 Lev 02 Prnt 02 Port 00 Cnt 01 Dev 3 Spd 1 5 MxCh 0 Ver 1 00 Cls 00 gt ifc Sub 00 Prot 00 MxPS 8 Cfgs 1 Vendor 04b4 ProdID 0001 Rev 0 00 Ifs 1 Cfg 1 Atr 80 MxPwr 100mA If O Alt O EPs 1 Cls 03 HID Sub 01 Prot 02 Driver mouse Ad 81 I Atr 03 Int MxPS 3 Ivl 10ms Bus 00 Lev 02 Prnt 02 Port 02 Cnt 02 Dev 4 Spd 12 MxCh 0 Ver 1 00 Cls 00 gt ifc Sub 00 Prot 00 MxPS 8 Cfgs 1 Vendor 0565 ProdID 0001 Rev 1 08 Manufacturer Peracom Networks Inc Product Peracom USB to Serial Converter Ifs 1 Cfg 1 Atr a0 MxPwr 100mA If O Alt O EPs 3 Cls 00 gt ifc Sub 00 Prot 00 Driver serial Ad 81 1 Atr 02 Bulk MxPS 64 Ivl 16ms Ad 01 0 Atr 02 Bulk MxPS 16 Ivl 16ms Ad 82 I Atr 03 Int MxPS 8 Ivl 8ms Selecting only the T and I lines from this for example by using procusb ti we have HO HO HAN Bus 00 Lev 00 Prnt 00 Port 00 Cnt 00 Dev 1 Spd 12 MxCh 2 Bus 00 Lev 01 Prnt 01 Port 00 Cnt 01 Dev 2 Spd 12 MxCh 4 If 0 Alt O EPs 1 Cls 09 hub S
12. ALERT a condition that needs immediate attention such as pending system shutdown The default Facility for syslog logging is DAEMON although this can be changed with the FACILITY directive in apcupsd conf In the following example we should the facility as local0 More work needs to be done to the code to ensure that it corresponds to the above levels As a practical example of how to setup your syslog to use the new log ging feature suppose you wish to direct all DATA logging to a file named var log apcupsd data all EVENTS to the standard var log messages file to be mixed with other system messages and at the same time send all EVENTS to var log apcupsd events and finally you want to send all STATUS logging to the named pipe var log apcupsd status First as root you create the named pipe mkfifo var log apcupsd status Change its permissions as necessary or use the m option to set them when creating the pipe Then you modify your etc syslog conf file to direct the appropriate levels of messages where you want them To accomplish the above my syslog conf file looks like exclude all apcupsd info by default info local0 none var log messages 113 Everything for apcupsd goes here local0 info local0 Inotice var log apcupsd data local0 notice local0 warn var log apcupsd status local0 warn var log apcupsd events local0 warn var log messages Developers Notes All logging functions and
13. RTS if set in Test 1 will probably also be set in all the other tests This is not important what counts is the appearance of CTS when the power fails and additionally CD when the batteries are low Expected apctest Signals for a BackUPS Pro If you have configured your UPS as 147 UPSTYPE backupspro UPSCABLE APC 940 0095A or APC 940 0095C here are the typical signals you would expect to see in the output from the various tests of apctest Test 1 normal RTS not set Test 2 no serial cable not important Test 3 no AC power RNG Test 4 batteries exhausted RNG and CD Note RTS should never be set in any of the tests as it is the killpower signal What is important is the appearance of RNG when the power fails and additionally CD when the batteries are low Troubleshooting Serial Line communications Determining Which Voltage Signaling Cable You Have The most frequently encountered problem with voltage signalling UPSes e g BackUPS 650 is that you have incorrectly specified which cable is being used All cables furnished by APC have the cable number stamped on the side of the computer connector end of the cable Using this number with apcupsd will normally work fine If you do not know what cable you have you can use the apctest program to determine the type of the cable For simple signaling UPSes you should not use simple in the cable specifi cation i e UPSCABLE simple unless you have made the cable yourself accordi
14. This part of apctest is for testing Smart UPSes Please select the function you want to perform 1 Query the UPS for all known values 2 Perform a Battery Runtime Calibration 3 Abort Battery Calibration 4 Monitor Battery Calibration progress 5 Program EEPROM 6 Enter TTY mode communicating with UPS 7 Quit Select function number You might want to run option 1 just to ensure that apctest is properly talking to your UPS It will produce quite about 70 lines of output To program the EEPROM select option 5 and you will get the EEPROM menu as follows This is the EEPROM programming section of apctest Please select the function you want to perform 1 Print EEPROM values 2 Change Battery date 3 Change UPS name 4 Change sensitivity 5 Change alarm delay 6 Change low battery warning delay 7 Change wakeup delay 8 Change shutdown delay 9 Change low transfer voltage 10 Change high transfer voltage 79 11 Change battery return threshold percent 12 Change output voltage when on batteries 13 Change the self test interval 14 Set EEPROM with conf file values 15 Quit Select function number If you wish to use the old pre 3 10 x method of EEPROM programming with values specified in the apcupsd conf file select option 14 However we recommend that you start with item 1 to see what EEPROM values apctest finds This command can take a few minutes to run so be patient The values printed should be
15. action action apcserial condition ioctl1 TIOMBIC RTS ioctl1 TIOMBIC CD ioctl1 TIOMBIC RTS e check serial cable CUSTOM SIMPLE clear RTS DTR RTS clear set clear clear 0127A 0128A clear DTR clear RTS clear DCD clear RTS action OnBatt CD action BattLow CTS action LineDown SR cable 0020B 0020C 0119A 0127A 0128A action OnBatt CTS action BattLow CD action LineDown 0 cable 0023A action Onbatt CD action BattLow SR action LineDown 0 cable 0095A 0095B 0095C action OnBatt RNG action BattLow CD action LineDown 0 apcserial c condition killpower cable CUSTOM_SIMPLE 0095A 0095B 0095C set RTS kills power action action ioctl TIOMCBIS RTS ioctl TIOMCBIS ST set TxD cable 0020B 020C 0119A 0127A 01284A 140 set PnP mode killpower ready to receive power bit killpower killpower killpower low batt killpower a second time action ioctl TIOMCBIS DTR set DTR kills power RS232 Wiring and Signal Conventions DB 25 Pin DB 9 Pin Name 1 FG 2 3 TD 3 2 RD 4 7 RTS 5 8 CTS 6 6 DSR 7 5 SG 8 1 DCD 9 10 11 QM 12 SDCD 13 SCTS 14 STD 15 TC 16 SRD 17 RC 18 DCR 19 SRTS 20 4 DTR 21 SQ 22 9 RI 23 24 25 TC DTE DCE Description Frame Ground Chassis GND gt Transmitted Data Tx
16. before the master This can often be useful if the slave is less important than the master and you wish to reduce battery power consumption so that the master can remain up longer during a power outage 50 Variation on the Master Slave Configuration It is also possible to have a Master Slave configuration where the Slave is powered by a different UPS or any other power source but is nevertheless controlled i e shutdown by the master The setup would be identical to the Master Slave configuration files shown above The only difference is where the slave actually receives its power In effect apcupsd does not know or care where the power really comes from A Sample NIS Slave Configuration Using the Net Driver As opposed to the old master slave mode demonstrated above you can turn any computer into an NIS slave by configuring with the NIS network driver turned on enable net The difference is that the NIS server has no explicit knowledge of the slaves The NIS server makes its information available via the net NIS and the NIS slaves read it When the NIS server is going to shutdown it makes the information available to any NIS slave that polls it but the NIS server does not explicitly call each NIS slave as is the case in the Master Slave networking described several sections above Running in this configuration you can use any computer with apcupsd running the Network Information Server NIS as the server The NIS slave simp
17. disable prevents apcupsd from creating the nologin file Conse quently any user can login during a power failure condition Also the ANNOY feature is disabled so users will not be warned to lo goff the system timeout specifies that apcupsd should prohibit logins after the UPS is on batteries for 90 of the time specified on the TIMEOUT configuration directive Note Normally you don t want to specify a TIMEOUT value so this option is probably not too useful KES percent specifies that apcupsd should prohibit logins when the re maining battery charge percentage reaches 110 or less than the value specified on the BATTERYLEVEL configuration direc tive Thus if the BATTERYLEVEL is specified as 15 apcupsd will prohibit logins when the battery charge drops below 16 15 X 110 16 minutes specifies that apcupsd should prohibit logins when the re maining runtime in minutes reaches 110 or less than the value specified on the MINUTES configuration directive Thus if MINUTES is set to 3 apcupsd will prohibit logins when the remaining runtime is less than 3 minutes 3 X 110 3 always causes apcupsd to immediately prohibit logins when a power failure occurs This will also enable the ANNOY feature BATTERYLEVEL lt percent of battery gt If BATTERYLEVEL is specified during a power failure apcupsd will halt the system when the remaining battery charge falls below the specified percent age The default is 5 percent This dire
18. of the source 170 apcupsd x apcupsd x apcupsd x apcupsd x apcupsd x apcupsd x apcupsd x apcupsd x apcupsd x apcupsd x apcupsd x If you are not able to insert the above code in your halt script because there is no halt script or because your halt script calls the init program as some Unix systems do you can either just forget about powering off the UPS which means that your machine will not automatically reboot after a power failure or there is yet another alternative though not at all as satisfying as inserting code in the halt script Only if you cannot insert the appropriate code in the halt script when you start apcupsd normally from the etc rc d init d apcupsd script use the kill on powerfail option This will cause apcupsd to program the UPS to shutoff the power just before it apcupsd does the system shutdown Please note that this is not the most ideal solution Read on to understand why A very important consideration is that you must set the EEPROM in your UPS so that it waits a sufficient time for the system to halt before it shuts off the UPS power The current value as well as the permitted values for your UPS can be determined by executing apcaccess eeprom The output should look something like the following apcaccess eeprom Valid EPROM values for the SMART UPS 1000 Config Current Permitted Description Directive Value Values Upper transfer v
19. shutdown As a part of the shutdown apcupsd is terminated by the system but the shutdown process executes a script where apcupsd is recalled after the disks are synced and the machine is idle Apcupsd then requests the UPS to shut off the power killpower Unfortunately on Windows there is no such shutdown script that we are aware of and no way for apcupsd to get control after the machine is idled If this feature is important to you it is possible to do it by telling apcupsd to immediately issue the killpower command after issuing the shutdown request The danger in doing so is that if the machine is not sufficiently idled when the killpower takes place the disks will need to be rescanned and there is a possibility of lost data however small Generally UPSes 120 have a shutdown grace period which gives sufficient time for the OS to shutdown before the power is cut To implement this feature you need to add the p option to the apcupsd command line that is executed by the system Currently the procedure is manual You do so by editing the registry and changing the line c apcupsd apcupsd exe service found under the key HKEY LOCAL MACHINE Software Microsoft Windows CurrentVersion RunServices to c apcupsd apcupsd exe service p If you have a Smart UPS you can configure the kill power grace period and you might want to set it to 3 minutes If you have a dumb UPS there is no grace period and you should not use this p
20. 01 Prnt 01 Port 00 Cnt 01 Dev 2 Spd 1 5 MxCh 0 Ver 1 10 Cls 00 gt ifc Sub 00 Prot 00 MxPS 8 Cfgs 1 Vendor 051d ProdID 0002 Rev 1 00 Manufacturer American Power Conversion Product Back UPS 350 FW 5 2 1 USB FW ci SerialNumber BB0115017954 Ifs 1 Cfg 1 Atr a0 MxPwr 30mA If O Alt O EPs 1 Cls 03 HID Sub 00 Prot 00 Driver hid Ad 81 I Atr 03 Int MxPS 8 Ivl 10ms FAHAWNNNMN IU UV In general if you see your UPS model in the S field which means Manu facturer Product and SerialNumber and you see Driver hid in the I field you know the UPS has been recognized and is bound to the correct driver If your UPS doesn t appear in the list at all check the obvious things The UPS must be powered on and a cable must be properly seated in both the data port of the UPS and one of your machine s USB ports Many UPSes have phone ports to provide surge protection for phones or modems make sure you haven t plugged your USB cable into one of those rather than the data port which will usually be near the top edge of the case Also ensure that the correct drivers are loaded Under Linux 2 4 x you can check this out easily by examining the proc bus usb drivers file Here s how you can do that cat proc bus usb drivers and you should get usbdevfs hub 20 96 111 hiddev hid On Linux 2 6 x make sure the sysfs filesystem is mounted on sys and do ls 1 sys bus usb drivers Where
21. 106 Connecting an SNMP UPS o o o 106 Building with SNMP support 107 E ia Cie SE eee 107 bu a ee ee ee ee 108 o 108 Implementation Details 112 eee ae ee eg e gar RA NE 114 pues meee a 115 Installation Directory 115 ik Ace be ae E oe E E a 115 E ia Pd Be ee eee a 118 Meee de oe eae ae ey ee ee 118 eer ais eis BUR ee one ee ee 118 O e oe ee eee ee ewe es 119 oes eres eee eee 120 Popa tee eee nee 120 ne nba ee ones Bee 121 wa 122 A 122 A TE ee 123 reel 123 Connecting a Serial Line UPS to a USB Port 123 Anal e of AP a ble gs ao we a me wo E 131 Win32 Implementation Restrictions for Simple UPSes 139 Internal Apcupsd Actions for Simple Cables 139 RS232 Wiring and Signal Conventions 141 e eet 142 Po da a o eee 142 pag apra caos 143 a ad do 146 reas 148 ad 148 ee eee ee ee 149 Daas oe Se ee 150 gan ante Mo A 151 esate oo ee Pelee ee ee 151 157 161 RE OE eee eee UR E 165 ee dec 168 a a ae q aa ER 169 E AN eee de pr o ee 169 RN qe ni Ra Ro a Re 174 bua a Md em a ri 174 a eae oes ee de 175 e A oe es 175 phere ee oe ea os eee 180 Soy ee aay ne ete ea ow es ae 180 Alert Messages 181 Resister dl ss ss arta Be a a we 182 Cir A co crude DOS tudo Sei Ge ae E ae Tae AD Gap ea Be WS ee pe 182 e ele ee oe oe oo ee E ae 189 Disclaime
22. 166 timeout 98 155 TIMEOUT lt time in seconds gt TONBATT 107 Topics Advanced 94 218 Traps SNMP 07 Troubleshooting Serial Line com munications 143 Troubleshooting Your Installation 64 Types Logging 112 Unauthorized attempt from mas ter MMM 103 Upgrading 178 UPS Configuration Directives for Sharing a 151 Connecting an SNMP 06 Maintaining Your 81 Monitoring and Tuning your 66 ups name 95 UPSCABLE lt type of cable you are using gt gt 152 UPSCLASS lt class of operation gt E58 UPSes Installation Serial Line 23 Known Problems with USB 64 Overview of Serial Interface 23 Status Logging On Serial Line a0 Support for SNMP 06 Supported 14 Testing Serial Line 42 Voltage Signalling Cable for dumb 127 Win32 Implementation Re strictions for Simple 139 UPSMODE 166 UPSMODE disable share 158 UPSNAME 166 UPSNAME lt string gt 163 UPSses Using apctest on Serial Line 146 UPSTYPE lt type of APC UPS you have gt 52 USB BSD Configuration 24 BSD Device Nodes 26 BSD Kernel Configuration BSD Platforms and Versions pa Known BSD USB Issues BA Known Linux USB Issues Linux Configuration 13 Linux Device Nodes Linux Miscellaneous 24 Verifying BSD Device Detec tion and Driver 25 Verifying Linux Device Detec tion and Driver usb 14 USB Configuration 7 USERMAGIC lt
23. CABLE MODEL UPSMODE UPSNAME LINEV MAXLINEV MINLINEV LINEFREQ 223 6 Volts OUTPUTV LOADPCT BATTV BCHARGE MBATTCHG TIMELEFT MINTIMEL High SENSE DWAKE DSHUTD LOTRANS HITRANS RETPCT STATFLAG STATUS ITEMP STESTI DIPSW REG1 REG2 REG3 MANDATE NOMOUTV AMBTEMP END APC 001 048 1109 Thu Dec 02 17 27 21 CET 1999 HOSTNAME 3 7 0 beta 1 Custom Cable Smart matou sibbald com SMART UPS 1000 Stand Alone UPS_IDEN 223 6 Volts 224 9 Volts 222 3 Volts 50 0 Hz 6 2 Percent Load Capacity 27 9 Volts 100 0 Percent 5 Percent 167 0 Minutes 3 Minutes 060 Seconds 020 Seconds 196 0 Volts 253 0 Volts 050 0 Percent 0x08 Status Flag ONLINE 35 1 C Internal ALARMDEL LASTXFER SELFTEST 336 DLOWBATT Low Battery U command or Self Test NO 02 Minutes 0x00 Dip Switch Ox00 Register 1 0x00 Register 2 0x00 Register 3 01 11 99 SERIALNO BATTDATE GS9903001147 01 11 99 230 0 NOMBATTV HUMIDITY 24 0 N A N A EXTBATTS BADBATTS FIRMWARE APCMODEL Thu Dec 02 17 27 25 CET 1999 0 N A 60 11 1 IWI 74 You should get pretty much the same output mixed in with html if you execute upsfstats cgi directly from a Unix shell in the cgi subdirectory as explained above for upsstats cgi and multimon cgi Working Example To see a working example of the above programs visit Client Test Program Whe
24. Cannot open stream socket 102 Cannot read magic from slave SSS 102 Cannot resolve master name MMM 102 Cannot resolve slave name XXX 101 Cannot write to slave SSS 102 Connect to slave SSS failed 102 Got slave shutdown from SSS 102 Read failure from socket 103 Socket accept error 103 Unauthorized attempt from master MMM 103 Establishing Serial Port Connec tion 143 event 95 Events Apcupsd Notification and 69 Email Notification of 120 EVENTS Logging 12 EVENTSFILE lt filename gt 153 Example Status Report Examples Configuration AA EXTBATTS 63 FACILITY lt log facility gt 157 failing 96 Failures Configuration Directives used during Power 154 FAQ Apcupsd RPM Packaging 187 Fields Status Report 165 File Checking Your Configuration EM FIRMWARE T68 Format Status report 63 Former Code Maintainer and Project Manager 189 Frequently Asked Questions 88 Full Power Down Test 61 General Configuration Directives 57 Got slave shutdown from SSS 102 Guide Basic User s L Hackers Diagram for cable 1775 Handling Customizing Event 94 Hard Core Coders 190 Have Determining Which Voltage Signaling Cable You 148 Hid ups and USB Specific Infor mation 69 HITRANS 167 HITRANSFER lt upper limit of ups batt transfer gt 62 HOSTNAME 165 How do I build Apcupsd fo
25. Customizing Event Handling When apcupsd detects anomalies from your UPS device it will make some decisions that usually result in one or more calls to the script located in etc apcupsd apccontrol The apccontrol file is a shell script that acts on the first argument that apcupsd passes to it These actions are set up by default to sane behavior for all psituations apcupsd is likely to detect from the UPS However you can change the apccontrol behavior for every single action To customize so create a file with the same name as the action which is passed as a command line argument Put your script in the etc apcupsd 94 directory These events are sent to the system log optionally sent to the temporary events file etc apcupsd apcupsd events and they also generate a call to etc apcupsd apccontrol which in turn will call any scripts you have placed in the etc apcupsd directory Normally etc apcupsd acpcontrol is called only by apcupsd Conse quently you should not invoke it directly However it is important to understand how it functions and in some cases you may want to change the messages that it prints using wall We recommend that you do so by writing your own script to be invoked by apccontrol rather than by mod ifying apccontrol directly This makes it easier for you to upgrade to the next version of apcupsd In other case you may want to write your own shell scripts that will be invoked by apccontrol For example
26. SLAVE names in your slave and master configuration files respectively are correct Read failure from socket The slave got an error reading the socket open to the master This indicates a fundamental networking problem Bad APC magic from master MMM The slave received a code key from the master that does not correspond to the one expected by the slave The most common cause of this problem is that you are running a different version of apcupsd on the master and the slave Please ensure that you are running the same version of apcupsd on all your master and slaves Bad user magic from master MMM This message indicates that the master and slave have previously communicated but that the code key transmitted with the most recent message from the master does not correspond to what the slave expects This problem is probably due to a network error or some other user or machine contacting the slave on the network port Master Slave Connection Not Working Master slave problems are usually related to one of the following items 1 Improper apcupsd conf files A good starting point are the mas ter slave example files in the examples subdirectory of the source 103 2 Master or slave IP address or name incorrect Try ping ing each ma chine from the other using the names or addresses that you have put in the respective apcupsd conf files 3 Make sure no other program is using socket number 6666 or change the NETPORT directive in both apcu
27. SmartUPS v s and BackUPS Pro report bits 4 6 7 Unused bits are set to 0 Other models do not respond Bit Meaning 0 Fan failure in electronics UPS in bypass 182 Fan failure in isolation unit Bypass supply failure Output voltage select failure UPS in bypass DC imbalance UPS in bypass Command sent to stop bypass with no battery connected UPS still in bypass Relay fault in SmartTrim or SmartBoost 7 Bad output voltage oF WN RA O Register 3 All bits are valid on the Matrix UPS and 3rd generation SmartUPS models SmartUPS v s and BackUPS Pro models report bits 0 5 All others report 0 4 State change of bits 1 2 5 6 7 are reported asynchronously with and messages Bit Meaning 0 Output unpowered due to shutdown by low battery 1 Unable to transfer to battery due to overload 2 Main relay malfunction UPS turned off 3 In sleep mode from Q maybe others 4 In shutdown mode from S 5 Battery charger failure 6 Bypass relay malfunction 7 Normal operating temperature exceeded Interpretation of the Old Firmware Revision The Old Firmware Revision is obtained with the V command which gives a typical response such as GWD or IWT and can be interpreted as follows Old Firmware revision and model ID String for SmartUPS amp MatrixUPS This is a three character string XYZ where X Smart UPS or Matrix UPS ID Code range 0 9 and A P 1 unknown 183 O Matrix 3000 5 Matrix 5000 the
28. TR gt lt TD gt lt TABLE CELLPADDING 5 gt lt TR gt lt TH COLSPAN 10 BGCOLOR 60BOBO gt lt FONT SIZE 2 gt APCUPSD UPS Network Monitor lt FONT gt lt BR gt Sun Jan 16 12 07 27 CET 2000 lt TH gt 71 lt TR gt lt TR BGCOLOR 60BOBO gt lt TH COLSPAN 1 gt System lt TH gt lt TH COLSPAN 1 gt Model lt TH gt lt TH COLSPAN 1 gt Status lt TH gt If you do not get similar output check the permissions of the etc apcupsd directory and of those of etc apcupsd hosts conf to ensure that your web server can access it At many sites such as mine the Apache server is not running as root so you must be careful to ensure that that etc apcupsd hosts conf and etc apcupsd multimon conf are world read able To invoke multimon in your Web browser enter http lt your site gt cgi bin multimon cgi You should get something similar to the screen shot shown below If you wish additional control over the colors type faces and sizes of the multimon output you may simply edit the apcupsd css file to specify the styles you prefer multimon cgi This program monitors multiple UPSes at the same time A typical output of multimon cgi as displayed in your Web browser might look like the following The machines monitored as well as the values and their col umn headings are all configurable see etc apcupsd hosts conf and etc apcupsd multimon conf 72 upsstats cgi By clicking on the system name in the mul
29. The success of apcupsd is due to the many people that helped in develop ment testing and in many other ways Thank all the developers that worked hard to make APCUPSDone of the best piece of software for UPSmanagement Contributors Current Code Maintainer and Project Manager Kern Sibbald kern at sibbald dot com RPM Packager D Scott Barninger barninger at fairfieldcomputers dot com Super USB bug fixer Adam Kropelin akropell at rochester dot rr dot com CGI and HTML fixer William King wrking at dadaboom dot com Project Starter and Former Code Maintainer Andre Hedrick an dre at linux ide org Former Code Maintainer and Project Manager Riccardo Facchetti riccardo at master oasi gpa it Serial Communications Andre Hedrick andre at linux ide org 189 2 0 User s Manual Eric S Raymond esr at thyrsus com Alpha Port Kern Sibbald kern at sibbald dot com J Rochate jrochate at ualg pt testing and machine loan Caldera John Pinner john at clocksoft com HP UX Port Carl Erhorn Carl Erhorn at hyperion com Robert K Nelson rnelson at airflowsciences com SOLARIS Port Carl Erhorn Carl Erhorn at hyperion com OpenBSD Port Devin Reade gdr at gno org NetBSD Port Neil Darlow neil at darlow co uk Win32 Port Kern Sibbald kern at sibbald dot com Paul Z Stagner paul stagner at charterco com testing WEB Interfaces Kern Sibbald kern at sibbald dot com Joseph Acosta joeja at mindspring com
30. UPS that uses serial port line voltage signalling If you have an apcmart UPS and you build your own cable build a Smart Custom cable If you have a voltage Signalling or dumb UPS build a Simple Custom cable If you have a BackUPS CS with a RJ45 connector you can build your own Custom RJ45 cable Smart Custom Cable for SmartUPSes SMART CUSTOM CABLE Signal Computer UPS DB9F DB9M RxD 2 o 2 TxD Send TxD 30 1 RxD Receive GND 5 9 Ground 124 When using this cable with apcupsd specify the following in apcupsd conf If you have an OS that requires DCD or RTS to be set before you can receive input you might try building the standard APC Smart 940 0024C cable listed below UPSCABLE smart UPSTYPE apcsmart DEVICE dev ttySO or whatever your serial port is If you wish to build the standard cable furnished by APC 940 0024C use the following diagram APC Smart Cable 940 0024C Signal Computer UPS DB9F DB9M RxD 2 mmm 2 TxD Send TxD 3 1 RxD Receive DCD 1 DTR 4 GND 5o eeu su Se 9 Ground RTS T CTS 8 Smart Signalling Cable for BackUPS CS Models If you have a BackUPS CS you are probably either using it with the USB cable that is supplied or with the 940 0128A supplied by APC which permits running the UPS in dumb mode By building your own cable you can now run the BackUPS CS models and perhaps also the ES mode
31. all error reporting are now done through the log event subroutine call Exceptions to this are initialization code where printf s are done and writing to the status file Once the initialization code has completed and the fork to become a daemon is done no printf s are used log_event has exactly the same format as syslog In fact the sub routine consists of only a syslog call If anyone really wishes to log to a file the code to do so can easily be done by adding code to log_event in apclog c The Windows Version of apcupsd The Windows version of apcupsd has been tested on Win95 Win98 WinMe WinN T WinXP and Win2000 systems This version of apcupsd has been built to run under the CYGWIN environment which provides many of the features of Unix on Windows systems It also permitted a rapid port with very few source code changes which means that the Windows version is for the most part running code that has long proved stable on Unix systems Even though the Win32 version of apcupsd is a port that relies on many Unix features it is just the same a true Windows program When running 1t is perfectly integrated with Windows and displays its icon in the system icon tray and provides a system tray menu to obtain additional information on how apcupsd is running status and events dialogue boxes If so desired 1t can also be stopped by using the system tray menu though this should normally never be necessary Once installed a
32. batteries One important note of caution at least one user purchased one of the non APC batteries noted below and found out that they would not fit into his unit This required cutting and soldering and other very undesirable things so be extremely careful in measuring the batteries including every millimeter of the terminal connections which can cause problems Although you can do a hot swap of your batteries while the computer is running it may not be very satisfactory because the unit will not know that the batteries have been swapped and apcupsd will continue to show Low Battery To correct this situation you must do a discharge and recharge of the battery followed by a battery recalibration using apctest At that point the battery should be calibrated better As noted below Carl has found that it takes several discharge charges before the runtime calibration is accurate Take care not to discharge your battery too much as it tends to shorten the battery life What Various People Have to Say about Batteries Here is what John Walker has to say about APC UPS batteries I thought I d pass on some information I ve obtained which you ll probably eventually need Besides by writing it down Pll be able to find it the next time I started installing mine in 1995 1996 Lead acid batteries have a finite life even if not subjected to deep discharge cycles For the batteries used by APC this is typically four to six years As part of the self
33. be be done different ways depending on what system you are running The basic procedure involves getting a source distribution running the configuration rebuilding and installing The basic installation from a tar source file is rather simple 1 Unpack the source code from its tar archive 2 Go into the directory containing the source code 3 Run configure with appropriate options as described below 4 make 5 su ie become root 6 Stop any running instance of apcupsd The command to do this will look like lt system dependent path gt apcupsd stop 7 uninstall any old apcupsd This is important since the default install locations may have changed 27 8 make install 9 edit your etc apcupsd apcupsd conf file if necessary 10 ensure that your halt script is properly updated 11 Start the new apcupsd with lt system dependent path gt apcupsd start If all goes well the configure will correctly determine which oper ating system you are running and configure the source code appropri ately configure currently recognizes the systems listed below in the section of this chapter and adapts the config uration appropriately Check that the configuration report printed at the end of the configure process corresponds to your choice of directories op tions and that it has correctly detected your operating system If not redo the configure with the appropriate options until your configuration is correct Please note
34. creates nodes for any device using the hiddev driver not just APC UPSes KERNEL hiddev NAME usb hiddev n If you have several UPSes or you just want to give your UPS a fixed name you can use BUS usb SYSFS serial AS0123456789 NAME usb ups0 where you replace the serial number in quotes with the one that correspnds to your UPS Then whenever you plug in your UPS it will be given a device node called usb ups0 An additional device node related problem is the use of dynamic mi nors Some distributions such as Mandrake 10 ship with a ker nel having CONFIG_USB_DYNAMIC_MINORS turned on This is not ideal for running with apcupsd and the easiest solution is to turn CONFIG USB DYNAMIC MINORS off and rebuild your kernel or find a pre built kernel with it off For a kernel with CON FIG USB DYNAMIC MINORS turned on to work with apcupsd you must enable devfs The following will tell you if devfs is enabled ps ax grep devs which should give something like the following 533 S 0 00 devfsd dev What complicates the situation much more on Mandrake kernels is their security level since CONFIG DYNAMIC USB MINORS is turned on but on higher security levels devfs is turned off The net result is that in those situations hiddev is completely unusable so apcupsd will not work So in these cases the choices are 1 Reduce the security level setting of the system not sure if this is possible after the initial install
35. for compilation or linking that the configure script does not know about You can specify initial values for variables by setting them in the environment Using a Bourne compatible shell you can do that on the command line like this CFLAGS 02 Wall LDFLAGS configure Or on systems that have the env program you can do it like this env CPPFLAGS I usr local include LDFLAGS s configure 34 Or for example on the Sun Solaris system you can use setenv CFLAGS 02 setenv LDFLAGS 0 configure You can get a listing of all available options by doing configure help or simply see the previous section of this manual Operating System Specifics With the exception of Linux SUSE and Linux Red Hat systems used by the developers we rely on users to help create installation scripts and in structions as well as to test that apcupsd runs correctly on their system As you can imagine most of these people are system administrators rather than developers so they are very busy and don t always have time to test the latest releases With that in mind we believe that you will find that a lot of very valuable work has been already done to make your installation much easier and probably totally automatic Below you will find a list of operating systems for which we have received installation files e Alpha see Alpha e Debian see e FreeBSD see Free Y gt D e HPUX see HPUX e NetBSD see NetBSD e Open
36. if this is a powerfail situation if f etc apcupsd powerfail then echo echo APCUPSD will power off the UPS echo etc apcupsd apccontrol killpower echo echo Please ensure that the UPS has powered off before rebooting echo Otherwise the UPS may cut the power during the reboot echo We have included these lines in a file called rc0 solaris in the distribu tions sun subdirectory of the source tree You can cut and paste them into the sbin rc0 file at the correct place or yank and put them using vi or any other editor Note that you must be root to edit this file You must be absolutely sure you have them in the right place If your sbin rcO file does not look like the lines shown above do not modify the file Instead email a copy of the file to the maintainers and we will attempt Al to figure out what you should do If you mess up this file the system will not shut down cleanly and you could lose data Don t take the chance This feature has only been tested with APC SmartUPS models If you do not have a SmartUPS you will be one of the first testers to try this feature Please send email to let us know if it works with your UPS model what model you have and if possible the event logs located in etc apcupsd We d be very interested in your results and would be glad to work with you to get this feature working correctly with all the APC models A detailed description of the screen output during the shutdown would be
37. if you have a Linux kernel version 2 4 22 or greater or you have applied the patches in the examples directory to your kernel apcupsd Cannot Reconnect After a Reboot If apcupsd does not connect to the USB port when you reboot it is probably the appropriate kernel modules are not getting loaded correctly You can check this by bringing up your system fiddling around until you get apcupsd to work with the UPS then doing cat proc modules andnd save the output some place Then reboot your computer and before you do anything else do the cat proc modules again Most likely you will find some of the usb modules are missing in the second listing There are two solutions e Ensure that you have the hotplug program loaded It should fix the problem This is a bit of magic so we are not exactly sure how it works The rpm I Kern have loaded is hotplug 2001_02_14 15 You might want to read the man page on hotplug and it might be necessary to cp etc hotplug usb rc etc init d hotplug to get it fully working e You can explicitly force the appropriate usb modules to be loaded by adding sbin modprobe lt missing module name gt in the etc rc d init d apcupsd script just after the start case at about line 17 This will force the modules to be loaded before apcupsd is invoked 65 Monitoring and Tuning your UPS After you have verified that your UPS is working correctly you will probably want to query the state of its healt
38. is the case for me there is little risk In addition if you have a firewall between your servers and the Internet crackers will not have access to your UPS information Additionally you can restrict who can access your apcupsd server by using inted to run the sservice and using access control lists with a TCP wrapper or 76 by configuring TCP wrappers in apcupsd see below for TCP Wrapper details e Ifyou are running master slave networking with a single UPS powering multiple machines be aware that it is possible for someone to simulate the master and send a shutdown request to your slaves The slaves do check that the network address of the machine claiming to be the master is that same as the address returned by DNS corresponding to the name of the master as specified in your configuration file TCP Wrappers As of apcupsd version 3 8 2 TCP Wrappers are implemented if you turn them on when configuring configure with libwrap With this code enabled you may control who may access your apcupsd via TCP connections the Network Information Server and the Master Slave code This control is done by modifying the file etc hosts allow This code is implemented but untested If you use it please send us some feedback Configuring Your EEPROM If you have a SmartUPS there are depending on the UPS at least 12 different values stored in the EEPROM that determine how the UPS reacts to various conditions such as high line voltage l
39. it to build you build one yourself This cable can only be used on voltage signalling UPSes and provides the On Battery signal the Low Battery signal as well as kill UPS power In apcupsd versions 3 8 2 and prior please set your UPSCABLE to 940 0020B In version 3 8 3 and later you may specify the cable as 940 0020C Please note that this diagram may not be accurate APC Part 940 0020C Signal Computer DB9F 9 93 5K ohm 5 or semi conductor 132 On Battery Kill power Ground Common Low Battery 940 0023A Cable Wiring This diagram is for informational purposes and may not be complete we don t recommend that use it to build you build one yourself This cable can only be used on voltage signalling UPSes and apparently only provides the On Battery signal As a consequence this cable is pretty much useless and we recommend that you find a better cable because all APC UPSes support more than just On Battery Please note that we are not sure the following diagram is correct APC Part 940 0023A Signal Computer UPS DB9F DB9M DCD 1 mo 2 On Battery 3 3K ohm TxD 3 HE DTR 4S AA GND Doo kK 4 Ground 9 Common 940 0095A Cable Wiring This is the definitive wiring diagram for the 940 0095A cable submitted by Chris Hanson lt cph at zurich ai mit edu gt who disassembled the original cable destroying it in the process He then built one from his diagram a
40. library previously known as ucd snmp installed Connecting an SNMP UPS The Simple Network Management Protocol provides an interface to con nect to remote devices through the network apcupsd is now capable of using the SNMP interface of an SNMP enabled UPS to communicate with an UPS Currently apcupsd supports only APC s PowerNet MIB To en able the SNMP support it is enough to configure the correct device in your apcupsd conf configuration file The directive needed for this configuration is DEVICE 192 168 100 2 161 APC private 106 where the directive is made by four parts e host IP address of the remote UPS e port Remote SNMP port normally 161 e vendor Kind of remote SNMP agent APC for APC s PowerNet MIB APC_NOTRAP for the PowerNet MIB with SNMP trap catch ing disabled or RFC for the IETF s rfc1628 UPS MIB Note that APC_NOTRAP is only accepted by apcupsd 3 11 14 and higher See below for trap catching details e community The read write community string usually private Building with SNMP support Follow the instructions in Building and Installing apcupsd being sure to include the following options in addition to any others you need on the configure line configure with serial dev lt your SNMP device gt with upstype snmp with upscable smart enable pthreads enable snmp SNMP Trap Catching apcupsd 3 11 14 introduces support for SNMP trap catc
41. make Figure out if you have one of the easy setups If you have a USB UPS and a supported operating system and you want to use one UPS with one computer that s an easy setup APC supplies the cable needed to talk with that UPS along with the UPS All you need to do is check that your USB subsystem is working see USB Configuration if so you can go to the build and install step If you have a UPS designed to communicate via SNMP over Ethernet that is also a relatively easy installation It s in Advanced Topics see Advanced topics mainly because it s an unusual situation If you have a UPS that communicates via an RS232C serial interface and it is a SmartUPS then things are relatively simple otherwise your life is about to get interesting a If you have a vendor supplied cable find out what cable type you have by looking on the flat ends of the cable for a number such as 940 0020A stamped in the plastic Check the cables column of the table of types see to see if it s a supported type b If you don t have a vendor supplied cable or your type is not supported you may have to build one yourself see Cables Here is hoping you are good with a soldering iron Now you are ready to read the Building and Installing see section of the manual and follow those directions If you are installing from an RPM or some other form of binary package this step will probably consist of executing a single comman
42. male connector 127 5 Double check your work We use the DTR pin 4 on the female connector as our 5 volts power for the circuit It is used as the Vcc pull up voltage for testing the outputs on any UPS by APC in voltage signalling mode This cable may not work on a BackUPS Pro if the default communications are in apcsmart mode This cable is also valid for ShareUPS BASIC Port mode and is also reported to work on SmartUPSes However the Smart Cable described above is much simpler To have a better idea of what is going on inside apcupsd for the SIMPLE cable apcupsd reads three signals and sets three Reads CD which apcupsd uses for the On Battery signal when high CTS which apcupsd uses for the Battery Low signal when high RxD SR which apcupsd uses for the Line Down Signal when high This signal isn t used for much Sets DTR which apcupsd sets when it detects a power failure generally 5 to 10 seconds after the CD signal goes high It clears this signal if the CD signal subsequently goes low i e power is restored TxD ST which apcupsd clears when it detects that the CD signal has gone low after having gone high i e power is restored RTS which apcupsd sets for the killpower signal to cause the UPS to shut off the power Please note that these actions apply only to the SIMPLE cable the signals used on the other cables are different Finally here is another way of looking at the C
43. name of the master gt for slave machines Used in slave configuration files this is the network name of the master which is authorized to send commands to this slave In all cases of which I am aware when you specify a MASTER directive you will also specify UPSCABLE ether since your information about the UPS will come via the network from a master The slave machine will be shutdown whichever occurs first either at the request of the master when it does a shutdown or when the values you have specified for TIMEOUT BATTERYLEVEL or MINUTES expire these should work but have not been fully tested Conse quently if you want the slaves to begin shutting down before the mas ter you can do so by adjusting the values in the configuration file If you want the slave to remain up until the master shuts down you should set TIMEOUT BATTERYLEVEL and MINUTES all to zero For proper functioning of the slave you must specify the same UP STYPE in the slave configuration file as is in the master configuration file 159 It should be noted that the master and slaves continue to communi cate over the network even after the master has issued a shutdown command to the slaves This is because the master apcupsd continues to run until it receives the shutdown signal from the system This is important to ensure that all the slaves have been properly notified of the shutdown We recommend that the machine names used on the MASTER and SLAVE directiv
44. net 82 enable powerflute BI enable pthreads B2 enable snmp B2 enable test 32 enable usb 32 prefix Bi sbindir BI with cgi bin BI with css dir BI with libwrap B2 with lock dir B3 with log dir B3 with net port B3 with nis port B3 with nisip B3 with nologin 82 with pid dir B2 with pwrfail dir B3 with serial dev B3 with upscable B3 210 with upstype B3 2 0 User s Manual 190 A BIBI Q EIS a name 88 Acknowledgements 137 Advanced topics 94 After Installation 44 ALARMDEL IG Alert messages 181 Alpha Port 190 Alternate Ways To Run The Net work Information Server always 55 AMBTEMP 168 Analyses of APC Cables 131 ANNOY lt time in seconds gt 154 ANNOYDELAY lt time in seconds gt 154 annoyme 96 Answers 187 APC 165 APC smart protocol 174 Apcaccess 60 Apcaccess Test 55 Apccontrol Command Line Op tions 96 apcmain 54 APCMODEL 168 apcnis 54 apcser 54 apcsmart 14 Apctest 62 Apcupsd Building and Installing 26 Testing 53 Apcupsd Bugs DA Apcupsd Network Monitoring CGI Programs 70 Apcupsd Notification and Events 69 Apcupsd Status Logging 163 Apcupsd Support and Knowledge Base 190 Apcupsd System Logging 1111 Apcupsd RPM Packagin
45. pricing from their web site They have an entire section dedicated to APC replacement batteries and it s easy to find what you need You can order over the web or by phone They accept all the usual credit cards The web site as you might guess is www batterywholesale com 87 The thing I really like is that they have found manufacturers who make batteries in the standard case sizes but have additional capacity over the original batteries shipped with the APC UPS models Often the difference is as much as 15 or so and this can result in additional runtime It s a nice upgrade for a minor increase in price They are also green aware in that they encourage you to recycle your old batteries and will accept the old batteries back from you if you cannot find a local place that recycles them You pay the shipping but I think other than that there is no charge I ve never done this as I have a battery retailer just down the street who will accept my old batteries Anyway if you didn t know about these folks put the info aside where you can find it when you need replacement batteries I won t make any guarantees but I ve been very pleased with their products service and pricing I hope you find them as helpful to you as I do I ve been dealing with them since about 1994 and have never been disappointed The owner of the place also is very good on technical issues so if you have questions on their products he ca
46. problem thanks to Tom Suzda is to unplug the UPS and while it is still chattering press the power button on the front of the unit until the unit beeps and the chattering stops After that the UPS should behave normally and power down 1 2 minutes after requested to do so An amazing discovery by slither man allows one to build a CUSTOM RJ45 cable documented above and run the BackUPS CS and probably also the ES in Smart mode Running it this way provides all the same information that you would get by running it in USB mode As a consequence we recommend that you either purchase where I don t know or build your own CUSTOM RJ45 cable rather than use the 940 0128A cable Thanks to all the people who have helped test this and have provided in formation on the cable wiring our best guess for the cable schematic is the following computer Inside the Connector UPS DB9 F RJ45 pin signal Pin Color 4 DSR gt l diode resistor 6 DTR gt gt o kill power 8 Orange 1 DCD lt l 2 RxD lt o low batteryl 3 Brown 7 RTS gt 8 RI lt o on battery 2 Black 9 CTIS lt signal 5 GND o ground 7 Red 3 TxD l chassis Chassis GND o ground 4 Black
47. rest are Smart UPS and Smart UPS XL 2 250 3 400 4 400 6 600 7 900 8 1250 9 2000 A 1400 B 1000 C 650 D 420 E 280 F 450 G 700 H 700XL I 1000 J 1000XL K 1400 L 1400XL M 2200 N 2200XL D 3000 P 5000 where Y Possible Level of Smart Features unknown G Stand Alone T Stand Alone V 77 W Rack Mount where Z National Model Use Only Codes D Domestic 115 Volts I International 230 Volts A Asia 100 Volts J Japan 100 Volts Interpretation of the New Firmware Revision New Firmware revison and model ID String in NN M L is the format where NN UPS ID Code Back UPS Pro 650 Back UPS Pro 1000 Smart UPS 700 SmartUPS 1000 Smart UPS 1400 12 13 52 60 72 where N NN now Nn has possible meanings in 5n Tn n N1 N2 N3 where Class of UPS Back UPS Pro Smart UPS Smart UPS NET Level of intelligence Simple Signal if detectable WAG Full Set of Smart Signals Micro Subset of Smart Signals Possible Level of Smart Features unknown 1 Stand Alone 8 Rack Mount 9 Rack Mount 184 where L National Model Use Only Codes D Domestic 115 Volts I International 230 Volts A Asia 100 Volts J Japan 100 Volts M North America 208 Volts Servers EEPROM Values Upon sending a Z your UPS will probably spit back approximately 254 characters something
48. serial communications 148 OpenBSD Port 190 Operating System Specifics B5 Operating Systems 3 Options apccontrol Command Line 96 Compilers and BA Configure BI Other APC Cables that apcupsd Supports 129 other defines are used 183 OUTPUTV 166 Overview of Serial Interface UP Ses 23 Packages Installation from Binary 26 Part Time Coders 190 percent 155 Pin Assignment for the Serial Port RS 232C 25 pin and 9 pin Female End 141 Planning Your Installation I Port Connecting a APC USB UPS to either a PC USB or Se rial 124 Connecting a Serial Line UPS to a USB 23 Post Installation I8 Power Down During Shutdown 27 powered 95 powerout 97 Problem Areas 18 Problems Known 108 Master Slave 100 Shutdown 172 Process Status Test 53 Programming the UPS EEPROM 186 Programs apcupsd Network Monitoring CGI 7d Setting up and Testing the CGI O Project Discussions 91 Project Starter and Former Code Maintainer 139 Protocol APC smart L74 Smart 175 Questions Frequently Asked 88 Quick Start for Beginners 1 Read failure from socket 103 Recalibrating the UPS Runtime 149 Recommended Options for most Systems BA Reference Configuration Directive Technical 151 REG1 67 REG2 167 REG3 167 Register 1 82 Register 2 132 Register 3 133 RELEASE 165 rem
49. test cycle the UPS measures the voltage of the battery at full charge which falls as the battery ages and if it s below about 90 of the value for a new battery it sets off the Replace battery alarm which it repeats every day on apcupsd versions prior to 3 8 0 this message is sent once on version 3 8 0 it is sent every 9 hours KES You will occasionally get a false alarm It s a good idea if you get an alarm to repeat the self test the next day and see if the alarm goes away If the alarm is persistent you need to replace the batteries which can be done without powering down the UPS or load you just open up the battery door take out the old batteries and hook up the new ones 81 APC makes Replacement Battery Units for each of the Smar tUPS models but they sell them directly only in the U S It s best to wait until the low battery alarm before ordering a replacement keeping batteries on the shelf reduces their life un less you keep them fully charged And Andre Hendrick says For replacement batteries You need to goto you your local Yamaha SeaDoo shop There are 35 AMP Hour deep cycle ma rine batteries that are direct replacements These are gel cel and will double the runtime and or cut your recharge time in half Jet Works 1587 Monrovia Ave Newport Beach CA 9266 Tel 1 714 548 5259 J W Batteries Inc Tel 1 714 548 4017 WPS 49 1200 GEL CELL KB 35 BATTERY For those that do not know
50. the Testing see Testing Apcupsd section of this manual This timer can also be useful if you want some slave machines to shutdown before other machines to conserve battery power It is also useful for testing apcupsd because you can force a rapid shutdown by setting a small value e g 60 and pulling the plug to the UPS When apcupsd is running in master mode UPSCLASS netmaster and a shutdown condition is determined apcupsd will notify each of the slaves to perform a shutdown then apcupsd will sleep for 30 sec onds before issuing the shutdown of its own computer If you need the master to wait additional time before shutting down to allow for shutdown of slower slaves or of slaves running software that requires more time to shutdown e g databases you can do so by adding additional sleep commands to etc apcupsd apccontrol in each case that causes a shutdown TIMEOUT BATTERYLEVEL and MINUTES can be set to gether without problems apcupsd will react to the first case or test that is valid Normally SmartUPS users will set TIMEOUT to zero so that the system is shutdown depending on the percentage bat tery charge remaining BATTERYLEVEL or the remaining bat tery runtime MINUTES KILLDELAY lt time in seconds gt If killdelay is set apcupsd will con tinue running after a shutdown has been requested and after the spec ified time in seconds apcupsd will attempt to shut off the UPS the power This directive should nor
51. the 940 0095B cable At Kern s site running Red Hat 7 1 with kernel 2 4 9 12 he simply changed his etc apcupsd apcupsd conf configuration line to be DEVICE dev ttyUSBO Depending on whether or not you have hotplug working you may need to explicitly load the kernel modules usbserial and pl2303 In Kern s case this was not necessary 123 Connecting a APC USB UPS to either a PC USB or Serial Port An interesting fact is that the USB ports actually an RJ45 connector on APC UPSes not only speak USB but also serial apcsmart and dumb voltage signalling as well This is something that one of our users discovered by accident With the Custom RJ45 cable actually a RJ45 to serial cable described below plugged into the APC UPS USB socket at one end and the other end plugged into a serial port on your PC any APC USB UPS except some of the newer really low cost models will act as a serial line device Cables You can either use the cable that came with your UPS the easiest if we support it or you can make your own cable We recommend that you obtain a supported cable directly from APC If you already have an APC cable you can determine what kind it is by examining the flat sides of the two connectors where you will find the cable number embossed into the plastic It is generally on one side of the male connector To make your own cable you must first know whether you have a UPS that speaks the apcsmart protocol or a dumb
52. this is not recommended Note that you should enter dev usb hiddev 0 15 literally as shown The 0 15 expression tells apcupsd to search all hiddev devices until it finds a UPS You can restrict the search to a subset of devices by using something like 0 4 but keep in mind this will limit apcupsd s ability to locate the UPS if the kernel relocates it to a different device node which happens oc casionally during short power failures Again it is highly recommended to leave the DEVICE directive blank and let apcupsd find your device auto matically If the first time you execute apcupsd you get a message to the effect that the Apcupsd USB driver is missing it means that you most likely forgot to put enable usb on your configure command line If you loaded apcupsd from an rpm file you may have selected the wrong one please ensure that the word usb appears in the rpm package name The next chapter see Configuration Examples of this manual provides you with the essential characteristics of each main type of configuration file After those elements are correct apcupsd should run and then it is only a matter of customization of your setup Arranging for Reboot on Power Up The final consideration for a automatic reboot after a full power down is to ensure that your computer will automatically reboot when the power is restored This is not the normal behavior of most computers as shipped from the factor
53. type of APC UPS you have gt The name of a driver Should be one of dumb apcsmart net usb snmp or test This de scribes your interface type The UPSTYPE directive can be defined during installation by using the with upstype option of the configure program UPSCABLE lt type of cable you are using gt gt simple 940 0020B 940 0023A smart 940 0024B 940 0024C 940 1524C 940 0024G 940 0095A 940 0095B 940 0095C 940 0119A ether usb The with upscable option of configure can be used to set a default for this directive during the your build DEVICE lt name of device gt Specify which device is used for UPS com munications For serial ports it is usually something like dev ttyS0 For USB ports you may leave the name of the device blank no speci fication and apcupsd will automatically search the standard locations for the UPS Normally the configure program will set an appropriate default value You may also specify the with serial dev option of the configure program to set this directive at build time If you have specified UPSTYPE net then the device name to be specified consists of hostname port where the hostname is the fully qualified name or IP address of the host NIS server and the port optional is the port to use to contact the server If you specified UPSTYPE snmp then the device name becomes hostname vendor community Please see the SNMP chapter see Support for SN
54. very helpful if you see problems You will then need to make the normal changes to the etc apcupsd apcupsd conf file This file contains the configuration settings for the package It is important that you set the values to match your UPS model and cable type and the serial port that you have attached the UPS to People have used both dev ttya and dev ttyb with no problems You should be sure that logins are disabled on the port you are going to use otherwise you will not be able to communicate with the UPS If you are not sure that logins are disabled for the port run the admintool program as root and disable the port The admintool program is a GUI administration program and required that you are running CDE OpenWindows or another X Windows program such as KDE Solaris probes the serial ports during boot and during this process it toggles some handshaking lines used by dumb UPSes As a result particularly for simple signalling dumb UPSes it seems to kick it into a mode that makes the UPS think it s either in a calibration run or some self test mode Since at this point we are really not communicating with the UPS it s pretty hard to tell what happened But it s easy to prevent this and you should Disconnect the UPS and boot the system When you get to a login prompt log in as root Type the following command eeprom comi noprobe true or eeprom com2 noprobe true depending on which com port your U
55. what this means I found the best battery for APCC UPS products that use In the two systems below SMART UPS 3000 10 9 is running at 327W runs for 47 0 min Smart UPS 1250 22 3 is running at 279W runs for 54 0 min APCUPSD UPS Network Monitor Thu Jan 18 21 55 36 PST 2001 System Model Status Battery Chg Utility UPS Load UPS Temp Batt Run Time Data Linux ATA Development SMART UPS 3000 ONLINE 100 0 120 2 VAC 10 9 36 9 C 47 0 min All data Linux ATA Development II APC Smart UPS 1250 ONLINE 100 0 119 6 VAC 22 3 45 9 C 54 0 min All data Look at the numbers and see that these batteries are better and have more total running energy than standard ones SMART UPS 3000 10 9 is running at 327W runs for 47 0 min Smart UPS 1250 22 3 is running at 279W runs for 54 0 min 82 APCUPSD UPS Network Monitor Thu Jan 18 22 00 45 PST 2001 System Model Status Battery Chg Utility UPS Load UPS Temp Batt Run Time Data Linux ATA Development SMART UPS 3000 ONLINE 100 0 120 2 VAC 19 2 36 9 C 27 0 min All data Linux ATA Development II APC Smart UPS 1250 ONLINE 100 0 119 6 VAC 21 8 45 9 C 55 0 min All data SMART UPS 3000 19 2 is running at 576W runs for 27 0 min Smart UPS 1250 21 8 is running at 273W runs for 55 0 min Smart UPS 1250 46 1 is running at 576W runs for 26 0 min Kind of cool The 1250 can outrun the 3000 by a factor of two under identical percentages or run head to head for the same time SMART UPS 3000 is
56. when a power fail occurs you may want to send an email message to root At present the arguments that apccontrol recognizes are When apcupsd detects an event it calls the apccontrol script with four arguments as apccontrol lt event gt lt ups name gt lt connected gt lt powered gt where event is the event that occurred and it may be any one of the values de scribed in the next section ups name is the name of the UPS as specified in the configuration file not the name in the EEPROM For version 3 8 2 this is always set to Default connected is 1 if apcupsd is connected to the UPS via a serial port or a USB port In most configurations this will be the case In the case of a Slave machine where apcupsd is not directly connected to the UPS this value will be 0 powered is 1 if the computer on which apcupsd is running is powered by the UPS and 0 if not At the moment this value is unimplemented and always 0 95 apccontrol Command Line Options apccontrol accepts the following command line options annoyme When a shutdown is scheduled and the time specified on the ANNOYME directive in the apcupsd conf file expires this event is generated Default does a printf Power problems please logoff wall then exits changeme When apcupsd detects that the mains are on but the battery is not functioning correctly this event is generated It is repeated every x hours Default does a printf
57. will probably do immediately following the installation enter the following etc rc d apcupsd start Normally when properly installed apcupsd will be started and stopped au tomatically by your system Unfortunately the details are different for each system Below we give the commands for selected systems Alternatively there are simple stopapcupsd and startapcupsd scripts in the examples di rectory or you can modify one of the scripts in the distributions directory to meet your needs To stop apcupsd you can do the following On Red Hat systems etc rc d init d apcupsd stop On SUSE systems etc rc d apcupsd stop Please see the Testing Apcupsd see Testing Apcupsd chapter for more details on insuring that apcupsd is running properly Configuration Examples A Simple USB Configuration If you have a USB UPS and you have apcupsd version 3 10 7 3 10 17a for BSD or higher the essential elements of your apcupsd conf file should look 47 like the following apcupsd conf v1 1 UPSCABLE usb UPSTYPE usb DEVICE LOCKFILE var lock UPSCLASS standalone UPSMODE disable Notice that we have not specified a device In doing so apcupsd will try all the well known USB ports We strongly recommend you use this empty device address form unless you have a good reason to do otherwise Please use the explicit specifications of a device only if you know exactly what you are doing In general it is much easi
58. will respond by OK and approximately 5 seconds later by a vertical bar to indicate that the EEPROM was changed Acknowledgements The apcupsd has a rather long and tormented history Many thanks to the guys that with time contributed to the general public knowledge Pavel Korensky lt pavelk at dator3 anet cz gt Andre M Hedrick lt hedrick at suse de gt Christopher J Reimer lt reimer at doe carleton ca gt Kevin D Smolkowski lt kevins at trigger oslc org gt Werner Panocha lt wpanocha at t online de gt Steven Freed additions by Kern Sibbald lt apcupsd users at lists sourceforge net gt Apcupsd RPM Packaging FAQ Answers How do I build Apcupsd for platform xxx The apcupsd spec file contains defines to build for several platforms RedHat Tx rh7 RedHat 8 0 rh8 RedHat 9 rh9 Fedora Core fedora ore RedHat EnterpriseLinuxandclones rhel3andrhel4 SuS E910 suse andMandrake define rh7 O and edit it to read define rh7 1 187 Alternately you may pass the define on the command line when calling rpmbuild rpmbuild ba define build_rh7 1 apcupsd spec rpmbuild rebuild define build_rh7 1 apcupsd x x x x src rpm How do I control whether usb support gets built By default standard serial port support will be built and the apcupsd std package will be pro duced The usb package pre configures the configuration files for usb devices and installs a couple additional tools in etc apcup
59. you should get total O drwxr xr x 2 root root O May 1 18 55 hid drwxr xr x 2 root root O May 1 18 55 hiddev drwxr xr x 2 root root O May 1 18 55 hub drwxr xr x 2 root root O May 1 18 55 usb drwxr xr x 2 root root O May 1 18 55 usbfs or perhaps something like total 0 drwxr xr x 2 root root O Jan 6 15 27 hiddev drwxr xr x 2 root root O Jan 6 15 28 hub drwxr xr x 2 root root O Jan 6 15 28 usb drwxr xr x 2 root root O Jan 6 15 27 usbfs drwxr xr x 2 root root O Jan 6 15 28 usbhid If your 2 6 x system does not have the sys bus usb directory either you do not have sysfs mounted on sys or the USB module s have not been loaded Check proc mounts to make sure sysfs is mounted A USB UPS needs all of these drivers the USB device filesystem the USB hub the Human Interface Device subsystem driver and the Human Interface Device driver If you are compiling your own kernel you want to enable CONFIG_USB CONFIG_USB_HID CONFIG_USB_HIDDEV CONFIG_USB_DEVICEFS as well as at least one USB Host Controller Driver 21 CONFIG USB UHCI HCD linux 2 6 x CONFIG USB OHCI HCD linux 2 6 x CONFIG USB UHCI linux 2 4 x CONFIG_USB_OHCI linux 2 4 x For a typical USB section of a kernel config file please see Typical Linux Kernel Config Device Nodes Apcupsd accesses USB UPSes via the hiddev device nodes Typ ically these are located in dev hiddevN dev usb hiddevN or dev usb hiddev hiddevN where N is a dig
60. 0 SLEEP lt set sleep delay gt 161 Smart Protocol E75 Smart Signalling Cable for Back UPS CS Models 25 Smart Custom Cable for Smar tUPSes 124 SmartUPS Simple Configuration for a 48 SmartUPSes Smart Custom Cable for 124 SNMP Building with support for snmp 14 SNMP Trap Catching Socket accept error 103 SOLARIS Port 190 Source Building the Win32 Version from the 122 Installation from 27 Specifics Operating System B5 Standalome Running apcnisd 0 Starting Apcupsd startselftest 98 STARTTIME 166 Startup 173 STATFILE lt file gt 57 STATFLAG 167 STATTIME lt time gt 157 STATUS Bd Status bits 180 STATUS Logging 112 Status Logging On Serial Line UPSes 150 Status Report Example 164 Status Report Fields 165 Status report format 163 STESTI 167 Subsystem Checking Out Your Linux USB 9 Super USB bug fixer 189 Support for SNMP UPSes 106 Supported Operating Systems 3 Supported UPSes and Cables Supports Other APC Cables that apcupsd 29 System Shutdown Test 61 Systems Recommended Options for most BA TCP Wrappers 77 Technical Reference 51 Test apcaccess 55 Communications 58 Full Power Down 61 Logging 54 Process Status 53 Simulated Power Fail 59 System Shutdown 61 Testing 117 Testing Apcupsd 53 Testing Serial Line UPSes 42 TIMELFFT
61. 0 0x40 0x80 NOOK W DO Meaning 1 Runtime calibration occurring Not reported by Smart UPS v s and BackUPS Pro 1 SmartTrim Not reported by 1st and 2nd generation Smar tUPS models 1 SmartBoost 1 On line this is the normal condition 1 On battery 1 Overloaded output 1 Battery low 1 Replace battery Alert messages These single character messages are sent by the UPS any time there is an Alert condition All other responses indicated above are sent by the UPS only in response to a query or action command Character Description Line Fail sent when the UPS goes on battery repeated every 30 seconds until low battery condition reached Sometimes occurs more than once in the first 30 seconds Return from line fail UPS back on line power only sent if a has been sent Low battery Sent to indicate low battery but not on SmartUPS v s or BackUPS Pro models Return from low battery Sent when the battery has been recharged to some level only if a has been sent previously Abnormal condition sent for conditions such as shutdown due to overload or shutdown due to low battery capacity Also occurs within 10 minutes of turnon Return from abnormal condition Sent when the UPS returns from an abnormal condition where was sent but not a turn on Not implemented on SmartUPS v s or BackUPS Pro models About to turn off Sent when the UPS is about to switch off the load No commands are proce
62. 0 Cnt 00 Dev 1 Spd 12 MxCh 2 Bus 00 Lev 01 Prnt 01 Port 00 Cnt 01 Dev 2 Spd 12 MxCh 4 If 0 Alt O EPs 1 Cls 09 hub Sub 00 Prot 00 Driver hub Bus 00 Lev 02 Prnt 02 Port 00 Cnt 01 Dev 3 Spd 1 5 MxCh 0 If O Alt O EPs 1 Cls 03 HID Sub 01 Prot 02 Driver mouse Bus 00 Lev 02 Prnt 02 Port 02 Cnt 02 Dev 4 Spd 12 MxCh 0 If O Alt O EPs 3 Cls 00 gt ifc Sub 00 Prot 00 Driver serial Physically this looks like or could be converted to PC root hub 12 Dev 1 tonne nnn nnn nn is Mbps Level 0 CN O CN 1 CN connector port Level 1 Dev 2 4 port hub 12 ICN O CN 1 CN 2 CN 3 Ho N NCAA O cr oro np Must N N N So Level 2 Dev 3 mouse 1 5 Dev 4 serial 12 So 208 Or in a more tree like structure ports Connectors without connections could be omitted PC Dev 1 root hub 2 ports 12 Mbps CN O Dev 2 hub 4 ports 12 Mbps _ CN 0 Dev 3 mouse 1 5 Mbps 2 Dev 4 serial 12 Mbps END HH 209 Index about 22 events 122 help DZ install 22 Jill A remove 122 run 122 service 122 servicehelper 122 status 22 disable install distdir BA enable apcsmart 32 enable cgi Bi enable dumb B2 enable master slave 82 enable
63. 2000 machine the OS is probably attempting to attach a serial mouse to the port you are using COMI or COM2 To prevent this edit your c boot ini file and you will find a line that looks something like the following multi 0 disk 0 rdisk 0 partition 1 WINNT Windows NT Workstation Version 4 00 Add the following to the end of the line NoSerialMice COM1 or COM so that the new line looks like multi 0 disk 0 rdisk 0 partition 1 WINNT Windows NT Workstation Version 4 00 NoSeriall e If you are using a WinNT or Win2000 machine try connecting apcupsd to COM2 rather than COMI be sure to change your c apcupsd etc apcupsd apcupsd conf to reflect the change e If you are using a Solaris machine you may have similar problems as described above for the WinNT machine A possible fix is documented in the Sun section of the Configuration chapter of this manual e Try connecting your UPS to another machine If it works then you probably have a bad serial port card As unlikely as this may sound at least two of our users have had to replace bad serial port cards 144 e Try doing an lsof dev ttySO where you replace the dev ttySO with your serial port name If you get no output the port is free or there is no physical port If you get output then another program is using the port and you should see which one e Try doing a dmesg grep tty This may show you if a program has grabbed the port Thanks to Joe Acosta for the sug
64. 500 is not set CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD is not set CONFIG_USB_LED is not set CONFIG_USB_CYTHERM is not set CONFIG_USB_TEST is not set HH HH HH H HOH OH OH OH USB Gadget Support HH HOH CONFIG_USB_GADGET is not set Interpreting proc bus usb linux 2 4 Interpretation of proc bus usb info on 2 4 kernels proc bus usb filesystem output version 2002 03 18 194 The proc filesystem for USB devices provides proc bus usb drivers and proc bus usb devices as well as proc bus usb BBB DDD files NOTE If proc bus usb appears empty and a host controller driver has been linked then you need to mount the filesystem Issue the command as root mount t usbfs none proc bus usb An alternative and more permanent method would be to add none proc bus usb usbfs defaults 0 0 to etc fstab This will mount usbfs at each reboot You can then issue cat proc bus usb devices to extract USB device information and user mode drivers can use usbfs to interact with USB devices There are a number of mount options supported by usbfs Consult the source code linux drivers usb inode c for information about those options NOTE The filesystem has been renamed from usbdevfs to usbfs to reduce confusion with devfs You may still see references to the older usbdevfs name For more information on mounting the usbfs file system see the USB Device Filesystem section of the USB Guide Th
65. 8 The Shutown Sequence and its Discontents Shutdown Sequence If you experienced so problems with the testing procedures or if you are porting apcupsd to another system or you are simply curious you may want to know exactly what is going on during the shutdown process The shutdown sequence is as follows e apcupsd detects that there is a power problem and it calls etc apcupsd apccontrol powerout which normally sends a mes sage to all users informing them of a potential problem e After approximately 5 seconds in the power problem mode apcupsd calls etc apcupsd apccontrol onbattery which normally sends a message to all users informing them that the UPS is on batteries e When one of the conditions listed below occurs apcupsd issues a shut down command by calling etc apcupsd apccontrol doshutdown which should perform a shutdown of your system using the system shutdown 8 command You can modify the behavior by editing the etc apcupsd apccontrol script but doing so will make it more com plicated to upgrade to the next apcupsd version The conditions that trigger the shutdown can be running time on batteries have expired TIMEOUT the battery runtime remaining is below the configured value BATTERYLEVEL the estimated re maining runtime is below the configured value MINUTES or the UPS signals that the batteries are exhausted A shutdown could also be initiated if apcupsd detects that the batteries are no longer fun
66. 90 Ranges typical 100 0 when fully charged as should normally be the case op pues aH OD et Nominal battery voltage not ac tual voltage see B Measure UPS ambient humidity Measure UPS dry contacts Estimated runtime at current load minutes Alarm delay Low transfer voltage Manufacturing date Serial number Nominal Output Voltage Shutdown grace delay seconds Low battery warning minutes Wakeup delay time seconds Sensitivity Upper transfer voltage Measure UPS ambient tempera ture degrees C Last battery change Copyright notice Reset the EEPROM to factory settings but not ident or batt replacement date Not on Smar tUPS v s or BackUPS Pro Capability cycle 178 012 or 024 or 048 nnn n percentage 10 contact 1 20 2 40 3 80 4 0112 note it is terminated with a colon O zero 5 second delay after fail T 30 second delay L alarm at low battery only N no alarm Default 103 or 208 in Europe Unique within groups of UPSes production runs Unique for each UPS The Nominal Output Voltage when running on batteries De fault 115 or 230 in Europe Default 020 020 180 300 600 Default 02 Default 000 000 060 180 300 H highest M medium L lowest A autoadjust Matrix only Default 132 or 253 in Europe nn nn Eight characters V
67. 999 HOSTNAME matou RELEASE 3 7 0 beta 1 CABLE Custom Cable Smart MODEL SMART UPS 1000 UPSMODE Stand Alone UPSNAME UPS_IDEN LINEV 232 7 Volts MAXLINEV 236 6 Volts MINLINEV 231 4 Volts LINEFREQ 50 0 Hz OUTPUTV 232 7 Volts LOADPCT 11 4 Percent Load Capacity 67 BATTV BCHARGE MBATTCHG TIMELEFT MINTIMEL SENSE DWAKE DSHUTD LOTRANS HITRANS RETPCT STATFLAG STATUS ITEMP ALARMDEL LASTXFER SELFTEST 336 DLOWBATT 0x00 Dip Switch Ox00 Register 1 0x00 Register 2 STESTI DIPSW REG1 REG2 REG3 MANDATE NOMOUTV HUMIDITY AMBTEMP EXTBATTS BADBATTS FIRMWARE APCMODEL Fri Dec 03 12 34 33 CET 1999 END APC 27 7 Volts 100 0 Percent 5 Percent 112 0 Minutes 3 Minutes Low 060 Seconds 180 Seconds 204 0 Volts 253 0 Volts 050 0 Percent 0x08 Status Flag ONLINE 29 2 C Internal Low Battery U command or Self Test NO 02 Minutes 0x00 Register 3 01 05 99 SERIALNO BATTDATE 230 0 NOMBATTV N A N A GS9902009459 01 05 99 24 0 0 N A 60 11 1 IWI For the various smaller cheaper APC USB UPSes such as the CS ES you will get much of the information that is presented above but not all of it For example you will not get MAXLINEV MINLINEV LINEFREQ and in particular the LOADPCT will be zero when you are running on mains LOADPCT will display when the UPS is on batteries You must remem
68. BSD see OpenBSD e Red Hat see Red Hat Systems e Slackware see Slackware e SUSE see SUSE e Solaris see Sun Solaris e unknown see Unknown System e Win32 see Windows Systems with CYGWIN Installed Alpha The Alpha V4 0 version of apcupsd builds without compiler errors with gcc version 2 95 2 It is unlikely that the native Alpha compiler will work because of varargs differences Unless you are a system guru we recommend that you connect your UPS to the second serial port dev tty01 to avoid conflicts with the console device DEVICE dev tty01 In addition you should ensure serial port lock file in apcupsd conf is defined as LOCKFILE var spool locks Unlike the Linux systems the system halt routine is located in sbin rc0 so after the make install please check that this file has been correctly updated The start stop script can be found in sbin init d apcupsd Debian This port is complete and is operation by several users Since Debian build and install procedures are somewhat particular we have put the extra Debian information into the following two subdirectories lt src gt distributions debian examples and lt src gt distributions debian packageinfo You can also find the official Debian packages on the Debian site at e http packages debian org stable admin apcupsd html e http packages debian org testing admin apcupsd html e http packages debian org unstable admin apcupsd h
69. D lt Received Data RxD gt Request To Send lt Clear To Send lt Data Set Ready Signal Ground GND lt Data Carrier Detect Positive DC test voltage Negative DC test voltage lt Equalizer mode lt Secondary Data Carrier Detect lt Secondary Clear To Send gt Secondary Transmitted Data lt Transmitter signal Clock lt Secondary Receiver Clock gt Receiver signal Clock lt Divided Clock Receiver gt Secondary Request To Send gt Data Terminal Ready lt Signal Quality Detect lt Ring Indicator gt Data rate selector lt Data rate selector lt Transmitted Clock Pin Assignment for the Serial Port RS 232C 25 pin and 9 pin Female End 141 RS232 connectors looking into the end of the cable The diagram male en DTE DCE RxD TxD DTR DSR RTS CTS RI DCD dis Data Data Data Data DTE DCE DTE DCE DCE DCE above represents the Female end of the cable The the same but looking from inside the cable Terminal Equipment i e computer Communications Equipment i e UPS received 1 is transmitted low O as high sent 1 is transmitted low 0 as high announces that it is powered up and ready to communicate announces that it is ready to communicate low modem hang up asks DCE for permission to send data agrees on RTS Signals the DTE that an establishment of a connection is attempted announ
70. DEL is the delay period for the UPS alarm BATTV is the battery voltage as supplied by the UPS LINEFREO is the line frequency in Hertz as given by the UPS LASTXFER is the reason for the last transfer to batteries NUMXFERS the number of transfers to batteries since apcupsd startup XONBATT time and date of last transfer to batteries or N A TONBATT time in seconds currently on batteries or 0 CUMONBATT total cumulative time on batteries in seconds since apcupsd startup XOFFBATT time and date of last transfer from batteries or N A SELFTEST is the results of the last self test and may have the following values OK self test indicates good battery BT self test failed due to insufficient battery capacity NG self test failed due to overload NO No results i e no self test performed in the last 5 minutes STESTI is the interval in hours between automatic self tests STATFLAG status flag English version is given by STATUS DIPSW is the dip switch settings REGL1 is the value from the UPS fault register 1 REG2 is the value from the UPS fault register 2 REG3 is the value from the UPS fault register 3 MANDATE is the date the UPS was manufactured SERIALNO is the UPS serial number 167 BATTDATE is the date that batteries were last replaced NOMOUTYV is the output voltage that the UPS will attempt to supply when on battery power NOMBATTYV is the nominal battery voltage HUMIDITY is the humidity as measured by the UP
71. G2 0x00 Register 2 REG3 0x00 Register 3 MANDATE 07 31 99 SERIALNO QS9931125245 BATTDATE 07 31 99 NOMOUTV 230 NOMBATTV 24 0 HUMIDITY N A AMBTEMP N A EXTBATTS O BADBATTS N A FIRMWARE 60 11 1 APCMODEL IWI END APC Wed Sep 27 17 30 31 CEST 2000 Status Report Fields The meaning of the above variables are APC is the header record indicating the STATUS format revision level the number of records that follow the APC statement and the number of bytes that follow the record DATE is the date and time that the information was last obtained from the UPS HOSTNAME is the name of the machine that collected the UPS data RELEASE is the apcupsd release number CABLE is the cable as specified in the configuration file MODEL is the UPS model as derived from information from the UPS 165 UPSMODE is the mode in which apcupsd is operating STARTTIME is the time date that apcupsd was started UPSNAME is the name of the UPS as stored in the EEPROM STATUS is the current status of the UPS ONLINE CHARGING ON BATT MASTERUPD is the last time the master sent an update to the slave This value is present only in slave configurations LINEV is the current line voltage as returned by the UPS LOADPCT is the percentage of load capacity as estimated by the UPS BCHARGE is the percentage charge on the batteries TIMELEFT is the remaining runtime left on batteries as estimated by the UPS MBATTCHG i
72. GPC UPS Daemon Apcupsd is a UPS control system that permits orderly shutdown of your computer in the event of a power failure Kern Sibbald April 28 2006 This manual documents apcupsd version 3 12 x Copyright C 1999 2005 Kern Sibbald Copying and distribution of this file with or without modification are per mitted in any medium without royalty provided the name Apcupsd the copyright notice and this notice are preserved Apcupsd source code is released under the GNU General Public License version 2 Please see the file COPYING in the main source directory For more information on the project please visit the main web site at http www apcupsd com Contents ee OE Be oe eee 11 AA 11 a E ne ae Be 11 E aa 11 a e idad 13 e a pa 14 a 16 rs ia on 26 a e don 26 A es 27 After Installation 2 a a a 44 a Bl Sad ota Be eee eee wee eee 53 Gees ae ee ee ewe bee eee eee 53 ee eee ee ae paa ee eee 54 dai dios es 55 Ei RC ere 58 Simulated Power Fail Test 59 System Shutdown Test o o 61 pd a aa 61 coud a Oe Gaye podas 62 Monitoring and Tuning your UPS 2 66 bee eae SRU gee ete ss ae 66 69 69 70 a ee aaa RR q ae Ea 94 e E E as 94 E ree 96 e e ae 99 cad Be cap 99 a kb a ace ee 100 Network Problems with Master Slave or Server Slave Configurations 101 eee eine nae ae 104 ng VN ate eos Ae ee eee 2s 104 ai dl ae pede oe a eee
73. IS based approach because the master knows nothing about the slaves thus there are fewer configuration files to keep in sync I also like the flexibility of allowing each slave to make its own decision on when to shut down some of my old clunker servers take quite a long while to shut down There are problems reported occasionally with the M S approach where slaves sometimes lose contact with the master or vice versa I know improvements have been made in that code but I still like the simplicity of using NIS Another thing to think about is how you feel about running a network service like NIS on your firewall My network is set up almost identically to yours and I chose to run the apcupsd master on a server in the DMZ and have the firewall just be a client of it That way I don t have to run NIS on the firewall apcupsd instance apcupsd conf v1 1 UPSCABLE ether UPSTYPE net LOCKFILE var lock DEVICE server network address 3551 UPSCLASS standalone UPSMODE disable NETTIME 10 where on the DEVICE directive you replace the server network address with the fully qualified domain name or IP address of a machine running apcupsd with NIS enabled and normally but not required connected to a UPS The 3551 that follows the NIS server address is the port to use The default is 3551 but older versions of apcupsd used port 7000 Please do not confuse this NIS server slave mode with the old master slave network configuration
74. If you have a UPS that communicates via serial port you need to do two things before you can even think about configuring the software First you need to figure out whether it s a dumb voltage signalling UPS or speaks the apesmart protocol see this discussion see fupstypes Second if you have an interface cable from APC you need to figure out what kind it is If you don t have such a cable you need to build one A straight through serial cable won t work see Crazy According to Bill Marr the Belkin F5U109 also sold as F5U409 also works with apcupsd for kernel versions 2 4 25 or higher and kernels 2 6 1 and higher These newer kernels are needed to have the patch that makes the mct_u232 Magic Control Technology module and other adapters work with RS 232 devices that do not assert the CTS signal Connecting a Serial Line UPS to a USB Port By using a special adaptor you can connect your serial line UPS to a USB port If you would like to free up your serial port and connect your existing serial port UPS to a USB port it is possible if you have one of the later kernels You simply get a serial to USB adapter that is supported by the kernel plug it in and make one minor change to your apcupsd conf file and away you go Kern adds Thanks to Joe Acosta for pointing this out to me The device that Joe Acosta and Kern are using is IOgear GUC232A USB 2 serial adapter Bill Marr informs us that it also works with a Back UPS Pro 650 and
75. LITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR OR CORRECTION IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY MODIFY AND OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE BE LIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR IN ABILITY TO USE THE PROGRAM INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES Linux Kernel Info Linux Kernel Config A typical USB section of a config file might be USB support CONFIG_USB m CONFIG USB DEBUG y Miscellaneous USB options CONFIG_USB_DEVICEFS y CONFIG_USB_BANDWIDTH is not set CONFIG_USB_DYNAMIC_MINORS is not set USB Host Controller Drivers 192 CONFIG_USB_EHCI_HCD is not set CONFIG_USB_OHCI_HCD is not set CONFIG_USB_UHCI_HCD m USB Device Class drivers CONFIG_USB_BLUETOOTH_TTY is not set CONFIG_USB_ACM is not set CONFIG_USB_PRINTER is not set CONFIG_USB_STORAGE m CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_DATAFAB is not set CONFIG_USB_STORAGE_FREECOM is not se
76. MP UPSes in this manual for more details LOCKFILE lt path to lockfile gt This option tells apcupsd where to cre ate a lockfile for the USB or serial port in the specified directory This is important to keep two programs from reading or writing the port at the same time Please note that although the directive name is LOCKFILE you are actually specifying the lock file path apcupsd au tomatically appends the name of the device when creating the file On most systems this directive is automatically set by the configure program You may also explicitly set it during the build process by using the with lock dir option of the configure program 152 Configuration Directives Used by the Network Information Server None of these directives are required for proper operation of apcupsd NETSERVER on off This configuration directive turns the network information server on or off If it is on apcupsd will spawn a child pro cess that serves STATUS and EVENTS information over the network This information is currently used by the Web based CGI programs The default is on In some cases for added security you may want to invoke a separate information server daemon from the inetd daemon In that case NETSERVER should be off NISIP lt IP address gt This directive specifies the IP address of the net work interface on which the NIS server will listen for incoming con nections Default value is 0 0 0 0 which means the NIS will li
77. Master Slave or Server Slave Con figurations When working with a master slave or server slave configurations one UPS powering more than one computer the master server and slave commu nicate via the network In many configurations apcupsd is started before the network is initialized In this case it is possible that the master will be unable to contact the slave On apcupsd versions prior to 3 8 0 this could cause apcupsd to error off The solution to this problem is to either force apcupsd to be started after the network and the DNS fiddle the sym bolic links in etc rc d or put the names of the slave machines in your etc hosts file or even more preferable use IP addresses rather than ma chine names On some configurations you may need to use fully qualified names host domain xxx rather than simple host names Error Messages from a Master Configuration In a master slave configuration you can get the following error messages from a master The error message is followed by a possible explanation Cannot resolve slave name XXX To contact the slave the slave name given in the configuration file must be resolved to an IP address In this case apcupsd could not get the IP address Either the slave name is incorrect your DNS may not be working or you have started apcupsd during the boot process before the network is operational 101 Got slave shutdown from SSS This message should not be printed as it is not yet used Can
78. NETSERVER ON 3 If you build with pthreads disabled you have the choice of using apcnisd or the NETSERVER code If you wish to use apcnisd you must set NETSERVER OFF 4 If you build with pthreads disabled and you do not use apcnisd you must set NETSERVER ON if you wish to have network in formation from apcupsd 93 Concerning the names one sees with ps 1 With pthreads enabled on Linux machines you will see multiple copies of apcupsd running but they will all be called apcupsd rather than apcmain apcser They will still run as LWP but we are unable to set the names on threads LWP Note though ps shows multiple copies of apcupsd running it is really one memory image but with multiple threads 2 With pthreads disabled we are able to set the child process names at least on Linux so you will see apcmain apcser apcnis in the ps output In this case they are really different processes each with its own memory image the code image is most likely shared Apcupsd Bugs Unfortunately it seems that every program has some bugs We do our best to keep the bugs to a minimum by extensive testing However because of our inherent nature to occasionally overlook things and the fact that we don t have all the UPS models nor the APC documentation on those models apcupsd will have some bugs As the bugs become known to us we will post them on the bug tracking system at SourceForge Advanced topics
79. OM serial connec tion only and enter in TTY mode with the UPS Here we describe how to use it for a USB or apcsmart UPS see Using apctest on Serial Line UPSses for a description of how to use it with a voltage signalling UPS Shutdown apcupsd if it is running Make sure your etc apcupsd apcupsd conf file has UPSTYPE smart and UP SCABLE has one of the smart cables that are supported Normally apctest will have been built but not installed so you must execute it from the lt apcupsd source gt src directory You can explicitly build it on Unix with 62 cd lt apcupsd source directory gt make apctest apctest or on Windows systems with make apctestwin32 apctest It will read your installed apcupsd conf configuration so it knows where to find the UPS and then it will present you with the following output 2003 07 07 11 19 21 apctest 3 10 6 07 July 2003 redhat Checking configuration Attached to driver apcsmart sharenet type DISABLE cable type CUSTOM SMART You are using a SMART cable type so I m entering SMART test mode mode type SMART Setting up serial port Creating serial port lock file Hello this is the apcupsd Cable Test program This part of apctest is for testing Smart UPSes Please select the function you want to perform 1 Query the UPS for all known values 2 Perform a Battery Runtime Calibration 3 Abort Battery Calibration 4 Monitor Battery Calibration progress 5 Pro
80. On the right side of the front display panel there is a vertical graph of five LEDs Each LED is an indica tion of battery charge in increments of twenty percent 20 40 60 80 100 bottom to top For example if the battery charge is 99 then only four of the five LEDs are illuminated To ensure that an operating system receives a graceful shut down when using PowerChute plus or a SmartSlot accessory an alert is generated by the Smart UPS indicating that the UPS has reached a low battery condition The alert is audible rapid beeping visual flashing battery LED or LEDs and readable through the graphical interface of PowerChute plus software or a native UPS shutdown program within a particular operating system In order to calculate this low battery condition all Smart UPS products have a preconfigured low battery signal warning time of two minutes this is the factory default set ting There are a total of four user changeable settings 2 5 7 or 10 minutes If the low battery signal warning time is set for 2 minutes then the alerts will activate simultaneously two minutes prior to shutdown Similarly if the total runtime for a particular UPS is 30 minutes with a low battery signal warning time set at 10 minutes then the UPS will run on battery for 20 minutes before the low battery alert begins Total runtime is primarily based on two factors battery ca pacity and UPS load UPS load and runtime on battery are inverse
81. PS and Computer B you could use the following configuration configure prefix HOME apcupsd bin sbindir HOME apcupsd bin enable cgi with cgi bin HOME apcupsd bin with log dir HOME apcupsd bin with pid dir HOME apcupsd bin sysconfdir HOME apcupsd bin with lock dir HOME apcupsd bin with pwrfail dir H0ME apcupsd bin with serial dev dev ttyS1 enable pthreads with nis port 7001 disable install distdir Note in this case we use considerably more configuration options to ensure that the system files are placed in a different directory SHOME apcupsd bin We have also selected a different serial port and a different NIS Network Information Server port And finally we have used the disable install distdir option which prevents make install from doing the final system installation i e the modification of the halt script since this was previously done Important Steps after Installation of the Second Copy After the make install of the second copy of apcupsd there are a number important steps to complete You must either remove or modify the file HOME apcupsd bin apccontrol so that it will not shutdown Computer A when the battery of UPS 2 is low One suggestion is to copy exam ples safe apccontrol into SHOME apcupsd bin apccontrol Alternatively you could edit the SHOME apcupsd bin apccontrol and delete all state ments that attempt to shutdown the machine Another import
82. PS is attached to Then sync and shutdown the system normally reattach the UPS and reboot This should solve the problem However we have some reports that recent versions of 42 Solaris 7 amp 8 appear to have removed this eeprom option and there seems to be no way to suppress the serial port probing during boot At this point you should have a complete installation The daemon will load automatically at the next boot Watch for any error messages during boot and check the event logs im etc apcupsd If everything looks OK you can try testing the package by removing power from the UPS NOTE if you have a voltage signalling UPS please run the first power tests with your computer plugged into the wall rather than into the UPS This is because dumb serial port UPSes have a tendency to power off if your configuration or cable are not correct As a user your input is very helpful in solving problems with the package and providing suggestions and future directions for the development of the package We are striving to provide a useful package that works across all platforms and welcome your feedback Best regards and thanks for your interest and help The Apcupsd Develop ment Team Unknown System During the configure if apcupsd does not find one of the systems for which it has specific installation programs it will set the Operating System to unknown and will use the incomplete installation scripts that are in lt src gt d
83. S AMBTEMP is the ambient temperature as measured by the UPS EXTBATTS is the number of external batteries as defined by the user A correct number here helps the UPS compute the remaining runtime more accurately BADBATTS is the number of bad battery packs FIRMWARE is the firmware revision number APCMODEL is the old APC model identification code END APC is the time and date that the STATUS record was written Logging the STATUS Information If specified in the configuration file the STATUS data will also be written to the system log file Please note that it would not normally be wise to write this data to a normal system log file as there is no mechanism in syslog to rewind the file and hence the log file would quickly become enormous However in two cases it can be very useful to use syslog to write this information The first case is to set up your syslog conf file so that the data is written to a named pipe In this case normally not more than about 8192 bytes of data will be kept before it is discarded by the system The second case is to setup your syslog conf file so that the status data is sent to another machine which presumably then writes it to a named pipe Consequently with this mechanism provides a simple means of networking apcupsd STATUS information Although we mention system logging of STATUS information we strongly recommend that you use apcaccess or the CGI interface to get this informa tion 16
84. S Custom ShareUPS Advanced Port 940 0024C BackUPS CS USB Pro USB ES USB RS XS usb usb note 1000 RS XS 1500 and probably other USB using APC models cables 940 0127A B C SmartUPS USB BackUPS Office USB and usb note us ing APC cable no number All SNMP capable models ether any other USB UPS 15 BackUPS simple note using Simple Custom This cable is not an APC product You have to build it your self using the instructions in Cables 940 0020B 940 0020C 940 0119A 940 0023A BackUPS Office BackUPS ES 940 0119A BackUPS CS and possibly ES models serial 940 0128A mode ShareUPS Basic Port dumb 940 0020B 940 0020C 940 0023A Choosing a Configuration Type There are three major ways of running apcupsd on your system The first is a standalone configuration where apcupsd controls a single UPS which powers a single computer This is the most common configuration If you re working with just one machine and one UPS skip the rest of this section Your choices become more interesting if you are running a small cluster or a big server farm Under those circumstances it may not be possible or even desirable to pair a UPS with every single machine apcupsd supports some alternate arrangements The second type of configuration is a master slave configuration where one UPS powers several computers each of which runs a copy of apcupsd The computer that controls the UPS is called the mast
85. S Product USB UHCI Root Hub S SerialNumber dce0 C Ifs 1 Cfg 1 Atr 40 MxPwr OmA I If O Alt O EPs 1 Cls 09 hub Sub 00 Prot 00 Driver hub E Ad 81 I Atr 03 Int MxPS 8 Ivl 255ms T Bus 00 Lev 01 Prnt 01 Port 00 Cnt 01 Dev 2 Spd 12 MxCh 4 D Ver 1 00 Cls 09 hub Sub 00 Prot 00 MxPS 8 Cfgs 1 P Vendor 0451 ProdID 1446 Rev 1 00 207 C I E T D P C I E T D P S S C I E E E Ifs 1 Cfg 1 Atr e0 MxPwr 100mA If O Alt O EPs 1 Cls 09 hub Sub 00 Prot 00 Driver hub Ad 81 I Atr 03 Int MxPS 1 Ivl 255ms Bus 00 Lev 02 Prnt 02 Port 00 Cnt 01 Dev 3 Spd 1 5 MxCh 0 Ver 1 00 Cls 00 gt ifc Sub 00 Prot 00 MxPS 8 Cfgs 1 Vendor 04b4 ProdID 0001 Rev 0 00 Ifs 1 Cfg 1 Atr 80 MxPwr 100mA If O Alt O EPs 1 Cls 03 HID Sub 01 Prot 02 Driver mouse Ad 81 I Atr 03 Int MxPS 3 Ivl 10ms Bus 00 Lev 02 Prnt 02 Port 02 Cnt 02 Dev 4 Spd 12 MxCh 0 Ver 1 00 Cls 00 gt ifc Sub 00 Prot 00 MxPS 8 Cfgs 1 Vendor 0565 ProdID 0001 Rev 1 08 Manufacturer Peracom Networks Inc Product Peracom USB to Serial Converter Ifs 1 Cig 1 Atr a0 MxPwr 100mA If O Alt O EPs 3 Cls 00 gt ifc Sub 00 Prot 00 Driver serial Ad 81 I Atr 02 Bulk MxPS 64 Ivl 16ms Ad 01 0 Atr 02 Bulk MxPS 16 Ivl 16ms Ad 82 I Atr 03 Int MxPS 8 Ivl 8ms Selecting only the T and I lines from this for example by using procusb ti we have HAHAHHA Bus 00 Lev 00 Prnt 00 Port 0
86. S 1500 FW 8 g6 D USB FW g6 rev 1 10 Note that the ugen driver is called out If you see uhid instead it probably means you did not properly disable the uhid driver when you compiled your kernel or perhaps you re not running the new kernel You can also check with usbdevs d to get a list of USB devices recognized by the system as well as the drivers they are associated with For example 25 usbdevs d addr 1 UHCI root hub VIA uhubO addr 2 Back UPS RS 1500 FW 8 g6 D USB FW g6 American Power Conversion ugen0 Device Nodes Apcupsd communicates with the UPS through the USB generic device ugen You may or may not need to manually make ugen device nodes in dev depending on what OS you are using FreeBSD No manual intervention needed FreeBSD automatically creates the ugen nodes on demand NetBSD By default NetBSD only creates nodes for the first ugen de vice ugen0 Check usbdevs d to see which device your UPS was bound to and then create the appropriate node by running cd dev MAKEDEV ugenN where ugenN is the ugen device name shown by usbdevs It is probably a good idea to create several sets of ugen nodes in case you add more USB devices OpenBSD Similar to NetBSD OpenBSD creates nodes for ugen0 and ugenl Check usbdevs d to see which device your UPS was bound to and then create the appropriate node by running cd dev MAKEDEV ugenN where ugenN is the ugen device name shown b
87. See the Data Logging see DATA Logging section of this manual for more details STATUS Logging Status logging consists of logging all available information known about your UPS as a series of ASCII records This information is also made available by the apcupsd network information server For more details on STATUS logging see the Status see section of the Technical Reference EVENTS Logging Events logging consists of logging events as they happen For example successful startup power fail battery failure system shutdown See the manual section on customizing event handling see Customizing Event Handling for more details Implementation Details In order to ensure that the data logged to syslog can be directed to different files I have assigned syslog levels to each of our four types of data as follows 1 1 DEBUG logging has level LOG_DEBUG 2 2 DATA logging has level LOG INFO 112 3 3 STATUS logging has level LOG NOTICE 4 4 EVENTS logging has levels LOG WARNING LOG_ERR LOG CRIT and LOG ALERT It should be noted that more work needs to be done on the precise definitions of each of the levels for EVENTS logging Currently it is roughly broken down as follows LOG WARNING general information such as startup etc LOG_ERR an error condition detected e g communications problem with the UPS LOG CRIT a serious problem has occurred such as power failure running on UPS batteries LOG
88. TD you must first put an entry in etc services as follows apcnisd 3551 tcp This defines the port number 3551 and the service TCP that apcnisd will be using This statement can go anywhere in the services file Normally one adds local changes such as these to the end of the file Next you must modify etc inetd conf to have the following line apcnisd stream tcp nowait root usr sbin tcpd sbin apcnisd i If you do not want to run the TCP wrapper then the line should be entered as follows not tested apcnisd stream tcp nowait root sbin apcnisd i Please check that the file locations are correct for your system Also note that the i option is necessary so that apcnisd knows that it was called by INETD Before restarting INETD first ensure that the NETSERVER directive in etc apcupsd apcupsd conf is set to off This is necessary to prevent apcupsd from starting a child process that acts as a server If 110 you change NETSERVER you must stop and restart apcupsd for the configuration change to be effective Finally you must restart INE TD for it to listen on port 3551 On a Red Hat system you can do so by etc rc d init d inet reload At this point when a client attempts to make a connection on port 3551 INETD will automatically invoke apcnisd Running apcnisd Standalome This is probably the least desirable of the three ways to run an apcupsd network information server because if apcupsd is stopped you m
89. UPS that will be connected to your computer The default is smartups This option simply sets the appropriate UPS type in the apcupsd conf file which can be changed at any later time with upscable lt path gt This option allows you to specify what cable you are using to connect to the UPS The default is smart This 33 option simply sets the appropriate UPS cable in the apcupsd conf file which can be changed at any later time disable install distdir This option modifies the apcupsd Makefiles dis able installation of the distribution platform directory Generally this used to do a full installation of apcupsd except the final modifica tion of the operating system files normally etc rc d halt etc This is useful if your operating system is not directly supported by apcupsd or if you want to run two copies of apcupsd on the same system This option can also be used by those of you who prefer to manually reboot your system after a power failure or who do not want to modify your system halt files Recommended Options for most Systems For most systems we recommend the following options configure prefix usr sbindir sbin enable usb enable pthreads and you can optionally build and install the CGI programs as follows configure prefix usr sbindir sbin enable usb enable cgi with cgi bin home httpd cgi bin enable pthreads Compilers and Options Some systems require unusual options
90. USTOM SIMPLE cable APCUPSD SIMPLE CUSTOM CABLE Computer Side DB25f DB9f JH ONO 20 BON WOH Description of Cable DTR 5vcc below CTS low battery below RxD no line voltage below Ground Signal CD on battery from UPS RTS kill UPS power 128 UPS Side DB9m DB25m n c 5 7 3 2 4 20 2 3 1 8 n c 1 Frame Case Gnd optional 9 22 Note the lt and gt indicate the signal direction Optional connections of original SIMPLE CUSTOM specification that are not used 4 7K ohm DTR 4 Note needed RxD 20 oterescres ko 52 3 Not used by Apcupsd When using this cable with apcupsd specify the following in apcupsd conf UPSCABLE simple UPSTYPE dumb DEVICE dev ttySO or whatever your serial port is Other APC Cables that apcupsd Supports apcupsd will also support the following off the shelf cables that are supplied by APC e 940 0020B C Simple Signal Only all models e 940 0023A Simple Signal Only all models e 940 0119A Simple Signal Only Back UPS Office and BackUPS ES e 940 0024 B C G SmartMode Only SU and BKPro only e 940 0095 A B C PnP Plug and Play all models e 940 1524C SmartMode Only e 940 0127A B USB Cables e 940 0128A Simple Signal Only Back UPS CS in serial mode 129 Voltage Signalling Features Supported by Apcupsd for Vari ous Cables The following table shows the features supported by the current version of
91. a 48V based or 4 batteries Smart UPS 1250 is a 24V based or 2 batteries Cheers Andre Hedrick Linux ATA Development Finally here is what Carl Erhorn has to say about batteries Hi Folks Well Kern was absolutely right The problem with my UPS was batteries It was unexpected though because there was no indication of a bad battery right up until the UPS failed entirely For those who might encounter the same thing and don t know what s happening I didn t either here s what happened A week or so ago I turned on one of my SmartUPS 700 NET models The load is a small dual P III unix server Solaris 8 X86 and a 4MM tape drive During the normal selftest that runs when you first turn on any APC UPS the UPS freaked out The alarm stuttered at about 4 or 5 beeps per second and all the panel lights flashed spasmodically as if something was loose inside the UPS I turned off the UPS and it s load then turned the UPS on again This time everything seemed fine I booted the system that 83 was attached and there were no problems The status monitor showed 9 minutes runtime which indicates fairly low capacity but the batteries showed fully charged I began to suspect a bad inverter in the UPS However Kern told me that he suspected the batteries So I took the UPS offline put an old SU 600 in it s place just barely big enough to handle the startup peaks I get an overload lamp lit for abou
92. ably not show the names of the processes and will appear more like the following 632 S 0 00 sbin apcupsd f etc apcupsd apcupsd conf 841 S 0 00 _ sbin apcupsd f etc apcupsd apcupsd conf 842 S 0 00 X_ sbin apcupsd f etc apcupsd apcupsd conf If you see only one instance of apcupsd running don t worry about it as this is normal on most non Linux systems and on Linux 2 6 x kernels If you do not find that apcupsd is in the above list the most likely problem is a configuration file glitch If no messages were printed you should check your system log normally var log messages where you will find one or messages indicating the nature of the problem Logging Test Once you have established that the proper processes are running do a tail of the system log file normally var log messages tail var log messages You should see output that looks similar to the following Dec 5 17 01 05 matou apcupsd 5917 apcupsd 3 7 2 startup succeeded And if you have configured the network information server you should also see 54 Dec 5 17 01 05 polymatou apcupsd 5975 apcserver startup succeeded These messages should also appear in the temporary file etc apcupsd apcupsd events if you are using the default configu ration file If you have installed the RPM they will probably be in var log apcupsd events apcaccess Test This test consists of running apcaccess to see if apcupsd is properly updat ing its inte
93. and the system halt script will be placed in appropriate system directories usually subdirectories of etc rc d Verifying a Source Installation There are a number of things that you can do to check if the installation make install went well The fist is to check where the system has installed apcupsd using which and whereis On my Red Hat system you should get the following lines preceded with a indicate what you type which apcupsd sbin apcupsd whereis apcupsd apcupsd sbin apcupsd etc apcupsd etc apcupsd conf etc apcupsd status usr man man8 apcupsd 8 gz usr man man8 apcupsd 8 If you find an apcupsd in usr sbin usr local sbin usr lib or another such directory it is probably a piece of an old version of apcupsd that you can delete If you are in doubt delete it then rerun the make install to ensure that you haven t deleted anything needed by the new apcupsd Please note that the files specified above assume the default installation locations As a final check that the make install went well you should check your halt script in etc rc d on SUSE systems and in etc rc d init d on Red Hat systems to see that the appropriate lines have been inserted in the correct place Modification of the halt script is important so that at the end of the shutdown procedure apcupsd will be called again to command the UPS to turn off the power This should only be done in a power failure situation as indicated by the pre
94. ant step is to find a way to shutdown Computer B when UPS 2 s battery is low Probably 105 the simplest way to do this is to edit HOME apcupsd bin apcupsd conf on Computer A so that this second copy of apcupsd becomes a network master Then install a standard slave configuration on Computer B Please remember that if UPS 1 s batteries are exhausted before UPS 2 s batteries Computer B may not be properly shutdown And at the current time there is no simple means to make the two copies of apcupsd running on Com puter A communicate Thus there are certain risks in such a configuration However these configurations can be very useful for powering electronic equipment and such If Computer B is vitally important it would probably be better to purchase a serial port card for it or perhaps use a USB UPS To ensure that it is properly shutdown if Computer A goes down you could run a second copy of apcupsd on Computer B as a slave connected to the main copy of apcupsd on Computer A Thus Computer B would be running two slaves one driven by the master controlling UPS 1 and the other by the master controlling UPS 2 and Computer B could be shutdown by the first master that signaled it to do so Support for SNMP UPSes To run apcupsd with an SNMP UPS you need the following things e An SNMP UPS for example a Web SNMP AP9716 or PowerNet SNMP AP9605 card installed into the SmartSlot e apcupsd version 3 10 0 or higher e Net SNMP
95. apcupsd 3 8 5 or later for various cables running the UPS in voltage signalling mode Cable Power Loss Low Battery Kill Power Cable Discon nected 940 0020B Yes No Yes No 940 0020C Yes Yes Yes No 940 0023A Yes No No No 940 0119A Yes Yes Yes No 940 0127A Yes Yes Yes No 940 0128A Yes Yes Yes No 940 0095A B C Yes Yes Yes No simple Yes Yes Yes No Voltage Signalling Apparently all APC voltage signalling UPSes have the same signals on the output pins of the UPS The difference at the computer end is due to different cable configurations Thus by measuring the connectivity of a cable one can determine how to program the UPS This is to be verified The signals presented or accepted by the UPS on its DB9 connector using the numbering scheme listed above is UPS Pin Signal meaning 1 lt Shutdown when set by computer for 1 5 seconds 2 gt On battery power this signal is normally low but goes high when the UPS switches to batteries 3 gt Mains down line fail See Note 1 below 5 gt Low battery See Note 1 below 6 gt Inverse of mains down signal See Note 2 below 7 lt Turn on off power only on advanced UPSes only Note 1 these two lines are normally open but close when the appropriate signal is triggered In fact they are open collector outputs which are rated for a maximum of 40VDC and 25 mA Thus the 4 7K ohm resistor used in the Custom Simple cable works quite well 130 Note 2 the same as note 1 e
96. aries typically dd mm yy 31 12 99 C APCC only works if firmware letter from V is later than O CLEAR Cycle forward through possible values from UPS afterward to confirm change Do not use this unless you know how to pro gram your UPS EEPROM or you may damage your UPS Annn Ox7f DEL key NOD Na Oo Matrix UPS and pos sibly Sym metra specific com mands Capability cycle Shutdown after delay p with delayed wakeup of nnn tenths of an hour after r time Abort shutdown use to abort Q S K K Register 1 Register 2 Battery constant 277 277 277 Dip switch positions if applica ble Register 3 Line quality Number of external battery packs attached Run in bypass mode 179 Cycle backward through possible values from UPS afterward to confirm change Do not use this unless you know how to program your UPS EEPROM or you may damage your UPS Matrix 3rd gen UPS OK oth ers OK See below See below Set to AO on SmartUPS 1000 with new battery Prints 35 on SmartUPS 1000 Prints EF on SmartUPS 1000 Prints F9 on SmartUPS 1000 See below See below FF acceptable 00 unaccept able SmartCell models nnn where nnn is how many external packs are connected Non SmartCell units whatever has been set with gt and gt by the user If online BYP is received a
97. at you have chosen has logins enabled You must disable logins on that port otherwise the system prevents apcupsd from using it Normally the file etc inittab specifies the ports for which a getty process is started on Sun machines the serial port program equivalent to getty is called ttymon You must disable this for the port that you wish to use 143 e Make sure you are doing your testing as root otherwise you may have permissions problems accessing the serial port e You may have cabling problems either with an incorrect cable or the incorrect cable specification directive in the configuration file e You may have a problem with the etc apcupsd acpupsd conf file For example check that you have specified the correct type of UPS and the correct networking directives For more details see the After Installation e If you have a SmartUPS 5000 RM 15U or similar model that comes with a Web SNMP management card in one of the Smart Slots this card may interfere with the serial port operation If you are having problems please remove this card and try again Supposedly V3 0 of the card firmware has been corrected to properly release the serial port e Ensure that you have no other programs that are using the serial port One user reported that he had problems because the serial port mouse gpm was using the same port as apcupsd This causes intermittent seemingly random problems e If you are using a WinNT or Win
98. ate annoy messages KES Note that if NOLOGON is set to disable the annoy messages will also be disabled ANNOYDELAY lt time in seconds gt Specify delay time in seconds be fore apcupsd begins requesting logged in users to get off the system during a power failure This timer starts only after the UPS is running on batteries This timer is reset when the power returns The default is 60 seconds Thus the first warning to log off the system occurs after 60 seconds on batteries assuming that NOLOGON is not set to disable NOLOGON lt specifies when apcupsd should prevent user logins gt disable timeout percent minutes always are valid types The type specified allows you define the point when apcupsd will create the etc nologin file and thus when user logins are prohibited Once the etc nologin file is created normal users are prevented from log ging in Control of when this file is created is important for allowing 154 systems with big UPSes to run as normally until the system adminis trator determines the need for preventing user logins The feature also allows the system administrator to hold the ANNOY factor until the etc nologin file is created The default is always if no NOLOGON directive is specified As far as I can tell the only useful types are disable and always since the difference in the time when the logout warning is given and shut down occurs for the other types is very short KES
99. ber that the non SmartUPSes are much simpler and less expensive and therefore produce less information apcaccess eprom The eprom command line option for apcaccess allows you to examine the current values of your UPS EPROM as well as to know the permit ted values that can be set in the EPROM For information about chang 68 ing these values see the section on tuning EEPROM parameters see vonfiguring Your EEPROM A typical output from apcaccess eprom is Valid EPROM values for the SMART UPS 1000 Config Current Permitted Description Directive Value Values Upper transfer voltage HITRANSFER 253 253 264 271 280 Lower transfer voltage LOTRANSFER 208 196 188 208 204 Return threshold RETURNCHARGE 15 00 15 50 90 Output voltage on batts OUTPUTVOLTS 230 230 240 220 225 Sensitivity SENSITIVITY H HMLL Low battery warning LOWBATT 2 02 05 07 10 Shutdown grace delay SLEEP 180 020 180 300 600 Alarm delay BEEPSTATE T OTLN Wakeup delay WAKEUP 60 000 060 180 300 Self test interval SELFTEST 336 336 168 ON OFF Apcupsd Notification and Events When a major event is generated within apcupsd control is passed to the script apccontrol normally found in etc apcupsd apccontrol The event name and a number of other important parameters are passed to the script The major function of the apccontrol script is to performa a shutdown of the system as well as the killpower operation In addition another major task for this script is to notify y
100. cations should not be made to the etc rc d init d halt script since the slave has no connection to the UPS To eliminate the problem on all your slave machines either re store the original halt file or simply delete all the lines containing Fapcupsd which were inserted by the apcupsd installation pro cess Q To test apcupsd I unplugged the UPS to simulate a power outage After the machine went into the shutdown process I plugged the UPS back into the commercial power source This caused the shutdown process to hang after the daemon tried to shut off the ups Have you run into this problem and if so do you have a remedy A Normally once the shutdown process has begun we cannot stop it though there is some code that tries to do so we don t consider it a very good idea how do you stop a shutdown that has killed off half of the daemons running on your system Most likely you will be left 90 with an unusable system In addition when apcupsd is re executed in the halt script after the disks are synced it tries to shut off the UPS power but the UPS will generally refuse to do so if the AC power is on Since we cannot be 100 sure whether or not the UPS will shut off the power we don t attempt to reboot the system if we detect that the power is back as it might then get caught by a delayed power off at least for Smart UPSes Q After running apcupsd for a while I get the following error Serial communications wi
101. cedures will be somewhat different and you should see the section on Testing Serial UPSes see Testing Serial Line UPSes Process Status Test After you start apcupsd execute the following command ps fax or the equivalent for your system If you are running on Linux and using the fork ing version of apcupsd you should something similar to the following output 4492 S 0 00 apcmain f etc apcupsd apcupsd conf 4496 Ss 0 00 _ apcser f etc apcupsd apcupsd conf 4497 S 0 00 _ apcnis f etc apcupsd apcupsd conf This indicates that apcupsd is up and running and has started the two default child processes If you are running with the pthreaded version now the default and 2 4 x kernels you will still see the three processes see below However under 2 6 x kernels the threads do not have independent process ids so everything will be compressed into a single ps line 53 apcmain is the main program that waits until it receives a termination signal SIGTERM or one of the child processes dies apcser is the process that manages the serial port and takes any actions generates events that are necessary as a result of a change of state of the UPS apcnis is the Network information server process that provides EVENTS and STATUS information over the network This information is used by the CGI programs If you are running on a non Linux system or using pthreads on a Linux system recommended your output will prob
102. ces that a connection is established Ioctl to RS232 Correspondence define define define define define define define define define define define define define TIOCM_LE 0x001 TIOCM_DTR 0x002 TIOCM_RTS 0x004 TIOCM_ST 0x008 TIOCM_SR 0x010 TIOCM_CTS 0x020 TIOCM_CAR 0x040 TIOCM_RNG 0x080 TIOCM_DSR 0x100 TIOCM_CD TIOCM_CAR TIOCM_RI TIOCM_RNG TIOCM_OUT1 0x2000 TIOCM_OUT2 0x4000 Testing Serial Line UPSes If you have a serial line UPS there are some tests you should run before the general ones described in the Testing see Testing Apcupsd section To test your computer s connection with a serial line UPS you first need to establish that the serial line is functioning and then that the UPS is responding to commands This can be a bit tricky especially with a dumb voltage signalling interface because it is completely quiescent when there are no commands being passed and the command repertoire doesn t include any self tests Because it is easy to configure a serial cable incorrectly in such a way as 142 to cause premature shutdowns of the UPS power we strongly recommend especially for voltage signaling dumb UPSes that you do most of the ini tial testing with your computer plugged into the wall rather than your UPS Thus if the UPS power is suddenly shut off your computer will continue to run We also recommend using safe apccontrol as described below until you are sure that the signaling is corre
103. cking statuses of the open file descriptors in the parent program are reset as blocking this causes chaos and an almost immediate freezing of the program apcupsd Red Hat Systems Red Hat systems are fully supported and by following the standard instal lation instructions given above you should experience few or no problems Slackware Slackware systems are fully supported and by following the standard instal lation instructions given above you should experience few or no problems 38 SUSE SUSE systems are fully supported and by following the standard installation instructions given above you should experience few or no problems Sun Solaris Please read this before attempting to compile or install the beta software It contains important information that will make your efforts easier If you find bugs or run into problems that seem to be related to the version of Solaris that you run please feel free to contact the maintainers by email or through the development mailing list We ll attempt to help with problems getting the beta running although we can t promise a quick response As always remember testing UPSes can be hazardous to you system and apcupsd may contain bugs that can damage your system and data files You must accept all responsibility for running this software An unexpected power off of a running system can be a disaster As always make backups of any critical information before you instal
104. configure command that you use to create apcupsd you can quickly reset the same customization in the next version of apcupsd by simply re using the same configure command The following command line options are available for configure to cus tomize your installation prefix lt path gt This defines the directory for the non executable files such as the manuals The default is usr sbindir lt path gt This defines the directory for the executable files such as apcupsd The default is sbin You may be tempted to place the executable files in usr sbin or usr local sbin Please use caution here as these directories may be unmounted during a shutdown and thus may prevent the halt script from calling apcupsd to turn off the UPS power Though your data will be protected in this case your system will probably not be automatically rebooted when the power returns enable powerflute This option enables the building of the powerflute executable which is a ncurses based program to monitor the UPS This program is not necessary for the proper execution of apcupsd enable cgi This enables the building of the CGI programs that permit Web browser access to apcupsd data This option is not necessary for the proper execution of apcupsd with cgi bin lt path gt The with cgi bin configuration option allows you to define the directory where the CGI programs will be installed The default is etc apcupsd which is probably not what y
105. ct Also note that if you launch the execution of apcupsd while your voltage signaling UPS is on battery power it is very likely that your UPS will immediately shut off the power This is due to the initialization of the serial port line signals which often looks to the UPS like a shutdown command Finally double check the state of your cabling and UPS indicator lights frequently during testing For voltage signaling UPSes apcupsd is not cur rently able to detect whether or not the serial cable is connected In ad dition some simple signaling UPSes with certain cable combinations are not able to detect the low battery condition For more details please see Voltage Signalling Features Supported by Apcupsd for Various Cables Establishing Serial Port Connection Once you have compiled installed and invoked apcupsd you should wait to allow apcupsd to configure itself and establish contact with the UPS If you see the following message about 30 seconds after starting apcupsd apcupsd FATAL ERROR in apcserial c at line 156 PANIC Cannot communicate with UPS via serial port it means that apcupsd tried for about 30 seconds to establish contact with the UPS via the serial port but was unable to do so Before continuing you must correct this problem Some of the possible sources of the problem are e You have not configured the correct serial port name on the DEVICE directive in your apcupsd configuration file e The serial port th
106. ctioning correctly This case though very unusual can happen at any time even if there is proper mains voltage and etc apcupsd apccontrol emergency is called Just before initiating any shutdown through the apccontrol script apcupsd will create the file etc apcupsd powerfail This file will be used later in the shutdown sequence to recall apcupsd after syncing of the disks to initiate a power off of the UPS If the etc nologin file has not already been created it will normally be created during the shutdown sequence to prevent additional users from logging in see the NOLOGIN configuration directive Even though apcupsd has requested the system to perform a shutdown it continues running If it is a master with slaves it will inform the 169 slaves to do a shutdown They perform their shutdown by calling etc apcupsd apccontrol remotedown e When the system signals apcupsd to do exit it does so This is part of the normal system shutdown at least on Unix and Linux systems and the exact time that apcupsd receives the termination signal depends on how the shutdown links usually in etc re d are set Note that on Windows NT systems apcupsd apparently continues to run as a Service even though the machine is shutdown e During the shutdown of the system after apcupsd has been forced to exit one of the last things done by the system shutdown is to call the halt script which is usually in etc rc d halt or etc rc d
107. ctive is ignored for dumb voltage signalling UPSes To totally disable this counter set BAT TERYLEVEL 1 in your apcupsd conf file MINUTES lt battery runtime in minutes gt If MINUTES is specified during a power failure apcupsd will shutdown the system when the remaining runtime on batteries as internally calculated by the UPS falls below the time specified The default is 3 This directive is 155 ignored for dumb voltage signalling UPSes It should be noted that some UPSes report an incorrect value for remaining runtime when the battery is fully charged This can be checked by examining the TIMELEFT value as printed in the output of an apcaccess status command If the value is zero or otherwise unreasonable your UPS is probably broken In this case we recommend that you disable this timer by setting MINUTES 1 in your apcupsd conf file TIMEOUT lt time in seconds gt After a power failure apcupsd will halt the system when TIMEOUT seconds have expired A value of zero disables this timer Normally for all Smart UPS models and dumb UPSes with cables that support low battery detection this should be zero so that the shutdown time will be determined by the battery level and or remaining runtime see above or in the case of a voltage signalling UPS when the battery is exhausted This command is re quired for dumb UPSes that do not provide a battery exhausted signal only testing can determine this point For more information see
108. cupsd service should appear in the right hand window when you click on Services Local in the left hand menu window That should complete the installation process When the system tray icon turns from a battery into a plug A right click on it and a menu will appear Select the Events item and the Events dialogue box should appear There should be no error messages By right clicking again on the system tray plug and selecting the Status item you can verify that all the values for your UPS are correct When the UPS switches to the battery the battery icon will reappear in the system tray While the UPS is online if the battery is not at least 99 charged the plug icon will become a plug with a lightning bolt in the middle 2 to indicate that the battery is charging Testing It would be hard to overemphasize the need to do a full testing of your installation of apcupsd as there are a number of reasons why it may not behave properly in a real power failure situation Please read Testing Apcupsd of this document for general instructions on testing the Win32 version However on Win32 systems there is no Unix system log file so if something goes wrong look in the file c apcupsd etc apcupsd apcupsd events where apcupsd normally logs its events and you will generally find more detailed information on why the program is not working The most common cause of problems is either im proper configuration of the cable type or an incorrec
109. cupsd to issue the power down command killpower to the UPS immediately before apcupsd initi ates the system shutdown For this reason it is paramount to set your UPS grace time to a value greater than 120 seconds to allow for clean shutdown operations before the UPS removes the power from its plugs To enable correct shutdown operation during powerdown do the following e Connect to your Web SNMP card using your favorite web browser go to the UPS configuration menu and change the Shutdown Delay parameter to 180 seconds or more depending on how much time your system shutdown requires to umount all the filesystems e Change etc rc d apcupsd script adding the kill on powerfail to the apcupsd invocation e Restart your apcupsd With this setup your UPS operations should be safe Alternate Ways To Run The Network Information Server apcupsd maintains STATUS and EVENTS data concerning the UPS and its operation This information can be obtained over the network using either apcnisd or apcupsd s internal network information server which is essentially the same code as apcnisd but compiled into apcupsd Clients on 108 the network make a connection to the information server and send requests for status or events data which the server then transmits to them The information served to the network by this interface should not be confused with master slave mode that shares a UPS between two or more computers That cod
110. d Tweak your etc apcupsd apcupd conf file as necessary Often it will not be 12 9 Change the BIOS settings see Arranging for Reboot on Power Up on your computer so that boots up every time it gets power This is not the default on most systems 10 To verify that your UPS is communicating with your computer and will do the right thing when the power goes out read and follow the instructions in the Testing see Testing Apcupsd section 11 If you run into problems read the Troubleshooting see Troubleshooting Your Installation section of this manual 12 If you still need help send a message to the developer s email list describing your problem what version of apcupsd you are using what operating system you are using and anything else you think might be helpful 13 Read the manual sections on monitoring and maintaining your UPS Supported Operating Systems Please note that due to the lack of Unix USB API standards the USB code in apcupsd works only on Linux and BSD systems In addition at the current release 3 10 17 the USB support for BSD systems can at best be considered BETA due to fragile kernel drivers Drivers for other OSes can be written but it requires someone with a knowledge of the OS and the USB to do so This lack of a Unix USB API interface is one of the big failings of Unix It occurs in other areas such as the GUI Many people tout the diversity as an advantage but it i
111. de of 99 However in this case please be aware that you must ensure proper shutdown of your machine if necessary Some sample scripts onbattery and mainsback that email power failure messages can be found in etc apcupsd after an install or in the plat forms etc directory of the source code Master Slave Configurations If you have two or more computers that are powered by the same UPS and they are connected by a network you can configure apcupsd so that the computer that controls the UPS connected by the serial port or USB port which is called the master can provide information to other machines powered by the UPS called slaves When the master detects a power failure it will notify all the slaves maximum of twenty If the master detects that the battery is low it will also notify the slave so that the slave may perform a shutdown In addition in cases where you wish to keep the master up longer than the slave you can configure the slave to shut down in a predetermined time after the UPS goes on batteries If a picture is worth a thousand words for you please see sonfiguration types Configuration Directives If you are setting up a master slave configuration you will be required to make some modifications to the apcupsd conf files after the build is done The minimum set of configuration directive changes needed to cre ate a proper master and slave configuration files is described in the Configuration Examples
112. der USB host controller drivers virtual root hubs this indicates the driver for newer ones it s a product and vendor description that often comes from the kernel s PCI ID database String info tag SerialNumber ssss Serial Number of this device as read from the device For USB host controller drivers virtual root hubs this is some unique ID normally a bus ID address or slot name that can t be shared with any other device _String info tag S IL Configuration descriptor info C HIfs dd Cfgi dd Atr xx MPwr dddmA pil __MaxPower in mA 205 __Attributes 1 __ConfiguratioNumber __NumberOf Interfaces __ x indicates the active configuration others are Config info tag USB devices may have multiple configurations each of which act rather differently For example a bus powered configuration might be much less capable than one that is self powered Only one device configuration can be active at a time most devices have only one configuration Each configuration consists of one or more interfaces Each interface serves a distinct function which is typically bound to a different USB device driver One common example is a USB speaker with an audio interface for playback and a HID interface for use with software volume control Interface descriptor info can be multiple per Config If dd Alt dd EPs dd Cls xx sssss Sub xx Prot xx Driver ssss __Drive
113. down n wall then exits After com pleting this event apcupsd will immediately initiate a doshutdown event mainsback This event is generated when the mains power returns after a powerout condition The shutdown event may or may not have been generated depending on the paramaters you have defined and the length of the power outage A cancel of a shutdown should never be attempted as it is very unlikely to succeed and will almost surely leave your machine in a indeterminate state Default attempts to cancel the shutdown with a shutdown c not sure about that onbattery This event is generated 5 or 6 seconds after an initial powerfail ure is detected It means that apcupsd definitely considers the UPS to be on batteries The onset of this event can be delayed by the ONBATTERYDELAY apcupsd conf configuration directive Default does a printf Power failure Running on UPS batteries wall then exits offbattery This event is generated when the mains return only if the on battery event has been generated Default does nothing powerout This event is generated immediately when apcupsd detects that the UPS has switched to batteries It may be due to a short power failure an automatic selftest of the UPS or a longer powerfailure In many cases you may want to inhibit the normal message sent emailed by this event to avoid being annoyed by short power failures Default does a printf Warning
114. e shutdown signal Since the NIS slave reads the master s data once per second there should be no shutdown problems and our experience confirms this This question can only be answered by carefully testing the shutdown In this NIS server slave mode the NIS server is a standard stand alone con figuration except that it must have NETSERVER on in the configuration file and have an NISPORT nnn defined Thus any apcupsd running in this mode then becomes the NIS server The NIS slave then uses the net driver to connect to the server s NIS output In this mode the NIS slave decides how often to poll the server for the NIS information The NIS slave s conf file has UPSTYPE net which will invoke the network driver By setting this machine s DEVICE to be server ip server NIS port it will automatically connect to the NIS server and use the server s signals to shutdown the computer In the example net slave configuration file below the slave uses the NIS information provided by the computer tibs on port 3551 apcupsd conf v1 1 UPSCABLE ether UPSTYPE net Specify the server name port where NIS is running 100 DEVICE tibs 3551 LOCKFILE var lock BATTERYLEVEL 5 MINUTES 3 TIMEOUT O ANNOY 300 ANNOYDELAY 60 NOLOGON disable EVENTSFILE etc apcupsd apcupsd events UPSCLASS standalone UPSMODE disable Use this to control the poll time the default is 60 or 1 minute NETTIME 30 Network Problems with
115. e UPS and not the computer or if the computer were turned off RTS is the shutdown signal from the computer A SPACE on this line tells the UPS to shut down RxD and RI are both the power fail signals to the computer A MARK on this line means the power has failed SPACE is a positive voltage typically 12V MARK is a negative voltage typically 12V Linux appears to translate SPACE to a 1 and MARK to a O 134 940 0095B Cable Wiring This diagram is for informational purposes and may not be complete we don t recommend that use it to build one yourself APC Parti 940 0095B Signal Computer UPS DB9F DB9M DIR 4 CTS 8 n DSR 6 DCD 1 GND 5 4 9 RI 9 RxD 2 2 TxD 3 1 4 7K ohm 940 0119A Cable Wiring Ground Common On Battery Kill UPS Power This diagram is for informational purposes and may not be complete we don t recommend that use it to build you build one yourself This cable is used with the BackUPS Office UPSes APC Part 940 0119A UPS pins blue red O Ma WIN RE none brown black yellow Computer pins Signal 4 6 DSR DTR lt 8 9 RI CTS gt 1 2 CD RxD gt 5 Ground 7 RTS lt none 135 Signal meaning Shutdown when set by computer for 1 5 seconds On battery power Low battery Begin signalling on other pins BackOffice ES The BackUPS ES has a st
116. e is described in Configuration Directives for Sharing a UPSJof this documentation There are three different ways to run the information server depending on your requirements and preferences It can be run as 1 a standalone pro gram 2 a standalone program invoked by the inetd daemon or 3 as a thread or child process of apcupsd default configuration We recom mend option 3 unless you have specific reasons to do otherwise Option 3 is what is configured in by default Running the server as a child of apcupsd This is probably the simplest way to run the network information server To do so you simply make sure the NETSERVER directive in etc apcupsd apcupsd conf is on and then stop and restart apcupsd It will automatically create the server thread or spawn an additional child process named apcnis to handle network clients In the case where pthreads are enabled a new thread will be created rather than a child process to handle the network information requests Note the above modification should not be necessary if you use the default apcupsd conf since it is already turned on Although this method is simple it affords no protection from the outside world accessing your network server unless you are behind a firewall In addition if there is a bug in the network server code or if a malicious user sends bad data it may be possible for apcnis to die in which case though it is not supposed to apcupsd may also exit thus leav
117. e lack of serial port communications and broadcast a wall message indicating that the serial port communications was lost Warning communications lost with UPS lost At the same time it sends the same message to the system log and to the temporary EVENTS file etc apcupsd apcupsd events Plug the serial port plug back into your computer and within about 12 seconds apcupsd should reestablish communications and broadcast and log the following message Communications with UPS restored If these messages are logged but not broadcast either you have your mesg permission set to no see man wall or man mesg or there is a problem with apccontrol If you are running a window manager such as GNOME and don t have a console window open you may not re ceive the wall messages However you should find them in your system log file normally var log messages and in the temporary EVENTS file etc apcupsd apcupsd events For example to observe these events in the temporary EVENTS file you might do a tail f etc apcupsd apcupsd events Note if you have installed from the RPM the proper events file may be var log apcupsd events You can find the actual filename by checking your apcupsd conf file before running the test If you do not observe these messages you should correct this problem before 58 proceeding with additional tests Simulated Power Fail Test At this point you should verify that in the event of a power fai
118. e latest copy of the USB Guide can be found at http www linux usb org THE proc bus usb BBB DDD FILES Each connected USB device has one file The BBB indicates the bus number The DDD indicates the device address on that bus Both of these numbers are assigned sequentially and can be reused so you can t rely on them for stable access to devices For example it s relatively common for devices to re enumerate while they are still connected perhaps someone jostled their power supply hub or USB cable so a device might be 002 027 when you first connect it and 002 048 sometime later These files can be read as binary data The binary data consists of first the device descriptor then the descriptors for each configuration of the device That information is also shown in text form by the proc bus usb devices file described later These files may also be used to write user level drivers for the USB devices You would open the proc bus usb BBB DDD file read write read its descriptors to make sure it s the device you expect and then bind to an interface or perhaps several using an ioctl call You 195 would issue more ioctls to the device to communicate to it using control bulk or other kinds of USB transfers The IOCTLs are listed in the linux usbdevice_fs h file and at this writing the source code linux drivers usb devio c is the primary reference for how to access devices through those files Note that since by defa
119. eSubClass __InterfaceClass ___Number0fEndpoints __AlternateSettingNumber InterfaceNumber _Interface info tag A given interface may have one or more alternate settings For example default settings may not use more than a small amount of periodic bandwidth To use significant fractions of bus bandwidth drivers must select a non default altsetting Only one setting for an interface may be active at a time and only one driver may bind to an interface at a time Most devices have only one alternate setting per interface Endpoint descriptor info can be multiple per Interface E l l l l Ad xx s Atr xx ssss MxPS dddd Ivl dddms __Interval max between transfers __EndpointMaxPacketSize __Attributes EndpointType __EndpointAddress I In 0 Out _Endpoint info tag The interval is nonzero for all periodic interrupt or isochronous endpoints For high speed endpoints the transfer interval may be measured in microseconds rather than milliseconds For high speed periodic endpoints the MaxPacketSize reflects 199 the per microframe data transfer size For high bandwidth endpoints that can reflect two or three packets for up to 3KBytes every 125 usec per endpoint With the Linux USB stack periodic bandwidth reservations use the transfer intervals and sizes provided by URBs which can be less than those found in endpoint descriptor If a user or script is interested
120. econd for 10 seconds Then it will present you with the following list of choices 1 Test 1 normal mode 2 Test 2 no cable 3 Test 3 no power 4 Test 4 low battery requires test 3 first 5 Test 5 battery exhausted 6 Test 6 kill UPS power 146 7 Test 7 run tests 1 through 5 8 Guess which is the appropriate cable 9 quit Select test number Run tests 1 2 and 3 Note none of the currently supported cables will indicate a change for test 2 You can then run test 8 to see what cable it thinks you should be using Finally run test 4 apctest can also be run for Smart UPSes The print out of your testing will be written to the file apctest output If you are unable to solve your problem you can try posting that file to the development mailing list and perhaps we can help you In this case please also include information on your operating system which version of apcupsd you are using your UPS model and also your apcupsd conf file Expected apctest Signals for a UPS If you have configured your UPS as UPSTYPE backups UPSCABLE APC 940 0119A or APC 940 O127A or APC 940 01284 or APC 940 0020B or APC 940 0020 here are typical signals you would expect to see in the output from the various tests of apctest Test 1 normal RTS for cables 0119A 0127A 01284 Test 2 no serial cable not important Test 3 no AC power CTS for all cables Test 4 batteries exhausted CTS and CD for all cables Note
121. eeded localhost may be replaced by any machine name fully qualified domain name or IP address which means that apcaccess can access any UPS on the network running the Network Information Server The status command line option of apcaccess will produce a full printout of all the STATUS variables used by apcupsd This can be very helpful for checking the condition of your UPS and to know whether or not apcupsd is properly connected to it For a complete description of the variables and their meanings please read the Status Format see apcupsd Status Logging section of the Technical Reference Please note that if you invoke apcaccess within the first 30 seconds of launch ing apcupsd you will likely get an error message such as APCACCESS FATAL ERROR in apcipc c at line 325 attach_shmarea shared memory version mismatch This is because apcupsd is still in the process of initializing the shared memory segment used to communicate between the two processes There is also a small window of time after which the memory segment is properly initialized but before the UPS has been completely polled If you invoke apcaccess during this period you will get the STATUS output but with many of the values zero The solution is to wait at least 30 seconds after starting apcupsd before launching apcaccess To invoke apcaccess enter apcaccess status For a SmartUPS 1000 apcaccess will emit the following output DATE Fri Dec 03 12 34 26 CET 1
122. ely exhausted and the UPS should be powered off by apcupsd Please be aware that if you do the full power down you must ensure that your UPS is totally powered off Otherwise it may have been given the command to power off but due to a long grace period it is still waiting If you were to reboot your computer during the grace period the UPS could then suddenly turn off the power this happened to me To avoid this problem always wait for your UPS to power itself off or power if off manually before restart ing your computer On my system the UPS is configured as at the factory to have a 180 second grace period before shutting off the power During this type of testing 180 seconds seems like an eternity so please take care to either wait or manually power off your UPS To determine what grace period is programmed into your UPS EEPROM run apcaccess eprom and look at the Shutdown grace delay Shutdown Sequence If you experienced so problems with the above testing procedures or if you are porting apcupsd to another system or you are simply curious you may want to know exactly what is going on during the shutdown process If so please see the Shutdown Sequence see Shutdown Sequence lt 1 gt section of this manual apctest apctest is a program that allows you to talk directly to your UPS and run cer tain low level tests display all know values from the UPS s EEPROM per form a battery runtime calibration program the EEPR
123. ent release this path is hard coded into the binaries The third most common problem is that you did not run the setup bat script after loading the files This is necessary to install apcupsd as a service If all the above fails try starting apcupsd by hand inside a CYGWIN rxvt window if you use an rxvt window rather than a DOS window you will see many more of the error messages In addition most of the apcupsd startup errors are reported in c apcupsd etc apcupsd apcupsd events Many error messages associated with Windows services will be re ported in the Windows System Log When using USB I get the following log messages usb uhci c interrupt status 3 frame 826 What does it mean It means one transfer worked bit 0 in status and another one after that failed bit 1 at time frame 826 This kind of soft error is common on USB and if everything seems to be working you can ignore it apcnisd doesn t work It always gives FATAL ERROR in apcipc c at line 497 attach shmarea shared memory version mismatch or UPS not yet ready to report Unfortunately apcnisd does not work with pthreads enabled You have the following options 1 If you build with pthreads enabled apcnisd will not work no matter what you do 2 If you build with pthreads enabled and you want to have net work information from apcupsd you must set NETSERVER ON This is the configuration we recommend i e using pthreads and
124. epa rate processes apcupsd built in this fashion is more efficient that the standard version being one third the data size and less overhead lock ing and coping shared memory This option is highly recommended for Windows builds with libwrap lt path gt This option when enabled causes apcupsd to be built with the TCP WRAPPER library for enhanced security In most cases the lt path gt is optional since configure will determine where the libraries are on most systems with nologin lt path gt This option allows you to specify where apcupsd will create the nologin file when logins are prohibited The default is etc with pid dir lt path gt This option allows you to specify where apcupsd will create the process id PID file to prevent multiple copies from running The default is system dependent but usually var run 32 with log dir lt path gt This option allows you to specify where apcupsd will create the EVENTS and STATUS log files The default is etc apcupsd This option simply sets the default of the appropri ate path in the apcupsd conf file which can be changed at any later time with lock dir lt path gt This option allows you to specify where apcupsd will create the serial port lock file The default is systemde pendent but usually var lock This option simply sets the appropriate path in the apcupsd conf file which can be changed at any later time with pwrfail dir lt path gt This option al
125. eptable Utility Voltage Change NO 05 Minutes 0x00 Dip Switch N A N A 0x00 Register 3 03 30 95 SERIALNO BATTDATE 13035861 05 05 98 115 0 24 0 N A N A EXTBATTS BADBATTS FIRMWARE APCMODEL Fri Dec 03 16 49 25 EST 1999 N A N A N A 6TD For a simple signaling or dumb UPS such as BackUPS your output will be very minimal as follows APC DATE RELEASE UPSNAME CABLE MODEL UPSMODE STARTTIME LINEFAIL BATTSTAT STATFLAG END APC 001 012 0319 Mon Feb 18 09 11 50 CST 2002 3 8 5 UPS_IDEN APC Cable 940 0128A BackUPS Stand Alone Mon Feb 18 09 11 45 CST 2002 OK OK 0x008 Status Flag Mon Feb 18 09 15 01 CST 2002 56 If you see the above output it is a good sign that apcupsd is working Assuming that the output looks reasonable check the following variables A very disturbing tendance is for some of the newer Mar 2004 RS and ES UPSes to have no Voltage information This is annoying bug not serious On the other hand some of those UPSes now have no battery charge information BCHARGE If BCHARGE is zero in your listing and you are running a Smart or a USB UPS then you will have to set the BATTERYLEVEL directive in your apcupsd conf file to 1 LINEV This is the line voltage and it should be a value that is appropriate for your equipment In the USA it is typically about 120 Volts while in Europe it is about 220 Volts BATTV Unless you have additiona
126. er and the other com puters are called slaves The master copy of apcupsd communicates with and controls the slaves via an Ethernet connection This type of configu ration may be appropriate for a small cluster of machines Some example configuration files for the master and the slave machines can be found in the examples directory of the source distribution The more recent examples 16 are in master apcupsd conf and slave apcupsd conf The third configuration new with version 3 8 3 is where a single computer controls multiple UPSes In this case there are several copies of apcupsd on the same computer each controlling a different UPS One copy of apcupsd will run in standalone mode and the other copy or copies will normally run in master slave mode This type of configuration may be appropriate for large server farms that use one dedicated machine for monitoring and diagnostics Here is a diagram that summarizes the possibilities Configuration types Stand alone configuration Computer running serial or USB cable apesusdin me UM standalone mode LA Typical Master Slave Configuration Computer tunning serial or USB cable apesusd in master mode UPS Ethernet Computer B running apesusd in ower slave mode p Ethernet Computer C running apesusd in slave mode Multi UPS configuration Computer A running e tial or USB cable apesusd s power in slave mode UPS Ethernet ser
127. er for newer ones it s a product and vendor description that often comes from the kernel s PCI ID database String info tag SerialNumber ssss For USB host controller drivers virtual root hubs this is some unique ID normally a bus ID address or slot name that can t be shared with any other device S Serial Number of this device as read from the device String info tag Configuration descriptor info HIfs dd Cfg dd Atr xx MPwr dddmA __MaxPower in mA __Attributes __ConfiguratioNumber 198 Number0fInterfaces __ x indicates the active configuration others are _Config info tag USB devices may have multiple configurations each of which act rather differently For example a bus powered configuration might be much less capable than one that is self powered Only one device configuration can be active at a time most devices have only one configuration Each configuration consists of one or more interfaces Each interface serves a distinct function which is typically bound to a different USB device driver One common example is a USB speaker with an audio interface for playback and a HID interface for use with software volume control Interface descriptor info can be multiple per Config If dd Alt dd EPs dd Cls xx sssss Sub xx Prot xx Driver ssss __Driver name or none InterfaceProtocol __Interfac
128. er to let apcupsd find the device itself Please see USB Configuration for detailed help on setting up your system to work with a USB UPS A Simple Configuration for a SmartUPS If you have a Smart UPS using the cable supplied by APC or you build a CUSTOM SMART cable outlined in the cables chapter a very simple configuration file would look like the following tt apcupsd conf v1 1 UPSCABLE smart UPSTYPE smartups DEVICE dev ttySO LOCKFILE var lock UPSCLASS standalone UPSMODE disable Normally you would have many more configuration directives to completely customize your installation but this example shows you the minimum re quired A Simple Configuration for a Simple Signaling or Dumb If you have a simple signaling or dumb UPS such as a BackUPS you will need to know exactly what cable you have and specify it on the UPSCABLE 48 directive Please see the list of UPSes versus cables in the beginning of this document for more information The cable number is normally stamped in the plastic at one end of the cable If you specify the wrong cable it is very likely that at the first power failure your computer will be immediately shut down This is an unfortunate consequence of the dumb signaling mode To avoid this first replace etc apcupsd apccontrol with safe apccontrol found in the examples directory then test until everything works correctly Once you have the correct cable be sure to remember to reinstall the cor
129. ers that reserve bandwidth Control and bulk transfers use all other bandwidth including reserved bandwidth that is not used for transfers such as for short packets The percentage is how much of the reserved bandwidth is scheduled by those transfers For a low or full speed bus loosely USB 1 1 90 of the bus bandwidth is reserved For a high speed bus loosely USB 2 0 80 is reserved 197 Device descriptor info amp Product ID info D Ver x xx Cls xx s Sub xx Prot xx MxPS dd Cfgs dd P Vendor xxxx ProdID xxxx Rev xx xx where Ver x xx Cls xx sssss Sub xx Prot xx MxPS dd Cfgs dd __NumberConfigurations __MaxPacketSize of Default Endpoint __DeviceProtocol __DeviceSubClass __DeviceClass __Device USB version _Device info tag 1 D l E where Product revision number Product ID code Vendor ID code P Vendor xxxx ProdID xxxx Rev xx xx Device info tag 2 String descriptor info Manufacturer ssss S Manufacturer of this device as read from the device For USB host controller drivers virtual root hubs this may be omitted or for newer drivers will identify the kernel version and the driver which provides this hub emulation String info tag S Product ssss Product description of this device as read from the device For older USB host controller drivers virtual root hubs this indicates the driv
130. es be put in your etc hosts file so that apcupsd will be able to resolve the machine name during startup and shutdown even if DNS is not running Alternatively you can use IP addresses on the MASTER and SLAVE directives but this is less flexible SLAVE lt name of slave s gt used only in MASTER configuration files Used in master configuration files this is the name of a slave machine that depends on this master There can be a maximum of 20 slaves attached to one master Thus you can specify multiple SLAVE directives in a master configuration file Only one slave name can be specified per SLAVE directive thus for multiple slaves specify multiple SLAVE directives As noted above the master and slaves continue to communicate over the network even after the master has issued a shutdown command to the slaves This is because the master apcupsd continues to run until it receives the shutdown signal from the system This is important to ensure that all the slaves have been properly notified of the shutdown We recommend that the machine names used on the MASTER and SLAVE directives be put in your etc hosts file so that apcupsd will be able to resolve the machine name during startup and shutdown even if DNS is not running Alternatively you can use IP addresses on the MASTER and SLAVE directives but this is less flexible USERMAGIC lt user defined magic gt used only in SLAVE configuration files The USERMAGIC directive is a sort of pas
131. etails Item 6 will initiate a direct communication between your terminal and the UPS at which point you can enter raw UPS commands Please be aware that you should be careful what commands you enter because you can cause your UPS to suddenly shutdown or you can modify the EEPROM in a way to disable your UPS The details of the raw Smart mode UPS commands can be found in the UPS Bible see APC smart protocol chapter of this manual Item 7 will terminate apctest Troubleshooting Your Installation Known Problems with USB UPSes Some Cheaper Models Do Not Have Battery Charge Unfortunately some cheaper USB models do not seem to report BCHARGE in the apcaccess output listing which means with a standard conf file your system will be immediately shutdown To correct this set the BAT TERYLEVEL directive in your apcupsd conf file to 1 Some of these cheaper USB UPSes also do not report the Voltage This is annoying but does not cause the unit to malfunction 64 Reconnection does not clean up the lockfile If either you disconnect the UPS or it disconnects because of some electrical problem it will most certainly reconnect with a different device number Apcupsd will detect this and reconnect properly However apcupsd does not release the old device USB port lock file and create a new one This is not too serious Power Off killpower of UPS Does Not Work Currently as of 3 10 6 the code to power off the UPS works only
132. evel gt percentage and the WAKEUP see WAKEUP lt set wakeup delay gt delay Briefly the RETURNCHARGE specifies what percentage charge the bat tery must have before the power is restored Higher values are recommended in regions where the power goes up and down frequently The WAKEUP delay is a simple time delay Most sites will have both of these at zero or perhaps the RETURNCHARGE set to 15 Please follow the links to the Configuration section of this manual for more information See the EEP ROM see Configuring Your EEPROM of this manual for further details on how to change these EPROM values Shutdown Problems Obviously if your halt script is not properly modified apcupsd will not be able to shut off the power to the UPS and if the power returns before the batteries are exhausted your system will not automatically reboot In any case your machine should have been cleanly shut down Master Slave Shutdown In master slave configurations however the master cannot be 100 percent sure that the slaves have all shutdown before it performs the power off Asa consequence it is possible that the master will shut off the power before the slave has finished shutdown If this is the case the best procedure is to put an appropriate sleep command in the etc apcupsd apccontrol file on the master For example to give the slaves 30 additional seconds to shutdown one would add 172 sleep 30 just after the line that reads dos
133. evelopment tools in your path This includes make the compiler the M4 preprocessor the linker and ar or ranlib If the user you are logged in as can compile and link a C program from a source file then you have all the required tools available You will want to install the executables in a directory that remains mounted during the shutdown Solaris will unmount almost everything except the root directories Since the ability to power the UPS off requires access to the executable programs they need to be in a directory that will never be unmounted And since they should also be in a directory that normal users cannot get into sbin is the default However please be aware that if you want to follow Sun s filesystem conventions you would use the following configure prefix opt apcupsd sbindir etc opt apcupsd sbin sysconfdir etc opt apcupsd with cgi bin opt apcupsd cgi bin The way to setup the sbin directory as the executables directory is to pass configure the sbindir sbin option No other arguments should be required and your setup and platform should be detected automatically by configure Once you have run configure you will need to do a make Once the make has completed with no errors you must su to root to complete the install After the su you may not have a path to the make program anymore In that case you should do the make install step as usr ccs bin make install Once the install completes y
134. f the battery charge percentage BCHARGE drops below this value apcupsd will shutdown your system MINTIMEL apcupsd will shutdown your system if the remaining runtime equals or is below this point MAXTIME apcupsd will shutdown your system if the time on batteries exceeds this value A value of zero disables the feature MAXLINEV is the maximum line voltage since the last STATUS as re turned by the UPS MINLINEV is the minimum line voltage since the last STATUS as re turned by the UPS OUTPUTV is the voltage the UPS is supplying to your equipment SENSE is the sensitivity level of the UPS to line voltage fluctuations DWAKE is the amount of time the UPS will wait after a power off condi tion when the power is restored DSHUTD is the grace delay that the UPS gives after receiving a power down command from apcupsd before it powers off your equipment DLOWBATT is the remaining runtime below which the UPS sends the low battery signal At this point apcupsd will force an immediate emergency shutdown 166 LOTRANS is the line voltage below which the UPS will switch to batter les HITRANS is the line voltage above which the UPS will switch to batteries RETPCT is the percentage charge that the batteries must have after a power off condition before the UPS will restore power to your equip ment STATFLAG is a status flag indicating the UPS status See STATUS ITEMP is the internal UPS temperature as supplied by the UPS ALARM
135. for constructing this cable was discovered and transmitted to us by slither man Many thanks 126 Voltage Signalling Cable for dumb UPSes NOTE YOU DO NOT HAVE THIS CABLE UNLESS YOU BUILT IT YOURSELF THE SIMPLE CUSTOM CABLE IS NOT AN APC PRODUCT For dumb UPSes using voltage signalling if you are going to build your own cable we recommend to make the cable designed by the apcupsd team as follows SIMPLE CUSTOM CABLE Signal Computer UPS DB9F 4 7K ohm DB9M DTR 4 DTR set to 5V by Apcupsd CTS GB Assien ias RS SS 5 Low Battery GND DY a SS 4 Ground DCD di esa es 2 On Battery RTS T PERRAS RARE 1 Kill UPS Power List of components one needs to make the Simple cable 1 One 1 male DB9 connector use solder type connector only 2 One 1 female DB9 25F connector use solder type connector only 3 One 1 4 7K ohm 1 4 watt 5 resistor 4 resin core solder 5 three 3 to five 5 feet of 22AWG multi stranded four or more con ductor cable 1 Solder the resistor into pin 4 of the female DB9 connector 2 Next bend the resistor so that it connects to pin 8 of the female DB9 connector 3 Pin 8 on the female connector is also wired to pin 5 on the male DB9 connector Solder both ends 4 Solder the other pins pin 5 on the female DB9 to pin 4 on the male connector pin 1 on the female connector to pin 2 on the male connec tor and pin 7 on the female connector to pin 1 on the
136. g the operation of the UPS For the definitive definition of the format see log data im apcreports c The format varies according to the UPS model and the information available from the UPS For UPS models NBKPRO SMART SHARESMART and MATRIX the output is written in a format very similar to what PowerChute writes That is MinLineVoltage MaxLineVoltage Output Voltage Bat tery Voltage LineFrequency LoadPercent UPSTempera ture Ambient Temperature Humidity LineVoltage BatteryCharge toggle Any value that is not supported by your UPS such as Ambient Temperature and Humidity will be blank or possibly as 0 0 In any case the commas before and after that field will still be output The toggle value alternates from O to 1 on each line This was added at user request so that no two adjacent samples are identical An actual example from the log file is Nov 2 12 43 05 matou apcupsd 23439 224 9 227 5 226 2 27 74 50 00 100 Technical Reference Configuration Directive Reference Configuration directives in etc apcupsd apcupsd conf control the behavior of the apcupsd daemon For most installations it is only necessary to set a handful of general directives The rest can be left at their defaults unless you have an exotic configuration General Configuration Directives In general each of these directives is required ecept that the DEVICE directive is ignored for UPSCABLE ether 151 0 30 6 226 2 50 0 1 UPSTYPE lt
137. g FAQ 137 Areas Problem 118 Arranging for Reboot on Power Up 4 Back UPS Office 500 signals 131 Bad APC magic from master MMM 103 Bad user magic from master MMM 103 BADBATTS 68 Basic User s Guide I BATTDATE 168 BATTDATE lt string gt 63 Batteries What Various People Have to Say about 81 Where Carl Suggests You Get El BATTERYLEVEL lt percent of battery gt 155 BATTV 5J BCHARGE 166 BEEPSTATE lt alarm state gt 162 Beginners Quick Start for 11 Bits Status 130 BSD beep 211 Known USB Issues USB Configuration 24 USB Device Nodes USB Kernel Configuration 25 USB Platforms and Versions 24 Verifying USB Device Detec tion and Driver BSD USB Configuration 24 Bugs Apcupsd 94 Building and Installing apcupsd 26 Building the Win32 Version from the Source 122 Building with SNMP support 07 CABLE 165 Cables Analyses of APC 131 Internal Apcupsd Actions for Simple 139 Supported 4 Voltage Signalling Features Supported by Apcupsd for Various 130 Cables 24 Caldera 190 Cannot bind local address proba bly already in use 02 Cannot open stream socket 102 Cannot read magic from slave SSS 102 Cannot resolve master name MMM 102 Cannot resolve slave name XXX 101 Cannot write to slave SSS CGI and HTML fixer 189 changeme 96 Checking Out Your Linux USB Subsystem 19 C
138. g facility gt The facility directive can be used to change the system logging class or facility The default is DAEMON This parameter can be useful if you wish to direct the apcupsd system logging information to other than your system default files See the Logging section of this manual for additional details Configuration Directives for Sharing a UPS The following directives apply to the master slave networking mode of apcupsd where multiple machines can be powered by the same UPS One machine the master will have a serial port connection to the UPS and the other machines the slaves will obtain their information via the network from the master 157 Note as of version 3 10 x the old master slave code is by default turned off in the configuration You must explicitly enable it by including a enable master slave option on your configure command before building the source In addition to the old master slave code there is now a new network driver enabled with enable net default disabled that can be used to control a slave from any version of apcupsd running NIS This is a much more flexible system of controlling slaves because a slave machine that also has NIS turned on can thus act as a master for another slave with enable net turned on With this mode turned on the slave obtains the address of the master from the DEVICE directive which takes the form hostname port as a consequence none of the directives apply for thi
139. gestion e If all else fails make sure your system is configured for serial port support e If you are running Linux check your proc file system For ex ample cat proc devices should print something like 4 ttyS if you have a serial port If your serial port is working a cat proc interrupts should show the serial port usage e g 4 294553 XT PIC serial Also cat proc ioports should show up some thing like 03f8 03ff serial auto Or cat proc tty should print a line like serial dev ttyS 4 64 127 serial Finally a cat proc tty driver serial should print something like the following serinfo 1 0 driver 5 05c revision 2001 07 08 O uart 16550A port 3F8 irq 4 baud 9600 tx 1503168 rx 1461721 fe 8 The first thing to do is to look at your log file usually var log messages because apcupsd writes more detailed information to the log file whenever there is an error If you have a UPS that uses apcsmart protcol see table of types see for a list of the UPSes using these protocols you can manu ally test the serial communications with the UPS by starting a serial port communications program such as minicom tip or cu with the settings 2400 8N1 2400 baud 8 bits no parity 1 stop bit Be extremely careful what you send to your UPS as certain characters may cause it to power down or may even cause damage to the UPS Try sending an upper case Y to the UPS without a return at the end It should respond with SM If this is not t
140. gi bin or load them manually The default directory for installation of the CGI programs is etc apcupsd which is not really where you want them if you are going to use them Normally they should go in the cgi bin of your Web server Once built and loaded they will give you the status of your UPS or UPSes over the network Normally only multimon cgi is directly invoked by the user However it is possible to directly invoke upsstats cgi and upsfstats cgi upsimage cgi should never be directly invoked as it is used by upsstats cgi to produce the bar charts Setting up and Testing the CGI Programs Before using multimon and the other CGI programs first ensure that apcupsd is configured to run the Network Information Server This is done by setting NETSERVER on in etc apcupsd apcupsd conf This switch is on by default If you are unsure of its state see the section at the end of this chapter concerning the Client test program Next you must edit the hosts file etc apcupsd hosts conf and at the end add the name of the hosts you want to monitor and a label string for them Kern Sibbald uses multimon conf unmodified from what is on the source distribution However he has modified the hosts conf file to contain the following three lines MONITOR matou Server MONITOR polymatou Backup server 70 MONITOR deuter Disk server matou polymatou and deuter are the network names of the three machines currently running apcupsd Please
141. gram EEPROM 6 Enter TTY mode communicating with UPS 7 Quit Select function number 1 Item 1 will probe the UPS for all values known to apcupsd and present them in rather raw format This output can be useful for providing technical support if you are having problems with your UPS Item 2 will perform a Battery Runtime Calibration This test will only be performed if your battery is 100 charged Running the test will cause the batteries to be discharged to approximately 30 of capacity The exact number depends on the UPS model In any case apctest will abort the test if it detects that the battery charge is 20 or less 63 The advantage of doing this test is that the UPS will be able to recalibrate the remaining runtime counter that it maintains in its firmware As your batteries age they tend to hold less of a charge so the runtime calibration may not be accurate after several years We recommend that perform a Battery Calibration about once a year You should not perform this calibration too often since discharging the batteries tends to shorten their lifespan Item 3 can be used to abort a Battery Calibration in progress if you some how became disconnected Item 4 can be used to restart the monitoring of a Battery Calibration if you should some how become disconnected during the test Item 5 is used to program the EEPROM Please see the sonfiguration Directives Used to Set the UPS EPROM chapter of this manual for the d
142. h occasionally The tools apcupsd gives you to do this include one command line utility apcaccess and a GUI you can use through a Web browser You can also use apctest to tune some parameters of the UPS itself apcaccess apcaccess is a program normally found in sbin apcaccess that permits you to print out the complete status of your UPS Although there are a number of command line arguments eprom reconfig status slave shutdown all except eprom and status are under development and hence do not work reliably If you have built apcupsd with pthreads enabled default apcaccess will use the Network Information Server to obtain the necessary information for the status and eeprom commands This is because in the pthreaded version there is no IPC shared memory In this case pthreads enabled you can specify a second optional argument to apcaccess in the form of host port where the port is optional The default is localhost 3551 Please note that in versions prior to 3 10 6 the default NIS port was 7000 so if you are mixing versions you will need to take a lot of care to ensure that all components are using the same port To enable the apcupsd Network Information Server which is normally the default you set NETSERVER on NISPORT 3551 in your apcupsd conf file apcaccess status As mentioned above the full form of the command is apcaccess status localhost 3551 66 where only apcaccess status should normally be n
143. hat is sufficiently short that you are sure that the slave will shutdown before the master If the shutdown is done with a poweroff this will also save power so that the master can stay up longer Q How do I ensure that my database server is correctly shutdown A You simply add whatever commands are necessary in the appropriate case statements in etc apcupsd apcecontrol which is a standard script file that is called to actually do the shutdown Alternatively you can add your own script file that will be called before doing the commands in apccontrol Your script file must have the same name as the ap propriate case statement in apccontrol it must be executable and it must be in the same directory as apccontrol Q Ihave Win2k Advanced server and when starting the service get Could not start the Apcupsd Server service on Local Computer Error 1067 The process terminated unexpectedly A The most common error causing your problem is an incorrect serial port specification on your DEVICE directive It should be DEVICE dev com2 On WinNT machines and probably Win2000 machines you MUST use dev com2 unless you modify the behavior of the boot process to prevent Windows from probing the port This is documented in our 92 manual for WinNT Although I imagine it is the same for Win2000 I am not sure The second most common problem is bad placement of the files i e you did not install them in c apcupsd Unfortunately for the curr
144. hat line T Topology etc B Bandwidth applies only to USB host controllers which are virtualized as root hubs D Device descriptor info P Product ID info from Device descriptor but they won t fit 196 together on one line String descriptors Configuration descriptor info active configuration Interface descriptor info Endpoint descriptor info HAN tl proc bus usb devices output format Legend d decimal number may have leading spaces or 0 s x hexadecimal number may have leading spaces or 0 s string S Topology info Bus dd Lev dd Prnt dd Port dd Cnt dd Dev ddd Spd ddd MxCh dd __MaxChildren Device Speed in Mbps __DeviceNumber __Count of devices at this level __Connector Port on Parent for this device Parent DeviceNumber Level in topology for this bus Bus number T o o o o ti l o l o o A 1 _Topology info tag Speed may be 1 5 Mbit s for low speed USB 12 Mbit s for full speed USB 480 Mbit s for high speed USB added for USB 2 0 Bandwidth info B Alloc ddd ddd us xx Int ddd Iso ddd Number of isochronous requests Number of interrupt requests Total Bandwidth allocated to this bus Bandwidth info tag Bandwidth allocation is an approximation of how much of one frame millisecond is in use It reflects only periodic transfers which are the only transf
145. he case review the possible problems listed above If you fat finger the Y and enter y instead no cause for alarm you will simply get the APC copyright notice Once you are sure that serial port communications is working proceed to the next test 145 Using apctest on Serial Line UPSses On an apcsmart serial line UPS apctest will give you access to the battery of low level tests we described in If you have a voltage signalling UPS it enables a different test repertoire which is described here Among other things if you are uncertain about what kind of cable you have you may be able to use apctest to figure that out Shutdown apcupsd if it is running Make sure your etc apcupsd apcupsd conf file has UPSTYPE backups and UP SCABLE simple Normally apctest will have been built and installed by default otherwise you can explicitly build it on Unix with cd lt apcupsd source directory gt make apctest apctest on Win32 systems use make apctestwin32 apctest It will present you with the following output 2001 02 07 04 08 26 apctest 3 8 5 3 January 2002 redhat Checking configuration sharenet type DISABLE cable type CUSTOM SIMPLE mode type BK Setting up serial port Creating serial port lock file Doing prep serial Hello this is the apcupsd Cable Test program This part of apctest is for testing dumb UPSes ones that uses signaling rather than commands Most tests enter a loop polling every s
146. hecking Your Configuration File EA Choosing a Configuration Type 6 Command Line Options Specific to the Windows Version 122 commfailure 96 commok 96 Communications Once you have established se rial 143 Troubleshooting Serial Line Communications Test 58 Compilers and Options B4 Config Linux Kernel Configuration 15 Simple Master 49 Simple Slave 50 Simple USB 47 USB A Variation on the Master Slave BII Configuration 104 Configuration Directive Reference 151 Configuration Directives 99 Configuration Directives for Shar ing a UPS 57 Configuration Directives Used by the Network Information Server 153 Configuration Directives used dur ing Power Failures 154 Configuration Directives used to Control System Logging 157 Configuration Directives Used to Set the UPS EPROM 161 Configuration Examples 47 Configuration Types 16 Configurations Master Slave 99 212 Network Problems with Mas ter Slave or Server Slave 101 Configure Options BI Configuring Your EEPROM 77 Connect to slave SSS failed 102 connected 95 Connecting a APC USB UPS to either a PC USB or Serial Port 124 Connecting a Serial Line UPS to a USB Port 123 Connecting an SNMP UPS 100 Connection Establishing Serial Port 143 Considerations Windows 74 Contributors 189 Controlling Multiple UPSes on one Machine 104 Convention
147. hing with the APC PowerNet MIB driver Previous versions polled the UPS status once per minute leading to significany delays before UPS state changes were recog nized With SNMP trap handling apcupsd monitors the SNMP trap port and will re poll the UPS whenever a trap is received This happens for example when the UPS switches on or off battery In order for this feature to work you must configure your UPS to deliver traps to the server running apcupsd This is generally done by connecting to your SNMP card via a web browser or telnet connection You will need to enter your server s IP address as a trap receiver and make sure trap delivery is enabled 107 Trap catching can lead to problems if you are already running another SNMP trap daemon on your server Only one daemon can listen to the trap port so whichever one is started first will succeed and the others will fail Apcupsd will fall back to polling behavior if it is unable to open the trap port You can also forcibly disable trap catching by setting your vendor string in the apcupsd conf DEVICE directive to APC_NOTRAP Known Problems Currently as of 3 10 0 the code to power off the UPS needs special configu ration The killpower command for SNMP UPSes can not be issued during shutdown as typically at some time during shutdown operations the net work stack is stopped To overcome this problem it is needed to modify the ete rc d apcupsd system control script to tell ap
148. his with the computer powered by the UPS but if you wish to be completely safe you should plug your computer into the wall prior to performing the runtime calibration In that case you will need to artificially load the UPS with light bulbs or other means You should supply a load of about 30 to 35 but not more than 50 You can determine the load by looking at the output of the apcaccess status command while apcupsd is running You should not run the recalibration command more than once or twice per year as discharging these kinds of batteries tends to shorten their life span Status Logging On Serial Line UPSes Serial line UPSes that speak the apcsmart protocol log all of the events described in the Status Format see fapcupsd Status Logging section of the Technical Reference Voltage signalling UPSes on the other hand have a much narrower data channel They can only report a small handful of conditions The following summarizes rather sketchily sorry the data you can expect to get from this obsolete hardware All corrections and additions will be welcome From BackUPS Pro and SmartUPS v s LINEFAIL OnlineStatus BATTSTAT BatteryStatus MAINS LineVoltageState LASTEVNT LastEventObserved BackUPS and NetUPS Simple Signals LINEFAIL OnlineStatus BATTSTAT BatteryStatus 150 DATA Logging This feature is somewhat outdated and not often used Data logging consists of periodically logging important data concernin
149. hutdown in the apccontrol file approximately line 79 depending on your system version Also on a slave machine you do not want to use the modified halt script since it will recall apcupsd which will detect that it is a slave i e no connection to the UPS and will complain that it cannot do the killpower This situation is not harmful just annoying and possibly confusing One possible problem during shutdown can be caused by remnants of old versions Please be sure to delete or rename all prior versions usr local sbin apcupsd or sbin powersc Startup Normally apcupsd is automatically started when your system is rebooted This normally occurs because the startup script apcupsd is linked into the appropriate places in etc rc d On most Linux systems there is a program called chkconfig 8 that will automatically link the startup script This program is invoked by the make install scripts or it is explicitly done for those systems that do not have chkconfig 8 If this is not the case you can either link it in appropriately yourself or explicitly call it from your rc local file The appropriate manual way to startup apcupsd is by executing lt path gt apcupsd start where lt path gt is normally etc rc d or etc rc d init d depending on your system isn t Unix wonderful Using this script is important so that any files remaining around after a power failure are removed Likewise shutting down apcupsd should be d
150. ial or USB cable ee X C te omputer B running apesusd ce s in slave mode ja If you decide to set up one of these more complex configurations see the Advanced Topics see Advanced topics section for details USB Configuration Apcupsd supports USB connections on Linux FreeBSD OpenBSD and NetBSD If you plan to use a USB conenction please read this section in its entirety You can skip this section if your UPS has a serial RS232 C or Ethernet interface or if you are not running one of the platforms listed above 17 Linux USB Configuration Known Linux USB Issues Problem Linux 2 4 series kernels older than 2 4 22 RH 9 RHEL 3 do not bind the USB device to the proper driver This is evidenced by proc bus usb devices listing the UPS correctly but it will have driver none instead of driver hid This affects RHELS among others Workaround Upgrade linux kernel to 2 4 22 or higher Alternately you ap ply the linux 2 4 20 killpower patch and linux 2 4 20 USB reject patch patches to your kernel and rebuild it These patches can be found in the examples directory in the apcupsd source distribution Problem Mandrake 10 0 and 10 1 systems with high security mode enabled running kernel secure kernel use static device nodes but still assign USB minor numbers dynamically This is evidenced by hiddevo USB HID v1 10 Device instead of hiddev96 in dmesg log Workaround Boot standard kernel i
151. ill cause apcupsd to attempt to shutdown the system 30 seconds after it detects a power failure Once this change has been made you must stop and restart apcupsd for the new configuration value to take effect Once again pull the power plug and if all goes as expected apcupsd should attempt to shutdown the system about 30 seconds after it detects the power failure All the messages should be displayed by wall or by the tail f command The precise message is determined by what is printed in etc apcupsd apccontrol for the doshutdown event Though it varies from system to system it will generally be something like Beginning Shutdown Sequence When apcupsd this message prints reconnect the power apcupsd should detect that the power has been restored and attempt to cancel the shutdown IMPORTANT after this test please replace the changed apccontrol and apcupsd conf with the original files 60 System Shutdown Test This is an intermediate test that you can do for all UPS models before doing the Full Power Down Test First modify the etc apcupsd apccontrol file so that in the killpower case the line that re executes apcupsd with the killpower option is commented out The original line probably looks something like APCUPSD killpower when it is commented out it looks like APCUPSD killpower Now when you pull the power plug and either the timer expires or the batteries are exhausted see the next section for mo
152. ill truncate the file to the most recent 10 events Conse quently this file will not grow indefinitely Although we do not rec ommend it you may change these values by editing apcevents c and 153 changing the appropriate defines Be aware that if you set these values to very large numbers apcupsd may make excessive memory demands on the system during the data access and file truncation operations This filename may also be specifed at build time by using the with log dir option of the configure program Configuration Directives used during Power Failures In general none of these directives are required However if you have a voltage signalling dumb UPS with a cable that does not support the Low Battery signal you must set the TIMEOUT directive to force a shutdown Please see the Cables see section of this manual for more details ANNOY lt time in seconds gt Specify the time in seconds between mes sages requesting logged in users to get off the system during a power failure This timer starts only when the UPS is running on batteries The default is 300 seconds 5 minutes apcupsd sends the annoy mes sages by invoking the apccontrol script with the annoyme argument The default is to send a wall message on Unix systems and a popup message in Windows The value of ANNOYDELAY must be greater than the value of ANNOY in order to receive annoy messages this doesn t make sense and means that the default values do not gener
153. ils on all the USB devices in your system including hubs internal and external input devices and UPSes You should get some output back that includes something like this featuring a BackUPS RS 1000 Ver 1 10 Cls 00 gt ifc Sub 00 Prot 00 MxPS 8 Cfgs Vendor 051d ProdID 0002 Rev 1 06 Manufacturer American Power Conversion Product Back UPS RS 1000 FW 7 g3 D USB FW g3 SerialNumber JB0308036505 Ifs 1 Cfg 1 Atr a0 MxPwr 24mA HANNWNVOH The important things to check for are the S lines describing your UPS and and the I line showing what driver is handling it If on the I line Driver is listed as Driver none then you do not have the HID driver loaded or the driver did not attach to the UPS One common cause is having a Linux kernel older than 2 4 22 such as a stock RedHat 9 or RHEL 3 kernel If this is the case for your system please upgrade to at least kernel version 19 Bus 02 Lev 01 Prnt 01 Port 00 Cnt 01 Dev 3 Spd 1 5 MxCh 0 If O Alt O EPs 1 Cls 03 HID gt Sub 00 Prot 00 Driver hid 2 4 22 and try again If you are already running a 2 4 22 or higher kernel please read further for instructions for other possible courses of action For a detailed description of the contents of the proc bus usb files see Interpreting proc bus usb linux 2 4 or Interpreting proc bus usb linux 2 6 as appropriate for your kernel version Here is another example this time featuring a Back UPS 350 Bus 01 Lev
154. in use It reflects only periodic transfers which are the only transfers that reserve bandwidth Control and bulk transfers use all other bandwidth including reserved bandwidth that is not used for transfers such as for short packets The percentage is how much of the reserved bandwidth is scheduled by those transfers For a low or full speed bus loosely USB 1 1 90 of the bus bandwidth is reserved For a high speed bus loosely USB 2 0 80 is reserved 204 Device descriptor info amp Product ID info D Ver x xx Cls xx s Sub xx Prot xx MxPS dd Cfgs dd P Vendor xxxx ProdID xxxx Rev xx xx where Ver x xx Cls xx sssss Sub xx Prot xx MxPS dd Cfgs dd __NumberConfigurations __MaxPacketSize of Default Endpoint __DeviceProtocol __DeviceSubClass _DeviceClass _Device USB version D o o o is Ml o E Ide _Device info tag 1 where Product revision number __Product ID code Vendor ID code P Vendor xxxx ProdID xxxx Rev xx xx Device info tag 2 String descriptor info S Manufacturer ssss Manufacturer of this device as read from the device For USB host controller drivers virtual root hubs this may be omitted or for newer drivers will identify the kernel version and the driver which provides this hub emulation String info tag S Product ssss Product description of this device as read from the device For ol
155. ine UPS you ll have to read about serial installation see Installation on Serial Line UPSes If you need more details about adminis tration for unusual situations such as a master slave or multi UPS setup you ll need to read the section on advanced topics see Advanced topics Fi nally there is a Technical Reference see Technical Reference section which gives full details on things like configuration file directives and event logging formats You should begin by reading the Quick Start see Quick Start for Beginners instructions Basic User s Guide Planning Your Installation Quick Start for Beginners apcupsd is a complex piece of software but most of its complexities are meant for dealing with older hardware and operating systems On current hardware and software getting it running should not be very complicated The following is a help guide to the steps needed to get apcupsd set up and running as painlessly as possible 11 T Check to see if apcupsd supports your UPS and cable see Supported UPSes and Cables Check to see if apcupsd supports your operating system see Supported Operating Systems Plan your configuration type see Choosing a Configuration Type If you have just one UPS and one computer this is easy If you have more than one machine being served by the same UPS or more than one UPS supplying power to computers that are on the same local network you have more choices to
156. ing your machine without shutdown protection In addition since apcupsd is running at root level all threads or any child process will do so also That being said most of us prefer to run the server this way With apcupsd version 3 8 2 and later you may enable the TCP Libwrap subroutines to add additional security In this case access to the network server will be controlled by the statements you put in etc hosts allow 109 Running apcnisd from INETD This is probably the most secure and most desirable way of running the network information server Unfortunately it is a bit more complicated to set up However once running the server remains unexecuted until a connection is attempted at which point inetd will invoke apcnisd Once apcnisd has responded to the client s requests it will exit None of the disadvantages of running it standalone apply since apcnisd runs only when a client is requesting data Note running in this manner works only if you are using the old forking code and have pthreads explicitly turned off The pthreads version of apcupsd does not support the shared memory calls that are necessary for apcnisd to access the internal state of apcupsd An additional advantage of this method of running the network information server is that you can call it with a TCP wrapper and thus use access control lists ACL such as hosts allow See the man pages for hosts allow for more details To configure apcnisd to run from INE
157. init d halt or possibly in sbin init d rc 0 depending on your system If apcupsd was properly installed this standard halt script was modified to in clude a bit of new logic just before the final halt of the system It first tests if the file etc apcupsd powerfail exists and if it does it exe cutes etc apcupsd apccontrol killpower It is this last step that will cause apcupsd to be re executed with the killpower option on the command line This option tells apcupsd to inform the UPS to kill the power This final step is important if you want to ensure that your system will automatically reboot when the power comes back on The actual code used on the Red Hat version is See if this is a powerfail situation if f etc apcupsd powerfail then echo echo echo APCUPSD will now power off the UPS etc apcupsd apccontrol killpower echo echo echo echo fi Please ensure that the UPS has powered off before rebooting Otherwise the UPS may cut the power during the reboot The above code must be inserted as late as possible in the halt script On many systems such as Red Hat all the disk drives were unmounted then remounted read only thus permitting access to the etc files and the apcupsd executable If your system does not explicitly remount the disks you must remount them in read only mode in the code that you add Examples of code fragments that do this can be found in the distributions suse subdirectory
158. ion instruction skipping the part that describes unZipping the binary release After Installation Checking Your Configuration File Once you have installed apcupsd either from a binary package or by building from source your next step should be to inspect your etc apcupsd apcupsd conf file to make sure it is valid You can read the complete reference on configuration directives see Configuration Directive Reference but if you are setting up a normal stan dalone configuration you should only need to check and possibly fix the first three items listed below Your UPSTYPE should be the UPS s protocol type dumb apcsmart usb net snmp or ether Your UPSCABLE should be the type of cable you are 44 using You should have gotten both from the table of types seeftype table usually they will both be the string usb If you have a USB device it is better not to specify a DEVICE direc tive by commenting it out Apcupsd will automatically search for your device in the standard places If you specify a DEVICE it should be the name of the device or device range that apcupsd is to use to commu nicate with the UPS If you re using a USB UPS under Linux you may leave the device name field blank and apcupsd will search all the stan dard locations for the UPS You may also explicitly specify the device lo cation as either dev usb hid hiddev 0 15 on non Red Hat systems or dev usb hiddev 0 15 on Red Hat systems but
159. is written as two records the first record and all the other records together In reading the file it can be either be read a record at a time or in one big read When this data is written to syslog it is written a record at a time The first record is the first 24 bytes By having the number of records and the size in the first record the complete status can be reliably reassembled Status Report Example An example of output from an international SmartUPS 1000 follows DATE Wed Sep 27 17 30 23 CEST 2000 HOSTNAME polymatou sibbald com RELEASE 3 7 3 20000925 CABLE Custom Cable Smart MODEL SMART UPS 1000 UPSMODE Stand Alone STARTTIME Wed Sep 27 10 39 23 CEST 2000 UPSNAME UPS IDEN STATUS ONLINE LINEV 235 3 Volts LOADPCT 9 3 Percent Load Capacity BCHARGE 100 0 Percent TIMELEFT 130 0 Minutes MBATTCHG 5 Percent MINTIMEL 3 Minutes MAXTIME O Seconds MAXLINEV 239 2 Volts MINLINEV 234 0 Volts OUTPUTV 236 6 Volts SENSE High DWAKE 000 Seconds DSHUTD 020 Seconds DLOWBATT 02 Minutes LOTRANS 196 0 Volts HITRANS 253 0 Volts RETPCT 000 0 Percent 164 ITEMP 32 8 C Internal ALARMDEL 5 seconds BATTV 27 9 Volts LINEFREQ 50 0 Hz LASTXFER Line voltage notch or spike NUMXFERS 0 XONBATT N A TONBATT O seconds CUMONBATT O seconds XOFFBATT N A SELFTEST NO STESTI 336 STATFLAG 0x08 Status Flag DIPSW 0x00 Dip Switch REG1 0x00 Register 1 RE
160. istributions unknown You will be on your own or you can ask the developers list apcupsd users at lists sourceforge net for installation instructions This directory also contains a hint file for Linux From Scratch which could be helpful for other systems as well Windows Systems with CYGWIN Installed If you wish to build from the source and if you have CYGWIN version 1 5 18 and GCC 3 4 4 installed it is possible to build the Win32 version of apcupsd Please don t try any other versions of CYGWIN as there were known problems To date the Win32 version has only been build on a Win98 SR2 and a WinXP system with the above CYGWIN environment and all the available CYGWIN tools loaded In addition the builds were done running under the bash shell As time permits we will experiment with other environments and if any of you do build it from source please let us know The current 43 CYGWIN environment was loaded using the CYGWIN setup exe program downloading ALL the latest binaries and installing them We recommend that you run the configure command with the following options configure prefix apcupsd sbindir apcupsd bin sysconfdir apcupsd etc apcupsd with pid dir apcupsd etc apcupsd mandir apcupsd with cgi bin apcupsd etc apcupsd cgi enable pthreads After which you can do a make And to install apcupsd do make install Finally you should follow the Win32 see instal lat
161. it O thru 9 Some dis tributions some Debian releases possibly others do not provides these device nodes for you so you will have to make them yourself Check dev dev usb and dev usb hiddev and if you cannot find the hiddevN nodes run as root the examples make hiddev script from the apcupsd source distribution To complicate things more many Linux flavors running 2 6 kernels such as Fedora FC3 use the udev utility which dynamically creates the devices in dev on the fly as they are needed It is basically a hotplug system giving a lot more power to the user to determine what happens when a device is probed or opened It is also a lot more complicated Some default udev rule sets do not include rules for creating hiddev nodes The bottom line for apcupsd on such a system is that if the hiddev N is not created when you plug in your UPS apcupsd will terminate with an error The solution to the problem is to add a rule to the udev rules file On Fedora FC3 this file is found in etc udev rules d 50 udev rules Start by adding the following line BUS usb SYSFS idVendor 051d NAME usb hiddev n Then either reboot your system or unplug and replug your UPS and then restart apcupsd At that point a dev usb hiddevN node should appear and apcupsd should work fine You can use udevinfo a p sys class usb hiddev0 to get more information on the fields that can be matched 22 You can also create a more generic rule that
162. itiate a doshutdown event startselftest This event is generated when apcupsd detects a self test by the UPS Normally due to the 6 second onbattery delay default time self test events are not detected This is called when apcupsd detects that the UPS is doing a self test No action is taken endselftest This event is generated when the end of a self test is detected This is called when apcupsd determines that a self test has been com pleted No action is taken mastertimeout This event is generated when a slave detects that a master has not contacted it in a reasonable time or when a slave polls a master and gets no response in 30 seconds This event applies only to the old master slave networking code and not to the NIS server slave mode No action is taken masterconnect This event is generated when the slave and the master reconnect This event applies only to the old master slave networking code and not to the NIS server slave mode No action is taken To write your own routine for the powerout action you create shell script named powerout and put it in the lib directory normally etc apcupsd When the powerout action is invoked by apcupsd apccontrol will first give control to your script If you want apccontrol to continue with the default 98 action simply exit your script with an exit status of zero If you do not want apccontrol to continue with the default action your script should exit with the special exit co
163. l apcupsd properly calls apccontrol This test is appropriate for all models of UPSes smart or dumb To avoid the possibility that apcupsd might shut down your sys tem locate where apccontrol resides on your system normally etc apcupsd apccontrol Move this script to another location e g apccon trol save and replace it with the script found in examples safe apccontrol When that is done ensure that your UPS battery is fully charged and that you have at least 5 minutes of remaining runtime on the batteries This can be done by examining the values of the BATTCHG and TIMELEFT variables in the printout of apcaccess status Athough this should not be necessary as an extra precaution you can shut down your machine remove the plug from the UPS you are testing and plug your machine into another UPS or directly into the wall Doing so will ensure that the UPS doesn t cut the power to your machine at a bad time Remember at the end of the testing to plug your machine back into the UPS You can also minimize the risk from an unexpected shutdown by using a journaling filesystem such as Linux s EXT3 All modern disk drives park themselves safely when they power down rather than ploughing up oxide on your disk s recording surface Thus unexpected power less has to hit very narrow timing windows in order to trash an EXT3 transaction To begin the test pull the power plug from the UPS The first time that you do this psychologically i
164. l battery packs this should be near 24 Volts plus or minus 5 Volts STATUS This is the status of the UPS and it should normally be ON LINE If you see a message to the effect of attach_shmarea shared memory version mismatch or UPS not yet ready to report or if all the displayed values are zero you have not waited long enough Wait a bit longer and then re execute the apcaccess status command If you see a message to the effect of APCACCESS FATAL ERROR in apcaccess c at line 336 tcp_open cannot connect to server localhost on port 3551 It means that you have probably not enabled the Network Information Server in your configuration file for apcaccess to work This is done by setting NETSERVER on NISPORT 3551 in your apcupsd conf file 57 Communications Test At this point you should ensure that apcupsd is handling the connection to the UPS correctly This test assumes you have a UPS that speaks apcsmart protocol over either USB or a serial port If you have an old style voltage signaling UPS please skip to the next section Simulated Power Fail Test When apcupsd detects a problem it generates an EVENT which consists of sending a message to the system log then invoking the apccontrol script normally in etc acpupsd apccontrol to handle the event In order to create an event remove the serial port plug from the back of your computer or from the back of the UPS Within 6 seconds apcupsd should detect th
165. l this software Remember we told you we ll listen sympathetically if you lose data but there will be nothing we can do to help you Please read the general installation instructions given above before contin uing on with these Solaris specific instructions Then come back and read this section before attempting to build the package For building the system we suggest that you run the configure and make processes as your normal UNIX user ID The make install must be run as root But if your normal ID has an environment setup for using the C compiler it s simpler to do that than to set up root to have the correct environment Normally we support the GCC compiler but we have also attempted to support the Solaris workshop compilers and EGCS compilers Please be aware that if you do not use GCC you may experience a few problems Whichever compiler you do have please insure that you can execute the compiler from the command line before running configure If you do not have an environment setup to run the compiler first configure will fail Before running configure please be sure that you do not have usr ucb on your path This may cause the configure to choose the wrong shut 39 down program If configure detects that usr usb is on your path it will print a warning message Please follow the advice to avoid shutdown problems Your normal UNIX user ID must own the source tree directories and you must have the normal d
166. like the following truncated here for the example 1D43132135138129uM43229234239224uA43110112114108 It looks bizarre and ugly but is easily parsed The is some kind of marker ident character Skip it The rest fits this form e Command character use this to select the value e Locale use b to find out what yours is the last character 4 applies to all e Number of choices 4 means there are 4 possibilities coming up e Choice length 3 means they are all 3 chars long Matrix UPS models have between each grouping for some reason Here is an example broken out to be more readable CMD DFO RSP FSZ FVL D 4 3 127 130 133 136 229 234 239 224 108 110 112 114 253 257 261 265 106 103 100 097 177 172 168 182 092 090 088 086 208 204 200 196 00 15 50 90 115 100 230 240 220 225 208 H M L L 02 05 07 10 DpRRRAIEA 4d ds ds ds ds q gt A Ne OCO ONO OO WwW Ww QuooocooHhHhHhHEeEcEeEE BsZHODORHREDHRE rH wd SES ES CMD UPSlink Command upper transfer voltage lower transfer voltage return threshold WARP Oo iDUuOoOo RE i output voltage sensitivity alarm delay wakeup delay 3 020 180 300 600 1 0 3 000 060 180 300 3 336 168 ON OFF L N shutdown grace delay low battery warning self test interval DFO 4 all countries D omestic I nternational A sia J apan M North America servers RSP Total number possible answers returned by a given CMD FSZ
167. lows you to specify where apcupsd will create the powerfail file when a power failure occurs The default is system dependent but usually etc with serial dev lt device name gt This option allows you to specify where apcupsd will look for the serial device that talks to the UPS The default is system dependent but often dev ttySO This option simply sets the appropriate device name in the apcupsd conf file which can be changed at any later time with nis port lt port gt This option allows you to specify what port apcupsd will use for the Network Information Server the CGI pro grams The default is system dependent but usually 3551 because that port has been officially assigned to apcupsd by the IANA This option simply sets the appropriate port in the apcupsd conf file which can be changed at any later time with nisip lt IP Address gt This option allows you to specify the value that will be placed on then NISIP directive in the configuration file The default is 0 0 0 0 No checking is done on the value entered so you must ensure that it is a valid IP address with net port lt port gt This option allows you to specify what port apcupsd will use for Master and Slave communications The default is system dependent but usually 6666 This option simply sets the appropriate port in the apcupsd conf file which can be changed at any later time with upstype lt type gt This option allows you to specify the type of
168. ls using smart signalling and have all the same information that is available as running it in USB mode The jack in the UPS is actually a 10 pin RJ45 However you can just as easily use a 8 pin RJ45 connector which is more standard ethernet TX and ISDN connector It is easy to construct the cable by cutting off one end of a standard RJ45 8 ethernet cable and wiring the other end three wires into a standard DB9F female serial port connector Below you will find a diagram for the CUSTOM RJ45 cable 125 CUSTOM RJ45 CABLE Signal Computer UPS UPS DB9F RJ45 8 RJ45 10 RxD 2 ness an eS 1 2 TxD Send TxD Ge y PO OA 7 8 RxD Receive GND Bu isis AR 6 T Ground FG Shield 3 4 Frame Ground The RJ45 8 pins are looking at the end of the connector 87654321 The RJ45 10 pins are looking at the end of the connector 10987654321 For the serial port DB9F connector the pin numbers are stamped in the plastic near each pin In addition there is a diagram near the end of this chapter Note one user Martin has found that if the shield is not connected to the Frame Ground in the above diagram not in our original schematic the UPS a BackUPS CS 500 EI will be unstable and likely to rapidly switch from power to batteries i e chatter When using this cable with apcupsd specify the following in apcupsd conf UPSCABLE smart UPSTYPE apcsmart DEVICE dev ttySO or whatever your serial port is The information
169. ly proportional as load increases battery runtime de creases and vice versa When utility power is lost the UPS 85 begins discharging the battery in order to support the attached load Once power returns the Smart UPS will automatically begin to recharge its battery My comments on this proceedure I believe this proceedure works for all APC models that calulate runtime not just the SmartUPS It s important that you load the UPS to 30 of the UPS capacity as reported by apcupsd or another UPS monitor program I ve found that normal house lamps of different wattages allow me to adjust the load to almost exactly what I want which is between 30 and 35 of the UPS capacity This is critical te getting an accurate reading accord ing to the APC web documents Always bring the UPS to 100 charge first as indicated by the front panel lamps or your UPS monitoring software Set the UPS shutdown time to 2 minutes all other settings to nominal and disconnect the serial port cable from the UPS be fore running the recalibration If you leave a monitoring program running through the serial port it will turn the UPS off early and you don t want to do that during a recalibration run When the run is complete and the UPS turns off you can reattach the serial cable and the normal loads and recharge the batteries normally If you think you might have a power outage during the recharge time allow the UPS to recharge to 20 or so in
170. ly uses the NIS information to decide when to shutdown This is a much simpler mode than the older master slave code mentioned above The main apcupsd NIS server is connected to the UPS and has NIS turned on but the configuration is a simple standalone as in the section A Sim ple Configuration for a SmartUPS It doesn t matter how the UPS is connected to the computer serial USB For the NIS slave computer you will have a configuration that looks some thing like what follows What is important is that you get the information from an ether cable over the network and you must specify the address of a NIS server that is running NIS not the Master Slave networking de scribed above The NIS slave apcupsd will then poll the NIS server at the NETTIME interval you specify to obtain the status Here are a few words from Adam Kropelin concerning the difference between the Master Slave networking and the NIS based networking Think of the difference as push Master Slave vs pull NIS based In the case of M S the master makes all the shutdown decisions and notifies the slaves when they are to shut down or when some other interesting event 5l happens The slaves just do whatever the master says whenever the master says to On the other hand with the NIS based network config you basically publish the UPS status from one server and then your clients view that status and make their own decisions Personally I like the N
171. mally be disabled by setting the value to zero but on some systems such as Win32 systems apcupsd cannot 156 regain control after a shutdown to force the UPS to shut off the power In this case with proper consideration for the timing the KILLDE LAY directive can be useful Please be aware if you cause apcupsd to kill the power to your computer too early the system and the disks may not have been properly prepared In addition apcupsd must con tinue running after the shutdown is requested and on Unix systems this is not normally the case as the system will terminate all processes during the shutdown Configuration Directives used to Control System Logging STATTIME lt time gt This directive supplies the time interval between writes to the STATUS file If set to zero the STATUS file will not be written Please note that in a future version of apcupsd the STA TUS file code will disappear since its functionality has been replaced by the Network Information Server and by apcaccess status as a consequence it is normally disabled by setting it to zero STATFILE lt file gt This directive specifies the file to be used when writing the STATUS information The default is etc apcupsd apcupsd status DATATIME lt time gt This directives supplies the time interval between writes of PowerChute amp tm like data information to the log file See the Data see DATA Logging section of this manual for additional details FACILITY lt lo
172. mming have not been exhaus tively tested on Win32 systems If at all possible we recommend not to use it as a network master on Win95 Win98 and WinMe due to the instability of those operating systems Some items to note e This version of apcupsd will not attempt to shut off the UPS power when the battery is exhausted Thus if the power returns before the UPS completely shuts down your computer may not reboot automat ically This is because we do not know how to regain control after the disks have been synced in order to shut off the UPS power Nevertheless it is possible to use the kill on powerfail option on the apcupsd command line but the use of this option could cause the power to be cut off while your machine is still running See of this document for a more complete dis cussion of this subject If you are still interested in trying to get this to work please look at the code that is commented out in c apcupsd etc apcupsd apccontrol under the doshutdown case An alternative to the kill on powerfail option is to use the KILLDELAY see KILLDELAY lt time in seconds gt configuration di rective This configuration directive is appropriate on Windows machines where apcupsd continues to run even when the machine is halted as is the case on most NT machines e When apcupsd detects important events it calls c apcupsd etc apcupsd apccontrol which is a Unix shell script 119 You may modify this script to suit yo
173. mmunication and the slaves are explicitly notified by the master of any important changes such as a shutdown There is a simpler form of contolling slaves using the net driver with an apcupsd NIS server The simpler form is much easier to configure See see A Sample NIS Slave Configuration Using the Net Driver below for details A Simple Slave Configuration You have a Smart UPS using the cable supplied by APC that is connected to the master machine configured above and the master machine is running as a netmaster and has the address of your slave machine This slave machine has no serial port connection to the UPS but is powered by the same UPS as the master A very simple configuration file would look like the following apcupsd conf v1 1 UPSCABLE ether UPSTYPE smartups LOCKFILE var lock UPSCLASS netslave UPSMODE net NETPORT 6666 MASTER master mynetwork com The main difference from the master configuration is that you have specified UPSCABLE ether and UPSCLASS netslave In addition you have specified a single controlling master Please note there are reports that you must use UPSTYPE smartups on the slave even if the master is using UPSTYPE dumb This is apparently some bug in the new dumb driver In this configuration the shutdown will be initiated by the master It is also possible to specify BATTERYLEVEL MINUTES and TIMEOUT configu ration directives in the Slave machine that will cause the slave to shutdown
174. n be less than those found in endpoint descriptor If a user or script is interested only in Topology info for example use something like grep T proc bus usb devices for only the Topology lines A command like grep i tdp proc bus usb devices can be used to list only the lines that begin with the characters in square brackets where the valid characters are TDPCIE With a slightly more able script it can display any selected lines for example only T D and P lines and change their output format The procusb Perl script is the beginning of this idea It will list only selected lines selected from TBDPSCIE or All lines from proc bus usb devices The Topology lines can be used to generate a graphic pictorial of the USB devices on a system s root hub See more below on how to do this The Interface lines can be used to determine what driver is being used for each device The Configuration lines could be used to list maximum power in milliamps that a system s USB devices are using For example grep C proc bus usb devices Here s an example from a system which has a UHCI root hub an external hub connected to the root hub and a mouse and a serial converter connected to the external hub T Bus 00 Lev 00 Prnt 00 Port 00 Cnt 00 Dev 1 Spd 12 MxCh 2 B Alloc 28 900 us 3 Int 2 Iso 0 D Ver 1 00 Cls 09 hub Sub 00 Prot 00 MxPS 8 Cfgs 1 P Vendor 0000 ProdID 0000 Rev 0 00
175. n get as technical as you need to go Regards Carl Here is a link to the APC Battery Store Frequently Asked Questions See the bugs section of this document for a list of known bugs and solutions Q Why all the craziness with custom serial cables A It was nothing more nor less than a form of customer control For a long time APC wanted to keep other people from talking to its UPSes so it could lock out potential competition for its PowerChute software Scrambling the leads on its serial cables was a cheap way to accomplish this in fact they tended to be wired so that if you tried a straight through cable opening a serial link to the UPS would be interpreted as a shutdown command 88 Hardware companies often think like this they lock up interfaces by instinct cornering a small market rather than growing a bigger one It s fundamentally stupid and self defeating but it s the kind of stupid that tends to sound good at an executive meeting Fortunately APC has lost a lot of this attitude since about 2000 nowa days they even release technical information to the apcupsd maintain ers What UPS brands does apcupsd support Currently apcupsd supports only APC UPSes However some compa nies such as Hewlett Packard put their own brand name on APC man ufactured UPSes Thus even if you do not have an APC branded UPS it may work with apcupsd You will need to know the corresponding APC model number apcupsd
176. n the options necessary for apcupsd to run on Windows and the standard apcupsd options all Windows specific options are signaled with a forward slash character while as usual the standard apcupsd options are signaled with a minus or a minus minus All the standard apcupsd options can be used on the Windows version In addition the following Windows only options are implemented servicehelper Run the service helper application service Start apcupsdas a service run Run the apcupsd application install Install apcupsd as a service in the system registry remove Uninstall apcupsd from the system registry about Show the apcupsd about dialogue box status Show the apcupsd status dialogue box events Show the apcupsd events dialogue box kill Stop any running apcupsd help Show the apcupsd help dialogue box It is important to note that under normal circumstances the user should never need to use these options as they are normally handled by the sys tem automatically once apcupsd is installed However you may note these options in some of the pif files that have been created for your use Building the Win32 Version from the Source If you have the source code follow the standard procedures for building apcupsd on Unix in Building and Installing apcupsd of this manual Please don t forget to look at the system specifics for CYGWIN 122 Installation Serial Line UPSes Overview of Serial Interface UPSes
177. n your Network Information Server is up and running you can test it using a simple program before attempting to access the server via your Web server The test program is called client c and can be found in the examples subdirectory of the source distribution To build the program when in the examples directory use something like the following cc client c lib libapc a o client Then execute it client lt host gt lt port gt lt command gt Where host is the name of the host or the IP address of the host running the Network Information Server The default is the local host You may optionally specify a port address separated from the host name with a colon You may also optionally specify a single command to be executed If you specify a command that command will be executed and the client program will exit This is a very simple and useful way of pulling the status or events data into another program such as Perl If no error messages are printed it has most likely established contact with your server Anything that you type as standard input will be passed to the server and anything the server sends back will be printed to standard output There are currently two commands recognized by the server events and status Hence the following commands client status events XYZ D 75 should produce the status listing the same as produced by apcaccess status followed by the list of the last 10 events in response to
178. nary data consists of first the device descriptor then the descriptors for each configuration of the device That information is also shown in text form by the proc bus usb devices file described later These files may also be used to write user level drivers for the USB devices You would open the proc bus usb BBB DDD file read write read its descriptors to make sure it s the device you expect and then bind to an interface or perhaps several using an ioctl call You would issue more ioctls to the device to communicate to it using control bulk or other kinds of USB transfers The IOCTLs are listed in the linux usbdevice_fs h file and at this writing the source code linux drivers usb devio c is the primary reference for how to access devices through those files Note that since by default these BBB DDD files are writable only by root only root can write such user mode drivers You can selectively grant read write permissions to other users by using chmod Also usbfs mount options such as devmode 0666 may be helpful THE proc bus usb devices FILE In proc bus usb devices each device s output has multiple lines of ASCII output I made it ASCII instead of binary on purpose so that someone can obtain some useful data from it without the use of an auxiliary program However with an auxiliary program the numbers in the first 4 columns of each T line topology info Lev Prnt Port Cnt can be used to build a USB top
179. nd it works perfectly Construction and operation of the APC 940 0095A cable This cable is included with the APC Back UPS Pro PNP series UPS end Computer end 47k 47k BATTERY LOW 5 gt R1 R2 lt DTR DSR CTS 4 6 8 x 2N3906 PNP IN C lt DCD 1 Low Batt R 4 7k 3 4 7k SHUTDOWN 1 gt R4 lt TxD 3 1N4148 x K lt RTS 7 Shutdown POWER FAIL 2 gt lt RxD RI 2 9 On Batt GROUND 4 9 gt lt GND 5 Operation DTR is cable power and must be held at SPACE DSR or CTS may be used as a loopback input to determine if the cable is plugged in DCD is the battery low signal to the computer A SPACE on this line means the battery is low This is signalled by BATTERY LOW being pulled down it is probably open circuit normally Normally the transistor is turned off and DCD is held at the MARK voltage by TxD When BATTERY LOW is pulled down the voltage divider R2 R1 biases the transistor so that it is turned on causing DCD to be pulled up to the SPACE voltage TxD must be held at MARK this is the default state when no data is being transmitted This sets the default bias for both DCD and SHUTDOWN If this line is an open circuit then when BATTERY LOW is signalled SHUTDOWN will be automatically signalled this would be true if the cable were plugged in to th
180. nfiguration Directives used to Control System 157 DATA 112 57 EVENTS 11 STATUS A Logging Test 54 Logging the STATUS Information Logging Types 112 LOTRANS 67 LOTRANSFER lt lower limit of ups batt transfer gt 62 Machine Controlling Multiple UPSes on one 104 mainsback 97 Maintaining Your UPS Bi Making sure apcupsd Is Running MANDATE 167 Manual How To Use This TI MASTER lt name of the master gt for slave machines 199 Master Slave Configurations 99 215 Master Slave Problems 100 Master Slave Shutdown P72 masterconnect 98 mastertimeout 98 MASTERUPD 168 MAXLINEV 1686 MAXTIME 166 MBATTCHG 160 Messages Alert TST MINLINEV 166 MINTIMEL 166 minutes 155 MINUTES lt battery runtime in minutes gt 55 MODEL 165 Models Smart Signalling Cable for BackUPS CS 125 Monitoring and Tuning your UPS 66 net 14 NetBSD Port 190 NETPORT lt IP port number gt 159 NETSERVER on off 153 NETTIME lt time in seconds gt Network Problems with Mas ter Slave or Server Slave Configurations 101 NISIP lt IP address gt 153 NISPORT lt port gt 153 NOLOGON lt specifies when apcupsd should prevent user logins gt 154 NOMBATTYV 68 NOMOUTV 168 Notes Developers HA NUMXFERS 167 offbattery 97 onbattery 97 Once you have established
181. ng to the wiring diagram given in the cables chapter of this manual Once you have established serial communications Once you have established that apcupsd can talk to the UPS over the serial part go do the series of functional tests described in the main Testing see Testing Apcupsd section One additional note applies 148 Bizarre Intermittent Behavior In one case a user reported that he received random incorrect values from the UPS in the status output It turned out that gpm the mouse control program for command windows was using the serial port without using the standard Unix locking mechanism As a consequence both apcupsd and gpm were reading the serial port Please ensure that if you are running gpm that it is not configured with a serial port mouse on the same serial port Recalibrating the UPS Runtime Note In a future release of apcupsd this procedure will be replaced by a daemon operation that can be performed on all types of UPS This section does not apply to voltage signalling or dumb UPSes such as the older BackUPS models Smart UPSes internally compute the remaining runtime and apcupsd uses the value supplied by the UPS As the batteries age after say two or three years the runtime computation may no longer be accurate since the bat teries no longer hold the same charge As a consequence in the event of a power failure the UPS and thus apcupsd can report a runtime of 5 min utes remaining when in fac
182. not write to slave SSS This message occurs when the master at tempts to send a message to the slave SSS and gets an error It indicates that either the slave machine is not responding apcupsd died the system crashed or that the network is down Cannot read magic from slave SSS This message indicates that the master attempted to read the code key from the slave SSS and it did not match the value expected A common cause of this problem is that the master and slave versions of apcupsd are not the same Please be sure you are running the same version of apcupsd on all your master and slave machines Connect to slave SSS failed This message is logged when the master at tempts to connect to slave SSS and no connection is accepted The most common cause of this problem is that the slave copy of apcuspd is not yet ready to accept connections or is not running Generally apcupsd will retry the connection a bit later If the problem is per sistent it can indicate a network problem or the slave name on the SLAVE directive of the master s configuration file is incorrect Cannot open stream socket This indicates a fundamental networking problem on your system either a lack of sufficient resources or you have not configured TCP IP operations Error Messages from a Slave Configuration In a master slave configuration you can get the following error messages from a slave The error message is followed by a possible explanation Cannot res
183. note that the network names may either be IP addresses or fully qualified domain names The network name or IP address may optionally be followed by lt port gt where the port is the NIS port address you wish to use This is useful if you are running multiple copies of apcupsd on the same system or if you are running in a mixed vendor environment where the NIS port assignments differ An example could be the following MONITOR matou Server MONITOR polymatou Backup server MONITOR deuter Disk server MONITOR polymatou 7001 APC USB UPS where the USB copy of apcupsd has been configured to use port 7001 with with nis port 7001 on the configure or by modifying apcupsd conf Note the default NIS port is 3551 on most platforms To test multimon cgi you can execute it as non root directly from the source cgi build directory To do so enter at a shell prompt multimon cgi If everything is set up correctly it will print a bunch of HTML with the values of the machines that you have put in the hosts conf file It should look something like the following note only a small portion of the output is reproduced here Content type text html lt DOCTYPE HTML PUBLIC W3C DTD HTML 4 0 Transitional EN http www w3 org TR REC htm140 loose dtd gt lt HTML gt lt HEAD gt lt TITLE gt Multimon UPS Status Page lt TITLE gt lt HEAD gt lt BODY BGCOLOR FFFFFF gt lt TABLE BGCOLOR 50A0A0 ALIGN CENTER gt lt
184. nstead of kernel secure or disable CONFIG_USB_DYNAMIC_MINORS and rebuild kernel secure Problem USB driver linux usb c fails to compile reporting errors about HID MAX USAGES undefined This is due to a defect in the linux kernel hiddev h header file on 2 6 5 and higher kernels Workaround Upgrade to apcupsd 3 10 14 or higher These versions con tain a workaround for the defect Problem On some systems such as Slackware 10 0 no USB devices will show up see the next section Workaround Add the following to rc local mount t usbdevfs none proc bus usb Problem 2 6 kernels use udev and some distributions to not configure it to automatically create dev usb hiddev as they should causing apcupsd to fail to locate the UPS Workaround Edit the file etc udev rules d 50 udev rules and add the following KERNEL hiddev NAME usb hiddev n More details are provided in the following section 18 Checking Out Your Linux USB Subsystem You need to check three things 1 That your USB subsystem can see the UPS 2 That the kernel has bound the correct driver 3 That the correct device nodes are available in dev Verifying Device Detection and Driver To make sure that your USB subsystem can see the UPS just do this from a shell prompt cat proc bus usb devices This information is updated by the kernel whenever a device is plugged in or unplugged irrespective of whether apcupsd is running or not It contains deta
185. ology diagram Each line is tagged with a one character ID for that line T Topology etc B Bandwidth applies only to USB host controllers which are virtualized as root hubs 203 iw ll Device descriptor info Product ID info from Device descriptor but they won t fit together on one line go Il String descriptors Configuration descriptor info active configuration Interface descriptor info Endpoint descriptor info proc bus usb devices output format Legend d decimal number may have leading spaces or 0 s x hexadecimal number may have leading spaces or 0 s s string Topology info Bus dd Lev dd Prnt dd Port dd Cnt dd Dev ddd Spd ddd MxCh dd __MaxChildren Device Speed in Mbps __DeviceNumber Count of devices at this level __Connector Port on Parent for this device Parent DeviceNumber Level in topology for this bus Bus number T Topology info tag Speed may be 1 5 Mbit s for low speed USB 12 Mbit s for full speed USB 480 Mbit s for high speed USB added for USB 2 0 Bandwidth info B Alloc ddd ddd us xx Int ddd Iso ddd Number of isochronous requests Number of interrupt requests __Total Bandwidth allocated to this bus Bandwidth info tag Bandwidth allocation is an approximation of how much of one frame millisecond is
186. oltage HITRANSFER 253 253 264 271 280 Lower transfer voltage LOTRANSFER 196 196 188 208 204 Return threshold RETURNCHARGE 0 00 15 50 90 Output voltage on batts OUTPUTVOLTS 230 230 240 220 225 Sensitivity SENSITIVITY H HMLL Low battery warning LOWBATT 2 02 05 07 10 Shutdown grace delay SLEEP 20 020 180 300 600 Alarm delay BEEPSTATE 0 OTLN Wakeup delay WAKEUP 0 000 060 180 300 Self test interval SELFTEST 336 336 168 ON OFF The line of interest for you is the Shutdown grace delay which can be changed using the SLEEP see SLEEP lt set sleep delay gt directive in your apcupsd conf file The default value is 20 seconds but generally you can set it to 180 300 or 600 seconds depending on your UPS See the EEPROM 171 see Configuring Your EEPROM this manual for further details on how to change this EPROM value If you use the kill on powerfail option you run the risk of having the computer power cut before the system has shutdown Even if the grace period is rather long if something goes wrong in the shutdown well it is up to you to decide If apcupsd has successfully shutdown your computer and powered off the UPS during a power outage you can control whether or not your computer is automatically rebooted when the power returns The UPS contains two internal EPROM values that determine when it will restore power to your computer after a full power shutdown They are the RETURNCHARGE see RETURNCHARGE lt min batt_ charge l
187. olve master name MMM This message is logged when the slave attempts to resolve the name given on the MASTER configura tion directive to an IP address It probably means that the master name MMM is not defined your DNS is not properly working or you have started apcupsd in the boot process before the network is ini tialized Check the name MMM or use an explicit IP address on the MASTER configuration directive in the slave s configuration file Cannot bind local address probably already in use This means that the slave has attempted to bind the port number so that it can listen for messages from the master This can occur if already have a 102 copy of apcupsd running or you have previously run apcupsd in the past 5 or 10 minutes because occasionally the operating system will not shutdown a port correctly for 5 to 10 minutes after a program exits In this case you can either wait a few minutes for the problem to go away or use a different port in both your master and slave configuration files Socket accept error The slave got an error waiting on the accept system call This is probably due to a fundamental networking problem Unauthorized attempt from master MMM The master named MMM probably an IP address contacted the slave but MMM is not the master that was listed on the MASTER configuration directive in etc apcupsd conf and consequently it is not authorized to communicate with the slave Please check that your MASTER and
188. one with the same script lt path gt apcupsd stop 173 Windows Considerations Please see the end of Windows chapter see Installation on Windows of this manual for conderations pertaining to shutdown and killpower on Windows APC smart protocol The APC UPS protocol was originally analyzed by Pavel Korensky with additions from Andre H Hendrick beginning in 1995 and we want to give credit for good hard work where credit is due After having said that you will see that Steven Freed built much of the orginal apcupsd information file Comment inserted by Riccardo Facchetti The start of this chapter of the apcupsd manual in HTML format was pulled from the Network UPS Tools NUT site It has been an invaluable tool in improving apcupsd and I consider it the Bible of APC UPS programming In the course of using it I have added information gleaned from apcupsd and information graciously supplied by APC Hopefully the additions made herein can benefit the original author and his programming project and maybe some day the apcupsd project and the NUT project can join forces Description Here s the information on the elusive APC smart signaling protocol used by their higher end units Back UPS Pro Smart UPS Matrix UPS etc What you see here has been collected from a variety of sources Some people analyzed the chatter between PowerChute and their hardware Others sent various characters to the UPS and figured out what the
189. only in Topology info for example use something like grep T proc bus usb devices for only the Topology lines A command like grep i tdp proc bus usb devices can be used to list only the lines that begin with the characters in square brackets where the valid characters are TDPCIE With a slightly more able script it can display any selected lines for example only T D and P lines and change their output format The procusb Perl script is the beginning of this idea It will list only selected lines selected from TBDPSCIE or All lines from proc bus usb devices The Topology lines can be used to generate a graphic pictorial of the USB devices on a system s root hub See more below on how to do this The Interface lines can be used to determine what driver is being used for each device The Configuration lines could be used to list maximum power in milliamps that a system s USB devices are using For example grep C proc bus usb devices Here s an example from a system which has a UHCI root hub an external hub connected to the root hub and a mouse and a serial converter connected to the external hub Bus 00 Lev 00 Prnt 00 Port 00 Cnt 00 Dev 1 Spd 12 MxCh 2 Alloc 28 900 us 3 Int 2 Iso O Ver 1 00 Cls 09 hub Sub 00 Prot 00 MxPS 8 Cfgs 1 Vendor 0000 ProdID 0000 Rev 0 00 Product USB UHCI Root Hub SerialNumber dce0 Ifs 1 Cfgt 1 Atr 40 MxPwr OmA If 0 Alt 0 EPs
190. otedown 97 restartme 97 RETPCT 67 RETURNCHARGE lt min batt charge level gt 162 Revision Interpretation of the New Firmware 184 Interpretation of the Old Firmware 83 RPM Packager 189 RS 232 differences 174 RS232 Wiring and Signal Conven tions 141 runlimit 98 Running Making sure apcupsd Is 46 Running apcnisd from INETD TO Running apcnisd Standalome oi Running the server as a child of apcupsd 09 Runtime Recalibrating the UPS 149 Sample NIS Slave Configuration Using the Net Driver BI SELFTEST 167 SENSE 166 SENSITIVITY lt sets sensitivity level gt 161 Sequence Shutdown 62 169 Serial Communications 89 SERIALNO 167 Server Alternate Ways To Run The Network Information Configuration Directives Used by the Network Informa tion 153 Setting up and Testing the CGI Programs 70 Shutdown Master Slave 172 Power Down During 21 Shutdown Problems 172 Shutdown Sequence 62 169 Shutown Sequence and its Discon tents 169 Signalling Voltage 130 Signals 217 Back UPS Office 500 37 Simple Configuration for a Simple Signaling or Dumb 83 Simple Configuration for a Smar tUPS 48 Simple Master Configuration 49 Simple Slave Configuration 50 Simple USB Configuration 47 Simulated Power Fail Test 59 SLAVE lt name of slave s gt used only in MASTER config uration files 106
191. ou by email when certain events such as powerfail occur Since apccontrol is a script you can customize it to your own needs using any text editor To do so you must have a minimal knowledge of Unix shell programming In addition another feature is that you can write your own scripts that will be automatically called by apccontrol before any of its own code is executed Details of the events and how to program them are contained in the Advanced topics section entitled Customizing Event Handling see Customizing Event Handling hid ups and USB Specific Information The UPS has an internal set of timers and remaining capacity counters which it uses to determine when to shutdown These are in addition 69 to the apcupsd counters BATTERYLEVEL and MINUTES As a conse quence apcupsd will shutdown on the first limit that triggers either an apcupsd limit or a UPS limit The UPS internal counter equivalent to BATTERYLEVEL can be found in the hid ups report as RemainingCapac ityLimit which is typically factory set to 10 percent In addition the Low Battery signal is normally given by the UPS when less than 2 minutes of run time remain apcupsd Network Monitoring CGI Programs With this release there are four CGI programs multimon cgi upsstats cgi upsfstats cgi and upsimage cgi To have them properly installed you must run the configure command with enable cgi and you should specify an installation directory with with c
192. ou do This proceedure should not be confused with the Recalibrate feature in the APC PowerchutePlus software They do not do the same thing gt From APC s web site Perform a Runtime Calibration This is a manual procedure and should not be confused with the runtime calibration performed through PowerChute plus The batteries inside of the Smart UPS are controlled by a microprocessor within the UPS Some times it is necessary to reset this microprocessor especially after 84 the installation of new batteries Stop the PowerChute plus soft ware from running and disconnect the serial cable There must be at least a 30 load attached to the UPS during this proce dure but the process will cause the UPS to shut off and cut power to its outlets Therefore attach a non critical load to the UPS and then force the UPS on battery by disconnecting it from utility power Allow the unit to run on battery until it turns off completely Make sure a 30 load is present Plug the UPS back into the wall outlet and allow it to recharge it will recharge more quickly turned off and with no load present Once the unit has recharged the runtime remaining calculation should be more accurate Remember that if the unit is an older model then the runtime will not improve significantly Background An APC Smart UPS has a microprocessor which calculates run time primarily based on the load attached to the UPS and on its battery capacity
193. ou must edit the sbin rc0 script as detailed below then exit from the su ed shell In order to support unattended operation and shutdown during a power failure it s important that the UPS remove power after the shutdown com pletes This allows the unattended UPS to reboot the system when power returns by re powering the system Of course you need autoboot enabled 40 for your system to do this but all Solaris systems have this by default If you have disabled this on your system please re enable it To get the UPS to remove power from the system at the correct time during shutdown i e after the disks have done their final sync we need to modify a system script This script is sbin rc0 We do not have access to every version of Solaris but we believe this file will be almost identical on every version Please let us know if this is not true At the very end of the sbin rc0 script you should find lines just like the following unmount file systems usr var and var adm are not unmounted by umountall because they are mounted by rcS for single user mode rather than mountall If this is changed mountall umountall and rcS should also change sbin umountall sbin umount var adm gt dev null 2 gt amp 1 sbin umount var gt dev null 2 gt amp 1 sbin umount usr gt dev null 2 gt amp 1 echo The system is down We need to insert the following lines just before the last echo see
194. ou want with css dir lt path gt This option allows you to specify where you want apcupsd to put the Cascading Style Sheet that goes with the multimoncss cgi CGI program 31 enable master slave Turns on the master slave networking code de fault This is sometimes referred to as the old master slave code and is more complicated than using NIS and the net driver to control Slaves see below enable apcsmart Turns on generation of the APC Smart driver de fault enable dumb Turns on generation of the dumb signalling driver code default enable usb Turns on generation of the Linux only USB driver code By default this is disabled enable net Turns on generation of the NIS network driver for slaves This is an alternative to old master slave code For the master this code should be disabled For each slave this is the only driver needed This driver works by reading the information from the the configured master using the NIS Network Information Services interface enable snmp Turns on generation of the SNMP driver This driver will control the computer by reading the UPS information over the network assuming you are running SNMP By default this is disabled enable test This turns on a test driver that is used only for debugging By default it is disabled enable pthreads This option enables pthreads support causing apcupsd to be built as a threaded program rather than forking to create s
195. ow line voltage power down grace periods etc In general for the moment we do not recommend that you change your EEPROM values unless absolutely necessary There have been several re ported cases of problems setting the Low Transfer Voltage Consequently if at all possible do not attempt to change this value If despite these warnings you must change your EEPROM we recommend connecting your UPS to a Windows or NT machine running PowerChute and making the changes apcupsd No Longer Configures EEPROM Unlike version 3 8 6 apcupsd version 3 10 x no longer has code to program the EEPROM Instead we have implemented interactive EEPROM mod ification code in the apctest program EEPROM programming must be 77 done with apcupsd stopped so that apctest can access the UPS In addition EEPROM programming is currently implemented only for UPSes using the Smart protocol running in serial mode Perhaps at a later time when the appropriate kernel modifications are standard we will extend EEPROM programming to USB models Before changing your EEPROM you should make a printed copy of the current state of your UPS before any EEPROM changes so that you can check the changes that you have made Do so by printing a copy of the output from apcaccess status and also print a copy of the output from apcaccess eprom Once this is done choose which values of the EEPROM you want to change Typical output from apcaccess should look like the following
196. part After two complete cycles the batteries measure within 01 VDC of each other I hope this information helps anyone who might encounter the problem I saw and also shows folks how to recal their batteries If you haven t done a complete recalibration in a year or two I d recommend it so that you have warning of a low battery instead of what happened to me Regards Carl Where Carl Suggests You Get Batteries Hi Folks I m just replacing the batteries in one of my SmartUPS models and it occurs to me that some of you may not know about the place I get them from I have no relationship with this com pany other than as a customer but I feel they know what they are doing their prices are fair and they have some interesting batteries available that you can t obtain from APC These are the reasons I use them and I thought this information might be useful to the US list members They will ship outside of the US If you have questions you can contact them through the email address listed on their web pages They have always responded pretty quickly to my questions The company is called Battery Wholesale Distributors and they are located in Georgetown Texas If you have questions you can reach them by phone at 800 365 8444 9 00AM to 5 00PM their local time Monday through Friday I ve gotten email from them on the weekends although the office is not open then I won t post prices as you can get current
197. pcupsd normally runs as a system service This means that 1t is immediately started by the operating system when the system is booted and runs in the background even if there is no user logged into the system 114 Installation Normally you will install the Windows version of apcupsd from the binaries Starting with version 3 11 15 the Windows binaries are distributed with a full GUI installer driven by NSIS the Nullsoft Scriptable Install System Installation is very simple and straight forward Simply double click the installer executable and follow the instructions Do not change the in stallation directory without reading the next section Installation Directory The Win32 version of apcupsd must reside in the SystemDrive apcupsd directory SystemDrive is normally c and there must be a System Drive tmp directory on your machine The installation will do this auto matically and we recommend that you do not attempt to place apcupsd in another directory If you do so you are on your own and you will need to do a rebuild of the source If you wish to install the package elsewhere you will need to proceed with a manual installation which is not particularly easy as you must rebuild the source and change the configuration file as well If you have an existing CYGWIN installation you must change the instal lation directory to apcupsd within your CYGWIN root directory usually c cygwin Configuration If
198. pecified Under normal apcupsdoperations no configure option apcupsd will read the value stored in the UPS and display it in the STATUS output BEEPSTATE lt alarm beep state gt This parameter tells the UPS when it can sound its audio alarm These settings are based on discrete events related to the remaining capacity of the UPS O immediately upon power failure T power failure 30 seconds L low battery power 162 N never UPSNAME lt string gt This is an eight character string This is the UPS name that will be stored in the UPS EPROM BATTDATE lt string gt This is an eight character string that is the last date the batteries were changed apcupsd Status Logging There is a good deal of information available about the UPS and apcupsd s status This document describes the format of that information Normally you will get at it via apcaccess but there are other ways as well Status report format The STATUS output is in ASCII format with a single data value or piece of information on each line output Because not all UPSes supply the same information the output varies based on the type of UPS that you are using In general if the information is not available for your UPS the data portion of the output record will contain an N A indicating that the information is not available Status logging consists of periodically logging ALL available information concerning the UPS Since the volume of data is rather large ove
199. popup dialogue boxes by putting a pound sign in column one of the appropriate line Problem Areas On some Windows systems the domain resolution does not seem to work if you have not configured a DNS server in the Network section of the Control Panel This problem should be apparent only when running a master or a slave configuration In this case when you specify the name of the master or the slave machine s in your apcupsd conf file apcupsd will be unable to resolve the name to a valid IP address To circumvent this problem simply enter all machine addresses as an IP address rather than a domain name or alternatively ensure that you have a valid DNS server configured on your system often not the case on Win32 systems For example instead of us ing the directive MASTER my master com use something like MASTER 118 192 168 1 54 where you replace the IP address with your actual IP address On WinNT WinXP and Win2K systems you can examine the System Applications log to which apcupsd writes Windows error messages during startup Regardless of which Windows system you are running apcupsd logs most error messages to c apcupsd etc apcupsd apcupsd events This type error messages such as configuration file not found etc are written to this file Note that on some systems WinXP possibly others Apcupsd is unable to write to this file when running as a service Disclaimer Some of the features such as EEPROM progra
200. power loss detected wall then exits remotedown This event is generated on a slave machine when it detects either that the master has shutdown or that a onbattery situation exists and the communications line has been severed Despite the name you should never reboot the machine instead always shut it down Does a shutdown h now restartme This event is depreciated and should not be used Terminates the currently running apcupsd and then restarts it 97 runlimit This event is generated when the MINUTES value defined in the apcupsd conf file expires while in a power fail condition The MIN UTES is the remaining runtime as internally calculated by the UPS and monitored by apcuspd Does a printf UPS battery runtime percent reached Doing shutdown n wall then exits After completing this event apcupsd will immediately initiate a doshutdown event timeout This event is generated when the TIMOUT value defined in the apcupsd conf file expires while in a power fail condition It indicates that the total time in a power failure has been exeeded and the machine should be shutdown Normally with smart UPSes this value is not used but rather one relies on the remaining runtime MINUTES or the battery level BATTERYLEVEL values specified in the conf file Does a printf UPS battery runtime limit exceeded Doing shutdown n wall then exits After completing this event apcupsd will immediately in
201. psd conf files 4 Make sure you are using the same version of apcupsd on both the master and slave machines Controlling Multiple UPSes on one Machine You may want to use your server to control multiple UPSes This is possible by proper configuration and by running one copy of apcupsd for each UPS to be controlled recall the Configuration types Configuration The way to accomplish the above is to ensure that none of the critical files used by each of the two copies of apcupsd are the same By using suitable configuration options this is possible The First Copy of apcupsd For example assuming you have SmartUPSes in both cases to configure and install the first copy of apcupsd which controls a UPS and Computer A one could use the following configuration configure prefix usr sbindir sbin with cgi bin home http cgi bin enable cgi with css dir home http css with log dir etc apcupsd with serial dev dev ttySO enable pthreads with nis port 3551 enable powerflute 104 This is pretty much a normal installation using many of the defaults Once built and installed this would control the first UPS and cause a shutdown of the system when the batteries are low This copy of apcupsd will be started and stopped automatically when the system is booted and halted The Second Copy of apcupsd To configure and install the second copy of apcupsd which controls the second U
202. r NO WARRANTY 191 List of Figures bug E ee ee A AR 17 Pou pees ea eee tad 72 Caes doses dd ie 73 ee ee ee eee eee 116 igh tank esa oe ee sg ed ee ee es ee 189 List of Tables Supported UPS Models 2 2 2 cc 15 Ey et aa devas 130 aa 141 oh Ge ee SUP NO do DE io 175 A be a gabe ae Glare Pee 180 dae eo eg ee e tica 180 oe a ea ne ete oe aoe es ew 181 RS ee oe eee bee eee 182 Sg ae ee ee 2 ee 182 oe eo een bo hee ee eee 183 Programming the UPS EEPROM 10 How To Use This Manual This is the manual for apcupsd a daemon for communicating with UPSes Uninterruptible Power Supplies made by American Power Corporation APC If you have an APC made UPS whether sold under the APC name plate or OEMed The HP PowerTrust 2997A UPS has been tested as a smartups with cable Hewlett Packard part number 5061 2575 equivalent to a custom smart cable and you want you get it working with a computer running Linux Unix or Windows NT you are reading the right document This manual is divided into parts which increase in technical depth as they go If you have just bought a state of the art smart UPS with a USB or Ethernet interface and you are running a current version of Red Hat or SUSE Linux 8 0 or later then apcupsd is very nearly plug and play and you will have to read only the Basic User s Guide see Basic User s Guide If your operating system is older or if you have an old fashioned serial l
203. r 1000 bytes per status the STATUS data is not automatically sent to the system log file instead it is written as a series of data records to a specific file normally etc apcupsd apcupsd status After each write the file is rewound so that the size of the file remains constant At the current time this file is 1135 bytes The format of this file is very similar to the old apcupsd procfs file The STATUS file is kept for backward compatibility and will be eliminated in a future version of apcupsd The preferred method for obtaining this information is from apcaccess or by using the CGI interface seelapcupsd Network Monitoring CGI Programs To make reading the status data reliable via a named pipe the first record written contains a version number the number of records that follow the first record and the total number of bytes in those subsequent records An actual example of such a status file etc apcupsd apcupsd status is 163 Consequently the first record always consists of 24 bytes 23 characters followed by a newline This record starts with APC and as indicated in the example above is followed by 28 records consisting of 675 bytes The last record begins with END APC and contains the date and time matching the DATE record Documentation of each record needs to be written In the coming weeks I plan to add additional records and possibly change the names of some of the fields When this data is written to a file it
204. r name or none __InterfaceProtocol __InterfaceSubClass __InterfaceClass Number0fEndpoints AlternateSettingNumber __InterfaceNumber _Interface info tag A ee ae eae A given interface may have one or more alternate settings For example default settings may not use more than a small amount of periodic bandwidth To use significant fractions of bus bandwidth drivers must select a non default altsetting Only one setting for an interface may be active at a time and only one driver may bind to an interface at a time Most devices have only one alternate setting per interface Endpoint descriptor info can be multiple per Interface E Ad xx s Atr xx ssss MxPS dddd Ivl dddss __Interval max between transfers __EndpointMaxPacketSize __Attributes EndpointType __EndpointAddress I In 0 0ut __Endpoint info tag The interval is nonzero for all periodic interrupt or isochronous endpoints For high speed endpoints the transfer interval may be measured in microseconds rather than milliseconds 206 For high speed periodic endpoints the MaxPacketSize reflects the per microframe data transfer size For high bandwidth endpoints that can reflect two or three packets for up to 3KBytes every 125 usec per endpoint With the Linux USB stack periodic bandwidth reservations use the transfer intervals and sizes provided by URBs which ca
205. r plat form xxx 37 How do I control whether usb sup port gets built 188 How To Use This Manual TT HP UX Port 190 HUMIDITY 168 I m getting errors about not hav ing permission when 188 214 Implementation Details INETD Running apcnisd from 10 Info Dip switch 130 Information hid ups and USB Specific 69 Logging the STATUS 168 Installation After 44 Planning Your M1 Post 113 Troubleshooting Your 64 Verifying a Source 29 Installation 115 Installation Directory Installation from Binary Packages BO Installation from Source 27 Installation Serial Line UPSes 123 Internal Apcupsd Actions for Sim ple Cables 139 Interpretation of the New Firmware Revision 181 Interpretation of Firmware 183 loctl to RS232 Correspondence 122 Issues Known BSD USB 24 Known Linux USB ITEMP 167 the Old Revision KILLDELAY lt time in seconds gt Killpower under Windows 120 Known Problems 108 Known Problems with USB UPSes 6A LASTXFER 167 LINEFREQ 67 LINEV BU 060 Linux Known USB Issues 18 USB Configuration USB Device Nodes 22 USB Miscellaneous 24 Verifying USB Device Detec tion and Driver 9 Linux Kernel Config 192 Linux USB Configuration I loadlimit 97 LOADPCT 166 LOCKFILE lt path to lockfile gt 52 Logging apcupsd Status 163 apcupsd System 11 Co
206. raight through serial cable with no identification on the plugs To make it work with apcupsd specify the UPSCABLE 940 0119A and UPSTYPE backups The equivalent of cable 940 0119A is done on a PCB inside the unit Thanks to William Stock for supplying us with the information about the straight through cable the PCB and the following diagram computer aaa a BackUPS ES DB9 M DB 9F pin signal pin 4 DSR gt 4 diode resistor 6 DTR gt 6 gt o kill power 1 DCD lt Last 2 RxD lt PS Fo saa a cad o low battery 7 RTS gt 7 8 RI lt 9 h i o on battery 9 CTS lt 9 5 GND tai Dis ASS o ground 3 TxD 3 nc BackUPS ES and CS in Serial mode with Cable 940 0128A Though these UPSes are USB UPSes APC supplies a serial cable typically with a green DB9 F connector that has 940 0128A stamped into one side of the plastic serial port connector The other end of the cable is a 10 pin RJ45 connector that plugs into the UPS thanks to Dean Waldow for sending me a cable Apcupsd version 3 8 5 and later supports this cable when specified as UPSCABLE 940 0128A and UPSTYPE backups However running in this mode much of the information that would be available in USB mode is lost In addition when apcupsd attempts to instruct the UPS to kill the power it begins cycling about 4 times a second between battery and line 136 The solution to the
207. re command see below for more details The above pertains to Red Hat systems only There are significant differ ences in the procedures on each system as well as the location of the halt script Also the information that is inserted in your halt script varies from system to system Other systems such as Solaris require you the make the changes manually which has the advantage that you won t have any un pleasant surprises in your halt script should things go wrong Please consult the specific system dependent README files for more details Please note that if you install from RPMs for a slave machine you will need to remove the changes that the RPM install script made similar to what is noted above to the halt script This is because on a slave machine there is no connection to the UPS so there is no need to attempt to power off the UPS That will be done by the master 30 apcupsd x x apcupsd x x apcupsd x x apcupsd x x apcupsd x x apcupsd x x apcupsd x x apcupsd x x apcupsd x x apcupsd x x kapcupsd x x Configure Options All the available configure options can be printed by entering configure help When specifying options for configure if in doubt don t put anything since normally the configuration process will determine the proper settings for your system The advantage of these options is that it permits you to customize your version of apcupsd If you save the
208. re details the system should be fully shutdown After performing this test please be sure to restore etc apcupsd apccontrol to its previous state Full Power Down Test To complete the testing you should do a power fail shutdown of your system This test is applicable to all UPS models Please do a backup of your system or take other precautions before attempting this to avoid the possibility of lost data due to a problem I have been through this at least 10 times and never once had problems but we all know that someday something will go wrong Before proceeding please ensure that your halt script or the equivalent has been properly updated by the install process to contain the logic to call apcupsd killpower when it detects a power failure situation the pres ence of a etc powerfail file See the Building and Installing apcupsd of this manual or the README files for additional details about the halt modifications necessary When you are ready to do the test either simply pull the plug and wait for the batteries to become exhausted or set the TIMEOUT configuration directive to something like 60 so that the system will shutdown before the batteries are exhausted We recommend doing the full shutdown without 61 using TIMEOUT to correctly simulate a real power failure but the choice is yours T did it once here but now use TIMEOUT 30 If all goes well your system should be shutdown before the batteries are com plet
209. rect apccontrol file and test that your computer is correctly shutdown during a power failure apcupsd conf v1 1 UPSCABLE number of cable you have UPSTYPE dumb DEVICE dev ttySO LOCKFILE var lock UPSCLASS standalone UPSMODE disable If your cable does not have low battery detection as is the case with some older models you will also need to define TIMEOUT nnn where you set nn to be the number of seconds on a power failure after which a shutdown is effected Normally you would have many more configuration directives to completely customize your installation but this example shows you the minimum re quired A Simple Master Configuration You have a Smart UPS using the cable supplied by APC and you want it to act as a master for another computer which is powered by the same UPS A very simple configuration file would look like the following tt apcupsd conf v1 1 UPSCABLE smart UPSTYPE smartups DEVICE dev ttySO LOCKFILE var lock UPSCLASS netmaster UPSMODE net NETTIME 10 NETPORT 6666 SLAVE slavel mynetwork com SLAVE slave2 mynetwork com 49 Note the main difference from the stand alone configuration is that you have specifed UPSCLASS netmaster and UPSMODE net In addition you have specified one or more slave machines In this mode of networking as opposed to using the net driver as described several sections below your master knows the presence of all the slaves They carry on a very explicit co
210. rees C Runtime calibration runs until battery is below 25 35 for Matrix This updates the j val ues only works at 100 battery charge Can be aborted with a sec ond D Automatic self test intervals Line frequency Hz Cause of transfer Shutdown with grace period set with p need gt 1 5s between first and second K Input line voltage Maximum line voltage received since last M query Minimum line voltage received since last N query Output voltage 176 SMART UPS 700 n a A large string 254 chars that gives the EEPROM permitted val ues for your model For details see below Light show OK and 2s beep Ranges typical 27 87 Ranges typical 036 0 when on battery on line Default 336 336 hours 14 days 336 14 days 168 7 days ON power on OF F never 60 00 50 0 in Europe R unacceptable utility voltage rate of change H high utility voltage L low utility voltage T line voltage notch or spike O no transfers yet since turnon S transfer due to serial port U command or activation of UPS test from front panel NA trans fer reason still not available read again Matrix 3rd gen SmartUPS Black Back UPS Pros OK all others 662K 99 Ranges typical 118 3 or 228 8 in Europe Ranges typical 118 9 or 230 1 in Europe Ranges typical 118 9 or 226 2 in Europe Ranges typical 118 3 or
211. results meant RS 232 differences Normal 9 pin serial connections have TxD on 3 and RxD on 2 APC s smart serial ports put TxD on pin 1 and RxD on pin 2 This means you go nowhere if you use a normal straight through serial cable In fact you might even power down the load if you plug one of those cables in This is due to the odd routing of pins DTR and RTS from the PC usually wind up driving the on off line So when you open the port they go high and poof your computer dies Originally this evil hack was used to connect the UPS to the PC when this 174 page was first being built As you can see I cheated and neglected the ground only 2 wires and it still worked This method can be used for playing around but for professional systems this is obviously not a viable option That hack didn t work out so well damned cats so it was retired quite awhile back The most practical solution was to go out and BUY the DOS Win version of PowerChute just for the black smart cable I rec ommend doing the same thing if you actually care about this thing working properly Of course if you have one of the newer packages that came with PowerChute you already have the cable you need Diagram for cable hackers If you are handy with cable creation tools check out the 940 0024C clone diagram That s the black smart cable normally provided with APC models sold after 1996 The loopback pins on that diagram are used to keep PowerCh
212. ring down the computer It should not with the logic used by apcupsd but if it does the p option could cause your computer to power off while the UPS is still suppling power i e before the UPS kills the power Depending on the setting of your BIOS it may prevent your computer from restarting when the power returns As already mentioned this should not apply but in case of problems it is worth a try Making sure apcupsd Is Running The simplest way to invoke apcupsd is from the command line by entering sbin apcupsd To do so you must be root However normally you will want apcupsd started automatically when your system boots On some systems with in stallation support e g SUSE and Red Hat the installation procedure will create a script file that you will be automatically invoked when your sys tem reboots On other systems you will have to invoke apcupsd from your rc local script On Red Hat systems this script file that automatically invokes apcupsd on system start and stops is etc rc d init d apcupsd 46 To start apcupsd manually as you will probably do immediately following the installation enter the following etc rc d init d apcupsd start To understand how this file is automatically invoked at system startup and shutdown see the man pages for chkconfig 8 On SUSE systems the script file that automatically invokes apcupsd on system start and stops is etc re d apcupsd To start apcupsd manually as you
213. rms and versions have had somewhat less testing The only architecture tested so far on any platform is 1386 althought there is no reason to think it will not work on other archs If you run the driver on a new platform version or architecture please report your experience good or bad to the apcupsd users mailing list 24 Kernel Configuration You will need to rebuild your kernel in order to enable the ugen driver and disable the uhid driver uhid is not sufficient for apcupsd at this time and we need to prevent it from grabbing the UPS device You should make the following changes to your kernel config file FreeBSD you will not lose use of USB keyboard and mouse Disable uhid Enable ugen NetBSD you will lose use of USB keyboard and mouse Disable uhidev ums wsmouse ukbd wskbd uhid Enable ugen OpenBSD you will lose use of USB keyboard and mouse Disable uhidev ums wsmouse ukbd wskbd uhid Enable ugen For detailed information on rebuilding your kernel consult these references FreeBSD http www freebsd org doc en US 1S08859 1 books handbook kernelconfig html NetBSD http www netbsd org guide en chap kernel html OpenBSD http www openbsd org faq fag5 htmlBuilding Verifying Device Detection and Driver After building a properly configured kernel reboot into that kernel and plug in your UPS USB cable You should see a dmesg log message like the following ugen0 American Power Conversion Back UPS R
214. rnal variables Please note that if you are running a pthreaded version of apcupsd which you should be since the non pthreaded version is no longer supported installed from rpm or enable pthreads on the configure line you must enable the apcupsd Network Information Server in your configuration file for apcaccess to work This is done by setting NETSERVER on NISPORT 3551 in your apcupsd conf file To run the apcaccess test use the following command apcaccess status Depending on the type of UPS you have you will get slightly different output but an example For a Smart UPS is as follows APC 001 048 1088 DATE Fri Dec 03 16 49 24 EST 1999 HOSTNAME daughter RELEASE 3 7 2 CABLE APC Cable 940 0024C MODEL APC Smart UPS 600 UPSMODE Stand Alone UPSNAME SU600 LINEV 122 1 Volts MAXLINEV 123 3 Volts MINLINEV 122 1 Volts LINEFREQ 60 0 Hz OUTPUTV 122 1 Volts 55 LOADPCT BATTV BCHARGE SENSE DWAKE DSHUTD LOTRANS HITRANS RETPCT STATFLAG STATUS ITEMP STESTI DIPSW REG1 REG2 REG3 MANDATE NOMOUTV NOMBATTV HUMIDITY AMBTEMP END APC 32 7 Percent Load Capacity 26 6 Volts 095 0 Percent MBATTCHG TIMELEFT MINTIMEL 15 Percent 19 0 Minutes 3 Minutes Medium 000 Seconds 020 Seconds 106 0 Volts 129 0 Volts 010 0 Percent 0x08 Status Flag ONLINE 34 6 C Internal ALARMDEL LASTXFER SELFTEST 336 DLOWBATT Low Battery Unacc
215. rocedure If you have a Back UPS CS or ES these UPSes generally have a fixed grace period of 2 minutes which is probably sufficient Power Down During Shutdown Our philosophy is to shutdown a computer but not to power it down itself as opposed to having the UPS cut the power as described above That is we prefer to idle a computer but leave it running This has the advantage that in a power fail situation if the killpower function described above does not work the computer will continue to draw down the batteries and the UPS will hopefully shutoff before the power is restore thus permitting an automatic reboot Nevertheless some people prefer to do a full power down To do so you might want to get a copy of PsShutdown which does have a power down option You can find it and a lot more useful software at http www sysinternals com ntw2k freeware pstools shtml to use their shutdown program rather than the apcupsd supplied version you simply edit c apcupsd etc apcupsd apccontrol 121 with any text editor and change our calls to shutdown to psshutdown Command Line Options Specific to the Windows Version These options are not normally seen or used by the user and are documented here only for information purposes At the current time to change the default options you must either manually run apcupsd or you must manually edit the system registry and modify the appropriate entries In order to avoid option clashes betwee
216. s RS232 Wiring and Signal 1141 Correspondence loctl to RS232 142 Credits 189 CUMONBATT 167 Current Code Maintainer and Project Manager 139 Customizing Event Handling 94 DATA Logging 112 151 DATATIME lt time gt 157 DATE 165 Description 74 Details Implementation 1112 Determining Which Voltage Signaling Cable You Have 148 Developers Notes DEVICE lt name of device gt 152 Diagram for cable hackers 175 Differences RS 232 171 Dip switch info 180 DIPSW 67 Directives Configuration 99 General Configuration Directory Installation 115 disable 155 Disclaimer 19 Disclaimer NO WARRANTY 1151 Discontents Shutown Sequence and its 109 Distribution Maintainers 190 DLOWBATT 166 doreboot 96 doshutdown 96 Driver Sample NIS Slave Configura tion Using the Net BI DSHUTD 166 Dumb Simple Configuration for a Simple Signaling or 48 dumb A DWAKE 166 EEPROM Configuring Your KA Programming the UPS 86 EEPROM Values 85 Email Notification of Events 120 emergency 96 End Pin Assignment for the Serial Port RS 232C 25 pin and 9 pin Female END APC 63 endselftest 98 EPROM Configuration Directives Used to Set the UPS 161 Errors 213 Bad APC magic from master MMM 103 Bad user magic from master MMM 03 Cannot bind local address probably already in use 102
217. s by pass mode starts If already in by pass INV is received and UPS goes online ERR received if UPS is unable to transfer Number of bad battery packs Load current Apparent load power Output voltage selection ed itable Front panel language Run time conservation Dip switch info Bit nnn count of bad packs con nected to the UPS nn nn true RMS load current drawn by UPS nnn nn output load as percent age of full rated load in VA A automatic according to in put tap M 208 VAC I 240 VAC E English F French G German S Spanish 1 2 Br R NO disabled or 02 05 08 minutes of runtime to leave in battery UPS shuts down early Switch Option when bit 1 4 Low battery alarm changed from 2 to 5 mins Autostartup disabled on SU370ci and 400 3 Audible alarm delayed 30 seconds 2 Output transfer set to 115 VAC from 120 VAC or to 240 VAC from 230 VAC 1 UPS desensitized input voltage range expanded Unused at this time Status bits This is probably the most important register of the UPS which indicates the overall UPS status Some common things you ll see e 08 On line battery OK e 10 On battery battery OK e 50 On battery battery low e SM Status bit is still not available retry reading 180 Bit Hex Bit 0 0x01 1 0x02 0x04 0x08 0x10 0x2
218. s form of networking In addition for this mode to work you must specify UPSTYPE net so that the proper driver is loaded The remainder of this section presents directives that apply to the old mas ter slave code that must be enabled by the enable master slave configu ration option UPSCLASS lt class of operation gt standalone shareslave share master and netslave netmaster are valid types standalone netslave netmaster are tested classes shareslave sharemaster classes are being tested The default is standalone and should be used for all machines pow ered by the UPS and having a serial port connection to the UPS but where there are no other computers dependent on power from the same UPS This is the normal case Use netmaster if and only if you have a serial port connection to the UPS and there are other machines deriving power from the same UPS This is required in all master configuration files Use netslave if and only if you have no serial port connection to the UPS but you derive power from it This is required in all slave configuration files and in this case you will also have UPSCABLE set to ether Use shareslave if and only if you are using a ShareUPS and connected to a BASIC Port with Simple Signal This code is not fully tested Use sharemaster if and only if you are using a ShareUPS and con nected to the ADVANCED Port Smart Signal control This code is not fully tested
219. s in fact a weakness The apcupsd maintainers develop it under Fedora Red Hat that port is accordingly the most up to date and best tested There are enough Debian Linux users that that port is also generally pretty fresh Slackware Linux is also fully supported apcupsd has also been ported to FreeBSD NetBSD OpenBSD HP UX Solaris Alpha Unix and the Cygwin Unix emulation under Windows It is quite likely to work on those systems though the port may occasionally get stale and require minor tweaking In Operating System Specifics you ll find operating system specific tips for building and configuring apcupsd 13 Supported UPSes and Cables You can generally count on your UPS being supported if it has either an Ethernet connected SNMP interface or a USB interface with an APC supplied cable The UPSTYPE Keyword field is the value you will put in your etc apcupsd apcupd conf file to tell apcupsd what type of UPS you have We ll describe the possible values here because they re a good way to ex plain your UPS s single most important interface property the kind of protocol it uses to talk with its computer apcsmart An APCSmart UPS and its computer also communicate through an RS232C serial connection but they actually use it as a character channel 2400bps 8 data bits 1 stop bit no parity and pass commands back and forth in a primitive language see resembling modem control codes The different APC UPSes all u
220. sd but the usb driver is built regardless To get the usb package and support either set the define usb O to define usb 1 in the spec file directly or pass it to rpmbuild on the command line rpmbuild ba define build rh7 1 define build usb 1 apcupsd spec other defines are used The only other define is for the initdir for the daemon control script On RedHat systems this is set to etc rc d init d You would only need to edit this if packaging for a platform with uses a different directory I m getting errors about not having permission when I try to build the packages Do I need to be root No you do not need to be root and in fact it is better practice to build rpm packages as a non root user Apcupds packages are designed to be built by a regular user but you must make a few changes on your system to do this If you are building on your own system then the simplest method is to add write permissions for all to the build directory usr src redhat To accomplish this execute the following command as root chmod R 777 usr src redhat If you are working on a shared system where you can not use the method above then you need to recreate the usr src redhat directory tree with all of it s subdirectories inside your home directory Then create a file named 188 rpmmacros in your home directory or edit the file if it already exists and add the following line h topdir home myuser redhat Credits
221. se closely related firmware so the language doesn t vary much later versions add more commands This class of UPS is in decline rapidly being replaced in APC s product line by USB UPSes usb A USB UPS speaks a universal well defined control language over a USB wire Most of APC s lineup now uses this method as of late 2003 and it seems likely to completely take over in their low and middle range Other manufacturers Belkin Tripp Lite etc are moving the same way though with a different control protocol for each manufacturer As long as USB hardware can be mass produced more cheaply than an Ethernet card most UPSes are likely to go this design route Please note that even if you have a USB UPS if you use a serial cable with it as can be supplied by APC you will need to configure your UPS as apcsmart rather than usb net This is the keyword to specify if you are using your UPS in Slave mode i e the machine is not directly connected to the UPS but to another machine which is and it is connected to the Master via an ethernet connection You must have apcupsd s Network Information Services NIS turned on for this mode to work It is a much simpler form of running a Slave than the old Master Slave code snmp SNMP UPSes communicate via an Ethernet NIC and firmware that speaks Simple Network Management Protocol dumb A dumb or voltage signaling UPS and its computer communicate through the signal lines on an RS232C serial connec
222. section of this manual The details of these directives are explained in the vonfiguration Directives for Sharing a UPS section of the Configura tion chapter of this document In addition sample master and slave configuration files can be found in the lt src gt examples directory apcupsd master conf and apcupsd slave conf 99 Master Slave Problems Master Slave Shutdown For additional details of shutting down a master slave configuration please see the Master Slave Shutdown section of the Shutdown chapter see Shutdown Sequence lt 1 gt of the Technical Reference Server Slave Networking using NIS and the NET Driver It is also possible to implement a network of NIS server slave apcupsds using the new 3 10 x code and the net driver This mode of NIS server slave networking is considerably different from the old method described at the beginning of this chapter In the old code there is a lot of configuration on both the master and slave side and the master polls or sends info to the slave Using the net driver is much simpler However you should carefully check that the NIS slave does a proper shutdown In the master slave code the master ensures the best it can that the slave is shutdown or notified before it shuts down itself On the other hand using the net driver the NIS server knows nothing about the NIS slaves that may be listening and thus takes no special precautions to ensure that the NIS slaves receive th
223. sence of the etc powerfail file and is necessary if you want your machine to automatically be restarted when the power returns On a Red Hat system the lines containing the apcupsd should be inserted just before the final halt command Remount read only anything that s left mounted 29 fecho Remounting remaining filesystems if any readonly mount awk ext2 print 3 while read line do mount n o ro remount line done echo Otherwise the UPS may cut the power during the reboot echo See if this is a powerfail situation if f etc apcupsd powerfail then echo echo APCUPSD will now power off the UPS echo etc apcupsd apccontrol killpower echo echo Please ensure that the UPS has powered off before rebooting fi Now halt or reboot echo message if f fastboot then echo On the next boot fsck will be skipped elif f forcefsck then echo On the next boot fsck will be forced fi The purpose of modifying the system halt files is so that apcupsd will be recalled after the system is in a stable state At that point apcupsd will instruct the UPS to shut off the power This is necessary if you wish your system to automatically reboot when the mains power is restored If you prefer to manually reboot your system you can skip this final system depen dent installation step by specifying the disable install distdir option on the configu
224. ssed after this character is sent Not implemented on SmartUPS v s BackUPS Pro or 3rd generation SmartUPS models 181 Register 1 Replace battery Sent when the UPS detects that the battery needs to be replaced Sent every 5 hours until a new battery test is run or the UPS is shut off Not implemented on SmartUPS v s or BackUPS Pro models Check alarm register for fault Measure UPS sent to signal that temp or humidity out of set limits Also sent when one of the contact closures changes states Sent every 2 minutes stops when the alarm conditions are reset Only sent for alarms enabled with I Cause of alarm may be determined with J Not on SmartUPS v s or BackUPS Pro Variable change in EEPROM Sent whenever any EEPROM vari able is changed Only supported on Matrix UPS and 3rd genera tion SmartUPS models All bits are valid on the Matrix UPS SmartUPS models only support bits 6 and 7 Other models do not respond Bit Hex Bit 0 0x01 1 0x02 2 0x04 3 0x08 4 0x10 5 0x20 6 0x40 7 0x80 Register 2 Meaning In wakeup mode typically lasts lt 2s In bypass mode due to internal fault see register 2 or 3 Going to bypass mode due to command In bypass mode due to command Returning from bypass mode In bypass mode due to manual bypass control Ready to power load on user command Ready to power load on user command or return of line power Matrix UPS models report bits 0 5 SmartUPS models only support bits 4 and 6
225. sten for connections on all network interfaces If your machine has more than one interface you can specify the IP of a single interface to limit connections to only that interface Furthermore you can specify the loopback address 127 0 0 1 to accept connections only from the local machine You may also use the with nisip option of the configure program to set this directive during the build This directive does not work on Win32 machines because inet ipton is not implemented there NISPORT lt port gt This configuration directive specifies the port to be used by the apcupsd Network Information Server The default is platform dependent but typically 3551 which we have received from IANA as the official apcupsd networking port If you change this port you must manually change the define SERV TCP PORT in cgi upsfetch c and rebuild the CGI programs An alternative is to use the with nis port option of the configure program during the build In this case all the appropriate locations will be automatically changed EVENTSFILE lt filename gt If you want the apcupsd network informa tion server to provide the last 10 events via the network you must specify a file where apcupsd will save these events The default is etc apcupsd apcupsd events Currently apcupsd will save at most the last 50 events Periodically once an hour by default apcupsd will check the size of this file When more than 50 events are recorded apcupsd w
226. supports all the popular APC models See the installation and configurations sections of this document for more details Does apcupsd support Windows With release 3 8 0 apcupsd now runs on Win95 98 WinMe WinNT and Win2000 machines All features of the Unix versions of apcupsd are implemented The UPS EEPROM programming features of apcupsd have not been tested under Windows Version 3 8 0 does not support simple signaling UPSes BackUPS etc Version 3 8 1 does support most simple signaling UPSes but not all cables due to deficiencies in the Windows serial port API Please note that we have had reports that apcupsd does not work properly on the WinXP system If you have any information on this please email us I don t have a cable which one should I build First you must know if you have an apcsmart UPS or a voltage signalling UPS See the table of supported UPSes see type table If you have a apcsmart UPS we recommend building a Custom Smart see a O able for Sma Ses cable If you have a voltage signaling UPS we recommend that you build a Custom Simple see Voltage Signalling Cable for dumb UPSes cable How much CPU resources does apcupsd use Depending on your CPU speed you may see more or less of the CPU consumed by apcupsd On a 400MHz Unix system the CPU usage should fall well below 0 1 On slower systems the percentage will in crease proportionally to the decrease in the CPU speed On a 400Mh
227. switch to battery power when the mains line quality is bad Normally this should be set to H but if you find your UPS switching to batteries frequently you might want to try a less sensitive setting providing that your computer equipment tolerates the poor quality mains This value is written to the UPS EPROM when the configure option is specified Under normal apcupsd operations no configure option apcupsd will read the value stored in the UPS and display it in the STATUS output WAKEUP lt set wakeup delay gt The UPS power restart delay value in 0 60 180 300 in seconds after the UPS has shut down during a power failure This is to prevent the power from coming back on too quickly after a power down and is important for those who have high rpm drives that need to spin down before powering them up again Some older SCSI models are very sensitive to this problem Default is zero This value is written to the UPS EPROM when the configure option is specified Under normal apcupsd operations no configure option apcupsd will read the value stored in the UPS and display it in the STATUS output SLEEP lt set sleep delay gt The UPS delay or grace period in 20 180 300 600 seconds before the UPS cuts the power to your 161 equipment The default is 20 seconds This value is written to the UPS EPROM when the configure option is specified Under normal apcupsdoperations no configure option apcupsd will read the value s
228. sword that gives a second level of identification security in a slave configuration file It is a character string up to 17 characters in length It should be unique for each slave When the slave makes initial contact with the master this string is passed to the master Then on each transmission from the master to the slave the string is passed back to the slave which checks that it is the correct string before accepting the master s information This string should be different for each and every slave on the network This directive is not required 160 Configuration Directives Used to Set the UPS EPROM NOTE THESE ARE DEPRECIATED AND NO LONGER WORK IN APCUPSD PLEASE USE APCTEST The values specified with the following directives are only used if the configure option is specified on the apcupsd command line and the UPS is capable of internal EPROM programming In that case apcupsd attempts to set the values into the UPSes EPROM Under normal operations the values for these parameters specified in the configuration file are not used Instead they are read from the UPS EPROM by apcupsd See Configuration Directives Used to Set the UPS EPROM of this manual for further details before attempting to reprogram your EEP ROM SENSITIVITY lt sets sensitivity level gt H igh M edium L ow This value determine how sensitive the UPS is to the mains quality and voltage fluctuations The more sensitive it is the quicker the UPS will
229. t CONFIG_USB_STORAGE_ISD200 is not set CONFIG_USB_STORAGE_DPCM is not set CONFIG_USB_STORAGE_HP8200e is not set CONFIG USB STORAGE SDDRO9 is not set CONFIG USB STORAGE SDDR55 is not set CONFIG USB STORAGE JUMPSHOT is not set HH H HOH OH OH USB Human Interface Devices HID CONFIG_USB_HID m CONFIG_USB_HIDINPUT y CONFIG HID FF is not set CONFIG_USB_HIDDEV y USB HID Boot Protocol drivers CONFIG_USB_KBD is not set CONFIG_USB_MOUSE is not set CONFIG_USB_AIPTEK is not set CONFIG_USB_WACOM is not set CONFIG_USB_KBTAB is not set CONFIG_USB_POWERMATE is not set CONFIG_USB_MTOUCH is not set CONFIG_USB_XPAD is not set CONFIG_USB_ATI_REMOTE is not set HH HH H HOH H HOH OH OH USB Imaging devices CONFIG_USB_MDC800 is not set CONFIG_USB_MICROTEK is not set CONFIG_USB_HPUSBSCSI is not set HH HH USB Multimedia devices HH HH CONFIG USB DABUSB is not set 193 Video4Linux support is needed for USB Multimedia device support USB Network adaptors CONFIG_USB_CATC is not set CONFIG_USB_KAWETH is not set CONFIG_USB_PEGASUS is not set CONFIG_USB_RTL8150 is not set CONFIG_USB_USBNET is not set FHHHHHEHH USB port drivers HH HH CONFIG USB USS720 is not set USB Serial Converter support HH CONFIG_USB_SERIAL is not set USB Miscellaneous drivers CONFIG_USB_EMI62 is not set CONFIG_USB_EMI26 is not set CONFIG_USB_TIGL is not set CONFIG_USB_AUERSWALD is not set CONFIG_USB_RIO
230. t 2 seconds during boot and checked out the batteries They did indicate that they were near the end of life so I ordered a replacement set Those came in on Friday and after the initial charge a complete charge discharge cycle to recalibrate the UPS and some testing I put it back in service Surprise Or maybe not Kern was right there is nothing wrong with the inverter or the charging circuit and the new cells fixed everything What confused me is that there was no replace battery indi cation from the UPS even when it failed plus a fair amount of runtime indicated with a full charge So if you see such behavior on one of your UPS models it makes sense to replace the bat teries even if there is no indication that the batteries have failed yet One of the things I learned during this process is that the UPS internal calibration will lose accuracy over the life of the battery I always do a recalibrate when I install new cells but rarely do it after that as it s time consuming and you really can t use the system attached to the UPS while doing it Since my systems are almost constantly in use it s a pain to schedule a recal and I tend to put it off This time it bit me Pd suggest that folks do a recal at least once every six months It will make your runtime estimates much more accurate and also allows you to keep track of the state of your batteries For those who don t know how to do this here s what y
231. t address for the serial port 117 Upgrading An upgrade may be accomplished by uninstalling the old version using the Add Remove Programs Control Panel or clicking the Uninstall Apcupsd link from Start gt Programs gt Apcupsd Near the end of the uninstall you will be prompted about removing configuration and event files You should answer No in order to preserve your existing apcupsd conf file After the uninstall completes you may install the new version of Apcupsd as described above If you preserved your existing apcupsd conf file the new apcupsd conf will be installed as apcupsd conf new Post Installation After installing apcupsd and before running it you should check the contents of two files to ensure that it is configured properly for your system The first is c apcupsd etc apcupsd apcupsd conf You will probably need to change your UPSCABLE directive your UPSTYPE and possibly your DEVICE directives Please refer to the configuration section of this manual for more details The second file that you should examine is c apcupsd etc apcupsd apccontrol This file is called by apcupsd when events power loss etc are generated It permits the user to program handling the event In particular it permits the user to be notified of the events For the Win32 version each event is programmed to display a Windows popup dialogue box If your machine is mostly unattended you may want to comment out some of these
232. t hesitate to tell me Miquel van Smoorenburg The Doctor What Pavel Korensky and Russell Kroll lt rkroll at exploits org gt for the CGI programs Jonathan Benson lt jbenson at technologist com gt for adapting the upsstatus cgi program to work with apcupsd The gd 1 2 Image Library used in our CGI programs is copyright 1994 1995 Quest Protein Database Center Cold Spring Harbor Labs Permission granted to copy and distribute this work provided that this notice remains intact Credit for the library must be given to the Quest Protein Database Center Cold Spring Harbor Labs in all derived works This does not affect your ownership of the derived work itself and the intent is to assure proper credit for Quest not to interfere with your use of gd gd 1 2 was written by Thomas Boutell and is currently distributed by boutell com Inc Parts of the VNC project by ATT cool code were used as templates for our Win32 code see http www uk research att com vnc Disclaimer NO WARRANTY BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE THERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PERMIT TED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED 191 IN WRITING THE COPYRIGHT HOLDERS AND OR OTHER PAR TIES PROVIDE THE PROGRAM AS IS WITHOUT WARRANTY OF ANY KIND EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MER CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE THE ENTIRE RISK AS TO THE QUA
233. t only one minute remains This can lead to a shutdown before you might expect it because regardless of the runtime re maining that is reported the UPS will always correctly detect low batteries and report it thus causing apcupsd to correctly shutdown your computer If you wish to have the UPS recalibrate the remaining runtime calculations you can do so manually as the current version of apcupsd does not support this feature To do so e Shutdown apcupsd e contact your UPS directly using some terminal program such as mini com tip or cu with the settings 2400 8N1 2400 baud 8 bits no parity 1 stop bit Be extremely careful what you send to your UPS as certain characters may cause it to power down or may even cause damage to the UPS Try sending an upper case Y to the UPS with out a return at the end It should respond with SM If this is not the case read the chapter on testing If you fat finger the Y and enter y instead no cause for alarm you will simply get the APC copyright notice 149 e when you are sure you are properly connected send an upper case D no cr This will put the UPS into calibration mode and it will drain the battery down to 25 capacity 35 for a Matrix at which point it will go back on the mains In doing so it will recompute the runtime calibration e If you wish to abort the calibration enter a second D command e When you are done restart apcupsd In principle you should be able to do t
234. t won t be easy but after you have pulled the plug a few times you may even come to enjoy it If all goes well apcupsd should detect the power failure and print several warning messages The first should appear after 5 to 6 seconds and read Warning power loss detected Then generally 6 seconds later apcupsd is sure that it isn t a transient effect so it sends Power failure Running on UPS batteries 59 After a few more seconds total around 15 seconds plug the power cord back in and ensure that apcupsd is aware that the power has returned It should print Power has returned If you do not observe the above messages please correct the situation before proceeding The most likely cause of problems are e apcupsd doesn t recognize the power failure because the configuration directives are not correct E g wrong cable e The file etc apcupsd apccontrol doesn t exist or is not marked as executable At this point we recommend that you do a simulated power down of your system If you are adventuresome or have been through this before skip to the next section in this manual and do the real power fail shutdown If you continue with the simulated power down and if all goes well apcupsd will go through all the motions without actually shutting down the system Continue using the safe apccontrol that you installed Edit the configuration file apcupsd and change the value of TIMEOUT from 0 to something like 30 Doing so w
235. th UPS lost What is the problem A We use standard Unix serial port read and write calls so once a connection is made we generally have few problems However there have been reports that APC s SNMP Management Card can cause serial port problems If you have such a card we suggest that you remove it and see if the problem goes away It is also possible that some other process such as a getty is reading the serial port Q When apcupsd starts I get the following error attach shmarea cannot get shm area Identifier removed What is the problem A This problem and the problem of cannot create shm area are due to the fact that the shared memory key that apcupsd wants to use is already in use This happens most frequently when there is an old zombie apcupsd process still in the system The solution is to remove the old process You can often see what is going on by doing a ipcs command as root when apcupsd is not running If you see a segment with the key 0x10feed01 you can be sure there is some old apcupsd process still using it If you cannot kill the old process you can try using ipcrm see the man pages Recent versions of apcupsd starting with apcupsd 3 8 2Beta6 should no longer have this problem as they will automatically try using a different key Q I get the following error Starting apcupsd power management Mar 20 21 19 40 box apcupsd 297 apcupsd FATAL ERROR in apcserial c at line 83 Cannot open UPS tty dev c
236. that a number of the configure options preset apcupsd conf di rective values in an attempt to automatically adapt apcupsd as best possible to your system You can change the values in apcupsd conf at a later time without redoing the configuration process by simply editing the apcupsd conf file Other configuration options can be used to set up the installation of HTML documentation and optional modules notably the CGI interface that enables the UPS state to be queried via the Web and the optional powerflute curses based control panel Still others enable features such as thread support You will find a complete reference later in this chapter In general you will probably want to supply a more elaborate configure statement to ensure that the modules you want are built and that everything is placed into the correct directories On Red Hat a fairly typical configuration command would look like the following CFLAGS g 02 LDFLAGS g configure enable usb with upstype usb with upscable usb prefix usr N sbindir sbin with cgi bin var www cgi bin enable cgi 28 with css dir var www docs css N with log dir etc apcupsd enable pthreads enable powerflute By default make install will install the executable files in sbin the man uals in usr man and the configuration and script files in etc apcupsd In addition if your system is recognized certain files such as the startup script
237. that is described above This is a master slave setup but much simpler the NIS server does not know about the slaves and any NIS server even a slave can act as a server to a slave that listens to it The NETTIME directive defines the time interval that the slave uses to poll the NIS server If you set this too large your slave may not see the change in state of the NIS server before the server has shutdown Normally you have at least 30 seconds of grace time between the time the NIS server decides to shutdown and the time it no longer responds Your slave must poll during this interval 52 This mode works principally by reading the STATFLAG record that is sent by the NIS present in the output of apcaccess The low 16 bits are the standard APC status flag and the upper 16 bits represent the internal state of apcupsd so the slave can see when the power fails and know when to shutdown As with the Master Slave configuration any slave run using the Net driver will shutdown when its own timers expire or when the NIS server shuts down whichever occurs first This means that if you want the slave to shutdown before the server you need only set BATTERYLEVEL or any of the other values on the slave for a faster shutdown than the values defined on the NIS server Testing Apcupsd The following testing procedures apply for the most part to apcsmart UPSes whether USB or serial If you have a dumb voltage signalling UPS your testing pro
238. the filesystem Issue the command as root mount t usbfs none proc bus usb An alternative and more permanent method would be to add none proc bus usb usbfs defaults 0 0 to etc fstab This will mount usbfs at each reboot You can then issue cat proc bus usb devices to extract USB device information and user mode drivers can use usbfs to interact with USB devices There are a number of mount options supported by usbfs Consult the source code linux drivers usb core inode c for information about those options NOTE The filesystem has been renamed from usbdevfs to usbfs to reduce confusion with devfs You may still see references to the older usbdevfs name 202 For more information on mounting the usbfs file system see the USB Device Filesystem section of the USB Guide The latest copy of the USB Guide can be found at http www linux usb org THE proc bus usb BBB DDD FILES Each connected USB device has one file The BBB indicates the bus number The DDD indicates the device address on that bus Both of these numbers are assigned sequentially and can be reused so you can t rely on them for stable access to devices For example it s relatively common for devices to re enumerate while they are still connected perhaps someone jostled their power supply hub or USB cable so a device might be 002 027 when you first connect it and 002 048 sometime later These files can be read as binary data The bi
239. the events command and finally Invalid command in response to the xyz input which is not a valid command The control D terminates the client pro gram The purpose of this program is to show you how to write your own program that can determine the status of apcupsd and act any way you want e g send you email messages on certain events like line voltage boost A Tip from Carl Erhorn for Sun Systems It is possible to run the CGI code to monitor your UPS using the answerbook HTTP server that runs on Solaris As long as your server has the Answer book2 web server installed and running you can insert the cgi scripts into the cgi directory of the web server and access the cgi using something like http hostname 8888 cgi multimon cgi Credits Many thanks go to Russell Kroll lt rkroll at exploits org gt who wrote the CGI programs to work with his UPS Monitoring system named Network UPS Tools NUT Thanks also to Jonathan Benson lt jbenson at technologist com gt for initially adapting the upsstatus cgi program to work with apcupsd We have enhanced the bar graph program and hope that our changes can be useful to the original author in his project Security Issues e apcupsd runs as root e Ifyou have NETSERVER ON in your apcupsd conf file which is the deault be aware that anyone on the network can read the status of your UPS This may or may not pose a problem If you don t consider this information privileged as
240. the same as what you got using apcaccess but in addition the EEPROM battery date and UPS Name should be displayed For example Select function number 1 Doing prep_device Valid EEPROM values for the SMART UPS 1000 Config Current Permitted Description Directive Value Values Upper transfer voltage HITRANSFER 253 253 264 271 280 Lower transfer voltage LOTRANSFER 196 196 188 208 204 Return threshold RETURNCHARGE O 00 15 50 90 Output voltage on batts OQUTPUTVOLTS 230 230 240 220 225 Sensitivity SENSITIVITY H HMLL Low battery warning LOWBATT 2 02 05 07 10 Shutdown grace delay SLEEP 20 020 180 300 600 Alarm delay BEEPSTATE 0 OTLN Wakeup delay WAKEUP 0 000 060 180 300 Self test interval SELFTEST 336 336 168 ON OFF Battery date 07 31 99 UPS Name UPS_IDEN At this point you can select any item from 2 to 13 to modify the appro priate value You will shown the existing value and prompted for the new values We recommend that you change the EEPROM as little as is absolutely nec essary since it is a somewhat delicate process that has occasionally produced problems i e improper EEPROM values are displayed after the update Fortunately this seems to be quite rare and was much more likely to occur with the old batch like process especially if incorrect values were supplied 80 Maintaining Your UPS If you have your UPS long enough you will probably have battery prob lems Below you will find some suggestions for replacing
241. timon cgi display you will invoke upsstats cgi for the specified system which will produce a bar graph display of three of the monitored values For example Thu Dec 02 17 14 44 CET 1999 Battery Capacity Utility Voltage UPS Load 100 27 12 Monitoring matou sibbald com alo w UPS Modei SMART UPS 1000 UPS Name UPS_IDEN APCUP3D Version 3 7 0 beta 1 80 260 100 Status ONLINE 60 245 7 Last UPS Self Test NO Last Test Date N A 40 230 50 Utility Voltage vac Line Minimum vac 20 215 25 Line Maximum 232 7 VAC Output Freq 50 0 Hz 0 200 0 UPS Temp 35 1 C y 100 0 62 Most recent events apcupsd 3 6 3 startup succeeded 190 1999 apcupsd exiting signal 15 1999 apcupsd shutdown succeeded 1999 apcserver startup succeeded 1999 apcupsd 3 7 0 beta 1 startup succeeded You can display different bar graphs by selecting different variables from the drop down menus at the top of each of the three bar graphs As with multimon if you have your local host configured in the etc apcupsd hosts conf file you can execute it from a Unix shell from the source cgi directory as follows upsstats cgi As with multimon quite a few lines of html should then be displayed upsfstatus cgi If you would like to see all of the STATUS variables available over the network click on the Data field of the desired system and your browser 73 will display something like the following APC DATE RELEASE
242. tion Not much 14 can actually be conveyed this way other than an order to shut down Voltage signaling UPSes are obsolete you are unlikely to encounter one other than as legacy hardware If you have a choice we recommend you avoid simple signalling UPSes The table shown below lists the APC model supported and the possible kewords that you would use in the configuration with the listed cables See below for more details on the keywords Some of the models particularly USB enabled models can be run in multiple modes so they may appear more than once in the table APC is putting out new models at a furious rate and so it is very likely that your model is not listed in the table If it is USB enabled it will probably work in USB mode Please note that some of these new models are extremely inexpensive so they are stripped down versions of more expensive units and as such they do not offer as many features so some of the example output you see elsewhere in this manual may not be available with your unit APC Model Model UPSTYPE Keyword UPSCABLE keywords for Cable BackUPS CS Ee a A serial mode apcsmart smart note using Smart Custom RJ45 the new Back UPS RS 500 models are reported NOT to work with this cable BackUPS Pro Smarter BackUPS Pro 940 0095A SmartUPS SmartUPS VS AE has not been apcsmart smart note confirmed that the cable shipped with the VS using Smart is a 940 0095 PowerStack 450 Matrix UP
243. tions openbsd README file before run ning apcupsd There are some critical differences in how the OpenBSD implementation operates when the UPS batteries are exhausted Failure to take this into account may result in the system not being fully halted when power is lost Please read the comments on the pthreads implementation in the FreeBSD section above as they may apply equally to OpenBSD PLEASE NOTE Due to some deficiencies or errors in the OpenBSD pthreads libraries if you build apcupsd on OpenBSD with pthread and a child program is launched i e mail notification of events this may cause OpenBSD to freeze up The best solution is probably to build without pthread However in doing so you must realize that the bulk of this man ual assumes that pthreads is enabled and thus many of the comments about apcaccess will not be applicable A second solution that seems to work is to delete all calls to the email notification routines from apccontrol In doing so some users have succeeded in running apcupsd with pthreads If you want to know the technical problems with pthreads on OpenBSD it is as best we can tell because the pthreads are not real kernel pthreads as on Linux and Solaris but rather a user program that makes all I O non blocking So when apcupds does I O the userland pthreads libarary will switch to another thread if it wants to run This works fine except that when a child process is called and it exits all the blocking non blo
244. tml FreeBSD This port is complete and is being used by several users As of version 3 8 3 we do not recommend that you compile apcupsd with pthreads enabled This is because the current FreeBSD implementation of pthreads runs as a single process and thus is less efficient consumes more CPU time than the forking version of apcupsd We hope to rectify this in a future version by using the FreeBSD LinuxThreads implementation of pthreads On the FreeBSD OS there is no known way for a user program to get control when all the disks are synced This is needed for apcupsd to be able to issue the killpower command to the UPS so that the UPS shuts off the power To accomplish the same thing on FreeBSD systems make sure you have a SmartUPS and that your UPS shutdown grace period is set sufficiently long so that you system will power down usually 2 minutes the use the kill on powerfail option on the apcupsd command line Please note the concerns listed below under OpenBSD concerning the use of pthreads HPUX We have no reports from testing this yet on version 3 8 4 but worked fine on 3 8 1 NetBSD Submitted during development of 3 8 2 this should be a complete distri bution Please read the comments on the pthreads implementation in the FreeBSD section above as they may apply equally to OpenBSD Please note the concerns listed below under OpenBSD concerning the use of pthreads 37 OpenBSD Ensure that you read the distribu
245. tored in the UPS and display it in the STATUS output LOTRANSFER lt lower limit of ups batt transfer gt This sets the low line voltage point at which to switch over to batteries Differ ent values are permitted based on the UPS model classification and manufacture date Use apcaccess eeprom to show you which values are permitted This value is written to the UPS EPROM when the configure option is specified Under normal apcupsdoperations no configure option apcupsd will read the value stored in the UPS and display it in the STATUS output HITRANSFER lt upper limit of ups batt transfer gt This sets the high line voltage point to switch over to batteries Different values are permitted based on the UPS model classification and manufacture date Use apcaccess eeprom to show you which values are permit ted This value is written to the UPS EPROM when the configure option is specified Under normal apcupsdoperations no configure option apcupsd will read the value stored in the UPS and display it in the STATUS output RETURNCHARGE lt min batt charge level gt This parameter specifies what battery percentage charge is necessary before the UPS will supply power to your equipment after a power down Different values are permitted based on the UPS model classification and manufacture date Use apcaccess eeprom to show you which values are permitted This value is written to the UPS EPROM when the configure option is s
246. ua01 No such file or directory What is the problem A The two most likely causes of your problem are 1 You have the wrong serial port device name in the apcupsd conf file 2 The device name is not defined on your system Suggestions for proceeding For the first item check what your serial port device should be named You might be able to find the name with an ls dev 91 Normally there will be hundreds or even thousands of names that print If that doesn t produce anything useful you can try step 2 Perhaps your device is not defined To get more information on your devices try man MAKEDEV or find name MAKEDEV It is often located in dev MAKEDEV Looking at the documentation may tell you what the correct name is or at least allow you to create the device Q How do I ensure that the slaves shutdown before the master A There are several strategies for getting the slaves properly shutdown before shutting down the master The first is to make the master wait a period of time for the slaves to shutdown before doing its own shutdown Currently the master always waits 30 seconds be fore starting its own shutdown If this is insufficient you can add additional time by putting an appropriate sleep shell command in the etc apcupsd apccontrol file just before the actual system shutdown command is executed there are something like 3 places The second strategy is to put a TIMEOUT value in the apcupsd conf file on the slave t
247. ually you may do so by selecting the Start Apcuspd link from the Start gt Programs gt Apcupsd folder On Windows NT 2000 XP you may alternatively go to the Control Panel open the Services folder select Apcupsd UPS Server and then click on the Start button as shown below Services Xx Service 3Com dRMON SmartAgent PC Software Started Automatic Alerter Started Automatic Apcupsd UPS Server Automatic AutoShutdown Started Automatic Client Service for NetWare Started Manual ClipBook Server Manual COM Event System Manual Computer Browser Started Automatic DHCP Client Disabled Directory Replicator Manual HW Profiles Startup Parameters O Help 116 If the Services dialog reports a problem it is normally because your DEVICE statement does not contain the correct serial port name You probably should also click on the Startup button to ensure that the correct defaults are set The dialogue box that appears should have Startup Type set to Automatic and Logon should be set to System Account with Allow Service to Interact with Desktop checked If these values are not set correctly by default please change them otherwise apcupsd will not work For WinXP and Win2K systems the dialogs are a bit different from those shown here for WinN T but he concept is the same You get to the Ser vices dialog by clicking on Control Panel gt Administrative Tools gt Component Services The ap
248. ub 00 Prot 00 Driver hub Bus 00 Lev 02 Prnt 02 Port 00 Cnt 01 Dev 3 Spd 1 5 MxCh 0 If O Alt O EPs 1 Cls 03 HID gt Sub 01 Prot 02 Driver mouse Bus 00 Lev 02 Prnt 02 Port 02 Cnt 02 Dev 4 Spd 12 MxCh 0 If O Alt O EPs 3 Cls 00 gt ifc Sub 00 Prot 00 Driver serial Physically this looks like or could be converted to PC root_hub 12 Dev 1 nn is Mbps Level 0 CN O CN 1 CN connector port Ho Level 1 Dev 2 4 port hub 12 Ho ICN O CN 1 CN 2 CN 3 Ne tee te AT NA N N So Level 2 Dev 3 mouse 1 5 Dev 4 serial 12 So 201 Or in a more tree like structure ports Connectors without connections could be omitted PC Dev 1 root hub 2 ports 12 Mbps CN O Dev 2 hub 4 ports 12 Mbps _ CN O Dev 3 mouse 1 5 Mbps _ CN 1 _ CN 2 Dev 4 serial 12 Mbps CN 3 CN 1 END HH Interpreting proc bus usb linux 2 6 Interpretation of proc bus usb info on 2 6 kernels proc bus usb filesystem output version 2003 05 30 The usbfs filesystem for USB devices is traditionally mounted at proc bus usb It provides the proc bus usb devices file as well as the proc bus usb BBB DDD files NOTE If proc bus usb appears empty and a host controller driver has been linked then you need to mount
249. ult these BBB DDD files are writable only by root only root can write such user mode drivers You can selectively grant read write permissions to other users by using chmod Also usbfs mount options such as devmode 0666 may be helpful THE proc bus usb drivers FILE Each of the USB device drivers linked into your kernel statically or dynamically using modprobe is listed in the drivers file Here s an example from one system usbdevfs hub 0 15 usblp usbnet serial usb storage pegasus If you see this file usbdevfs and hub will always be listed since those are part of the usbcore framework Drivers that use the USB major number 180 to provide character devices will include a range of minor numbers as shown above for the usblp actually printer o module USB device drivers can of course use any major number but it s easy to use the USB range since there s explicit support for subdividing it in the USB device driver framework THE proc bus usb devices FILE In proc bus usb devices each device s output has multiple lines of ASCII output I made it ASCII instead of binary on purpose so that someone can obtain some useful data from it without the use of an auxiliary program However with an auxiliary program the numbers in the first 4 columns of each T line topology info Lev Prnt Port Cnt can be used to build a USB topology diagram Each line is tagged with a one character ID for t
250. ur particular needs Currently it puts a Windows dialogue on the screen with a brief explanation of the event If these dialogues annoy you you can remove or comment out the calls to popup from this file Email Notification of Events On Win95 98 systems it is possible to receive notification of apcupsd events that are passed to apccontrol This is possible using a simple email program that unfortunately is not functioning 100 correctly In addition I Kern was not able to make this program work on WinNT while apcupsd is running as a service under the system account it works fine with any user account If you wish to try this program on Win95 98 systems look at the files named changeme commfailure commok onbattery and mains back in the directory c apcupsd examples To use them you must modify the SYSADMIN variable to have a valid email address then copy the files into the directory c apcupsd etc apcupsd Killpower under Windows If your batteries become exhausted during a power failure and you want your machine to automatically reboot when the power comes back it is useful to implement the killpower feature of the UPS where apcupsd sends the UPS the command to shut off the power In doing so the power will be cut to your PC and if your BIOS is properly setup the machine will automatically reboot when the power comes back This is important for servers This feature is implemented on Unix systems by first requesting a system
251. user defined magic gt used only SLAVE configuration files L60 Using apctest on Serial Line UP Sses 146 in Values EEPROM 385 Variation on the Master Slave Configuration BI Verifying a Source Installation 29 Version Command Line Options Spe cific to the Windows 122 Voltage Signalling 130 Voltage Signalling Features Sup ported by Apcupsd for Various Cables 130 Voltage Signalling Cable for dumb UPSes 27 219 WAKEUP lt set wakeup delay gt 161 WARRANTY Disclaimer NO 191 WEB Interfaces 190 What Various People Have to Say about Batteries 81 Where Carl Suggests You Get Batteries 87 Win32 Implementation Restric tions for Simple UPSes Win32 Port 190 Windows Killpower under 20 Windows Considerations 174 Windows Version of apcupsd 114 Wrappers TCP A XOFFBATT 64 XONBATT 67
252. ust also stop apcnisd before you can restart apcupsd This is because apcnisd when run standalone holds the shared memory buffer by which apcnisd and apcupsd communicate This prevents a new execution of apcupsd from creating it To execute apcnisd in standalone mode first ensure that the NET SERVER directive in etc apcupsd apcupsd conf is set to off This is necessary to prevent apcupsd from starting a child process that acts as a server Restart apcupsd normally then sbin apcnisd The advantage of running the network information server standalone is that if for some reason a client causes the network server to crash it will not affect the operation of apcupsd apcupsd System Logging The apcupsd philosophy is that all logging should be done through the sys log facility see man syslog This is now implemented with the exceptions that STATUS logging for compatibility with prior versions is still done to a file and EVENTS logging can be directed to a temporary file so that it can be reported by the network information server 111 Logging Types apcupsd splits its logging into four separate types called 1 DEBUG 2 DATA 3 STATUS 4 EVENTS Debug logging consists of debug messages Normally these are turned on only by developers and currently there exist very few of these debug mes sages DATA Logging Data logging consists of periodically logging important data concerning the opera tion of the UPS
253. ute happy by allowing cable detection If you use the NUT apcsmart driver those pins don t matter Many thanks to Steve Draper for providing this scan For additional information on cables see the section on custom cables see in this manual The Smart Protocol Despite the lack of official information from APC this table has been con structed It s standard RS 232 serial communications at 2400 bps 8N1 Don t rush the UPS while transmitting or it may stop talking to you This isn t a problem with the normal single character queries but it really does matter for multi char things like 000 Sprinkle a few calls to usleep in your code and everything will work a lot better The following table describes the single character Code or command that you can send to the UPS its meaning and what sort of response the UPS will provide Typically the response shown below is followed by a newline n in C and a carriage return r in C If you send the UPS a command that it does not recognize or that is not available on your UPS it will normally respond by NA for not available otherwise the response is given in the Typical results column gt Code Meaning Typical results 175 A N Jawe Model string Turn on UPS send twice with gt 1 5s delay between chars Only on 3rd gen SmartUPS and Black Back UPS Pros Permitted EEPROM Values Front panel test Battery voltage Internal temperature deg
254. xcept that the line is normally closed and opens when the line voltage fails The Back UPS Office 500 signals The Back UPS Office UPS has a telephone type jack as output which looks like the following Looking at the end of the connector It appears that the signals work as follows UPS Signal meaning 1 brown lt Shutdown when set by computer for 1 5 seconds 2 black gt On battery power 3 blue gt Low battery 4 red Signal ground 5 yellow lt Begin signalling on other pins 6 none none Analyses of APC Cables 940 0020B Cable Wiring This diagram is for informational purposes and is not complete Although we do not know what the black box semi conductor contains we believe that we understand its operation many thanks to Lazar M Fleysher for working this out This cable can only be used on voltage signalling UPSes and provides the On Battery signal as well as kill UPS power Most recent evidence Lazar s 131 analysis indicates that this cable under the right conditions may provide the Low Battery signal This is to be confirmed APC Parti 940 0020B Signal Computer CTS DTR GND DCD RTS DB9F 1 ae 7 if sss se 5 INMI 1 1 probably a o semi conductor Thanks to Lazar M Fleysher 940 0020C Cable Wiring On Battery Kill power Ground Common Low Battery This diagram is for informational purposes and may not be complete we don t recommend that use
255. y Normally after the power is cut and restored you must explicitly press a button for the power to actually be turned on You can test your computer by powering it down shutting off the power pull the plug then plugging the cord back in If your computer immediately starts up good 45 There is nothing more to do If your computer does not start up manually turn on the power by pressing the power on button and enter your computer s SETUP program often by pressing DEL during the power up sequence sometimes by pressing F10 You must then find and change the appropriate configuration parameter to permit instant power on Normally this is located under the BOOT menu item and will be called something such as Restore on AC Power Loss or Full On The exact words will vary according to the ROM BIOS provider Generally you will have three options Last State Power On and Power Off Although Last State should normally work we recommend setting your computers to Power On This means that whenever the power is applied they are on The only way to shut them off is to pull the plug or to have a special program that powers them off sbin poweroff on Linux systems If after making all the changes suggested above you cannot get your computer to automatically reboot you might examine your halt script etc rc d init d halt in the case of Red Hat Linux and see if the final line that performs the halt or reboot contains the p option for powe
256. y usbdevs It is probably a good idea to create several sets of ugen nodes in case you add more USB devices Building and Installing apcupsd Installation from Binary Packages Red Hat Linux For Red Hat systems apcupsd is available in binary RPM format This is the simplest way to install If you have no previous version of apcupsd on your machine and are creating a standalone configuration simply install the RPM with a normal rpm ihv command You re done and can now skip the 26 rest of this chapter and go straight to tweaking your run time configuration file see After Installation If you have a previous installation you can upgrade with a normal rpm Uhv but this may not upgrade the halt script It may be better to do the upgrade as a remove rpm e foll owed by a fresh install rpm ihv After installation of the binary RPM please verify carefully that etc re d init d halt was properly updated and contains new script lines flagged with APCUPSD Since there is no standard location for cgi bin the rpm will place the binary CGI programs in the directory etc apcupsd cgi To actually use them you must copy or move them to your actual cgi bin directory which on many systems is located in home httpd cgi bin Microsoft Windows If you have a binary release of the Win32 apcupsd please see the section describing the Windows version of Apcupsd Installation from Source Installation from source might have to
257. you are installing Apcupsd for the first time the installer will give you an opportunity to edit the apcupsd conf configuration file to contain the values appropriate for your site Subsequent installations will maintain your existing apcupsd conf so you need not edit it again unless there are new features or syntax changes that must be accounted for In most cases no changes will be needed but if you are not using COM1 for your serial port you will need to set the DEVICE configuration directive to the correct serial port Note if you are using WinNT or Win2000 the operating system may probe the port attempting to attach a serial mouse This will cause apcupsd to be unable to communicate with the serial port If this happens or out of precaution you can edit the c boot ini file Find the line that looks something like the following 115 multi 0 disk 0 rdisk 0 partition 1 WINNT Windows NT Workstation Version 4 00 and add the following to the end of the line NoSerialMice COM1 or COM2 depending on what you want to use The new line should look similar to multi 0 disk 0 rdisk 0 partition 1 WINNT Windows NT Workstation Version 4 00 No Where the only thing you have changed is to append to the end of the line This addition will prevent the operating system from interferring with apcupsd Starting Apcupsd The installer will give you an opportunity start the Apcupsd service imme diately If you choose to start it man
258. z Win98 machine the CPU usage will be on the order of 0 5 1 0 This 89 is higher than for Unix systems However compared to the 30 CPU usage by APC s PowerChute the version on the CDROM shipped with my UPS apcupsd s 0 5 1 0 is very modest If you configure apcupsd to run with pthreads with pthreads on the configure line apcupsd will run considerably faster otherwise said it will consume less of your CPU and it will use approximately one third of the memory For example Carl Erhorn reports that on his Solaris system With the old 3 process version we averaged about 4 8MB of total memory used With the new single process we use only about 1 7MB That s also a very good improvement Q What language is apcupsd written in A It is written entirely in C Q We are using apcupsd 3 8 1 1 in RedHat 6 2 The slave when shutting down is reporting an error at line 436 of apcupsd c The error is initiated by apcupsd killpower What can we do to fix this and is it critical A No the error is not serious Unfortunately the documentation in the area of master slaves is not very detailed and for that reason your slave setup is not totally correct as explained below On master machines we modify etc rc d init d halt to re invoke apcupsd with the killpower option actually the script apccon trol is called This causes the UPS to send the codes to the UPS to make it power off On slave machines these modifi
Download Pdf Manuals
Related Search
Related Contents
Серт СМА 87-107 рус+ англ +нем Exquisit - копия.indd Eglo 20168A Installation Guide Tripp Lite Cat6 Gigabit Snagless Molded Patch Cable (RJ45 M/M) - Black, 10-ft. MR-7 Manual 照明器具取扱説明書 型番:YTL-348 Manual DE INSTRUCCIONES User manual THERA ドリブンスプロケット 取扱説明書 Dispositif d`assistance ventriculaire gauche HeartMate II Commands - Flint Machine Tools, Inc. Copyright © All rights reserved.
Failed to retrieve file