网络通信 频道

中文 UPS Howto


   1.简介
  
   本HOWTO文件包含了如何连接UPS到执行Linux的电脑上。其想法是以适当的方式将二者相连接,使得Linux可以在电源断电以及UPS的电池耗光前安全地关机。
     其中还包括了一些可帮助您建立上述连线的软体,以及详述该连线的运作方式。
     假如您能找到一个已设定好可以使用您的UPS的软体,则後者的说明对您来说通常是不需要的。否则的话,您必须仔细地阅读它。
     在相当的程度上本文件已比起我在三年前所撰写的原文多出了很多内容。所有的基本资料都可以在SysVinit中的powerd man page□找到。尽管在三年前有人可能无法在一般的Linux套件中找到这篇man page,但我不相信今後还会再发生这样的情况。
     除此之外,当我第一次撰写这篇Howto,除了powerd.c以外并没有其他的软体可以做为Linux/UPS之间的沟通与控制。而今日我们则可以在[2]Sunsite''sUPS directory下找到一大堆UPS控制软体。
     然而,受到RedHat即将重新印制Dr. Linux的激励,我也开始重写这篇UPSHotwo。为什麽呢?嗯....
     *我想,额外的一般性概观将能有助於了解如何将Linux系统连上UPS,即使它只是另一份内容相同的文件。
     *这篇HOWTO算是各种特殊UPS资料的储藏库---在这儿有许多尚未被整合入一般软体套件中的UPS资讯。
     *这篇HOWTO包含了一些在其他文件中找不到的额外详细资料。
     *一些可以在[3]Sunsite''s UPS directory找得到的UPS软体似乎说明文件都少得可怜。您也许需要先阅□本文以了解如何使用他们。
     *现在这件事似乎已有了自己的生命了。当一篇HOWTO文件因而诞生时事实就更加明显了。另一个比较不明显的事实是当它必须上床睡觉时。(译注:这一句笑话我看不懂啦!唉!翻得好烂....)
     1.1有贡献的人们我永远都会感激那些曾经给我帮助、给我建议、以及给我特殊的UPS资料的人们。其中包括了:
     * Hennus Bergman ( [4]hennus@sky.owl.nl)* Charli ( [5]mefistos@impsat1.com.ar)* Ciro Cattuto ( [6]Ciro Cattuto)* Nick Christenson ( [7]npc@minotaur.jpl.nasa.gov)* Lam Dang ( [8]angit@netcom.com)* Markus Eiden ( [9]Markus@eiden.de)* Dan Fandrich ( [10]dan@fch.wimsey.bc.ca)* Ben Galliart ( [11]bgallia@orion.it.luc.edu)* Danny ter Haar ( [12]dth@cistron.nl)* Christian G. Holtje ( [13]docwhat@uiuc.edu)* Raymond A. Ingles ( [14]inglesra@frc.com)* Peter Kammer ( [15]pkammer@ics.uci.edu)* Marek Michalkiewicz ( [16]ind43@sun1000.ci.pwr.wroc.pl)* Jim Ockers ( [17]ockers@umr.edu)* Evgeny Stambulchik ( [18]fnevgeny@plasma-gate.weizmann.ac.il)* Clive A. Stubbings ( [19]cas@vjet.demon.co.uk)* Miquel van Smoorenburg ( [20]miquels@cistron.nl)* Slavik Terletsky ( [21]ts@polynet.lviv.ua)* Tom Webster ( [22]webster@kaiwan.com)
     请注意下方的email地址是自电子信件中节录下来的,它们也许会过期。而上方的email地址可能也会过期,但有些是比起下方还要新的。
     除此之外,如果因我的疏忽而在上表中漏掉任何一位有贡献者的话,我真的很抱歉。请您email给我,我会将您的名字加上去。
     1.2请特别注意我真的无法保证这些东东对您会有效。连结UPS到电脑上是一件相当有技巧的工作。其中之一或二者都有可能会烧掉、爆炸、著火、或者是引发第三次世界大战。除此之外,我只有对Advice 1200 A UPS,以及5kva Best Ferrups有直接的经验,而且我也不需要自己做一条讯号线。所以,请注意!尽可能地收集您的UPS的所有资讯。请先考虑清楚,不要随便相信任何您在本文中或其他地方所读到的内容。
     另一方面,我正尽可能地收集所有使我的UPS可以工作的方法,其中有很多不是来自制造商的资讯,所幸也没有烧掉任何东西,所以这些都是可能的。
     1.3其他的文件本文并没有包含所有UPS的一般特性与能力。如您需要这类型的资讯,你可以看看[23]The UPS FAQ。这篇文件同时也可以在[24]ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/answers/UPS-faq中找到。它是由Nick Christenson ( [25]npc@minotaur.jpl.nasa.gov)所维护的,但看起来好像自从1995年以後就没有再重写了。如果您要email给他,他希望您可以在信件的Subject那一行放入UPS或UPS FAQ或其他相关的词句。
     有许许多多的UPS制造商在网路中萌芽。其中有些确实在他们的网页中提供了有用的资讯。您可以在[26]The UPS Directory中找到这些UPS制造商的网页简表。该网站也包含了[27]UPS FAQ这篇文件。
     2.请注意已过时的资讯我刚刚发现底下有一些资料已经过时了。其中来自[28]the latest sysvinitpackage的init daemon比起我所能描述的还要简陋。尽管看起来目前的版本与该程式完成时的版本相容,但当中仍然有一些对UPS相当重要的支援没有文件说明。
     底下所简述的控制机制只能让powerd送给init powerfail或powerok这两个讯息之一而已。init接到powerfail讯息时执行一个命令,而当它接到powerok时则执行另一个命令。这将导至powerd在处理低电力讯号及其他特殊状况时产生逻辑上的复杂性。
     较新版本的init (像是2.58版)就比较精良了。它可以在接到讯号时选择三个script中之一来执行。如此一来,init可以在接到电源断电讯号时执行powerfail script,可以执行一个powerfailnow script做立即的关机,以及一个powerok script来停止任何正在进行的关机动作。这样比起要我们自行处理这些机制要简单多了。
     尽管这□大部分的讨论仍假设使用旧的init通讯方式,我已加入了两个新的章节来描述新的连线方法。这两个章节是<@ref>ciroTrust Energy Protector400/650及<@ref>ciroTrust Energy Protector 400/650<@ref>apc700APC Smart-UPS700。其中前者特别详细。二者都包含了一个powerd.c档,它可以在收到低电力讯号时送讯号给init以进行紧急关机,就像是/etc/inittab档中那几行所写的一样。其馀的,我所能告诉您的就只有请您看看init的原始码了。
     就我所知的,在以下所列的UPS软体套件中有许多也采用了新式的连线方式。
     3.聪明的与单调的UPSUPS大至分为两类,我分别叫它们``聪明的(Smart)''''与``单调的(Dumb)''''。
     二者之间的差异在於我们能自UPS获得多少的讯息以及我们能够对UPS下达多少命令。
     单调的UPS
     +藉由序列阜(serial port)与电脑相连。
     +使用modem控制线与电脑相通讯。
     +可以在电力是否消失时给电脑送讯号。
     +也许可以在UPS的电力是否偏低时通知电脑。
     +电脑通常可以送讯号给UPS让它将自己关闭。
     聪明的UPS
     +藉由序列阜(serial port)与电脑相连。
     +以一般的资料传输线经序列阜与电脑沟通。
     +多半有一组命令语言可以让电脑自UPS那得知各式各样的资讯,以设定各种运作参数给UPS,同时也操作UPS (像是将它关掉)
     通常聪明的UPS都可以在单调的模式下操作。这是很有用的,因为就我所知,最常见的聪明UPS (像是APC)制造商只愿意透露他们的UPS通讯协定给那些签署了绝不□露机密同意书的人们。
     就我所知,只有BEST公司所制作的UPS可以很容易地在Linux下运作。除此之外,BEST公司还有完整的文件说明了他们的UPS的聪明模式(以及单调模式)。BEST公司也提供了可以与他们的UPS沟通的程式的原始码。
     所有列在[29]软体章节的软体皆可在单调模式下与UPS沟通。这些都是您真正需要的。有些软体则宣称说可以在聪明模式下操作ARC UPS,但我不知道他们是如何获准而做到的。一个完整的程式运作会跳出一个视窗,□头包含了有趣的度量表,代表著各式各样的UPS统计资料,像是负载程度、内部温度、断电记录、输入电压、及输出电压......等等。看起来似乎smupsd-0.7-1.i386.rpm程式(见[30]软体一节)可以做到这些。对於其他的软体我则不敢确定。
     以下的内容我将尽量□限於如何调整您的系统使其能与单调模式下的UPS一起工作。而对聪明模式的UPS而言,基本想法是一样的,但需要什麽样的powerd参与工作以及您需要什麽样的讯号缆线是随著UPS而有不同的。
     4.软体基本上,您所需的就是一个可以工作powerd程式档,通常您可以在/sbin/powerd下找到它。它通常是属於SysVinit系统的一部分。就我所知,所有近期版本的Linux系统都包含了一个较新版的SysVinit。但在非常旧的版本则不包含powerd。
     唯一的问题是您的讯号缆线可能不能与您的powerd设定相配合,在这情况下您必须重新做一条讯号缆线,或者是找来一份powerd.c档并修改它使得它能配合您的讯号缆线工作。或者是,您可以使用以下所列的软体,大部分的软体允许您做适当的设定以配合您的讯号缆线。
     就像刚刚所提到的,除了使用SysVinit的powerd之外您也可以拿现有的任何一种UPS软体来用。目前有许多软体可以帮助您建立电脑与UPS之间的连线。
     在我第一次写这篇HOWTO时都还没有这些软体,而这也是为什麽我要写这篇HOWTO。事实上,您也可以从中选一个软体来用,而完全忽略这篇HOWTO的内容。
     在1997年3月15日左右,[31]Sunsite的UPS目录下可以找到一大堆的软体可用。而在其他的网站似乎也有UPS控制软体可以找到。以下是我目前所找到的(除了其中两个以外,其他都是在sunsite找到的):
     [32]Enhanced_APC_BackUPS.tar.gz这是一个可以控制APC聪明模式的UPS。看起来基本上是依据BUPSHowto (包含了这一篇),但也好像有一些低电力警告的支援。
     [33]Enhanced_APC_UPSD-v1.4.tar.gz在.lsm档中提到它从前就是上一个所提到的软体,但事实上它正是将上一个软体的.tar.gz档包装在它的tar.gz档之内。那篇文件说明有问题,看起来它似乎同时支援APC UPS的聪明与单调模式,但我不敢确定。
     [34]apcd-0.5.tar.gz这是另一个可以控制APC UPS於聪明模式下运作的软体。看起来似乎可以支援主/从模式(也就是说,当停电时可以由一台机器送讯号给另一台机器叫它关机)。看起来似乎是使用了UPS的聪明模式,不像是经由modem的讯号线来控制。
     [35]smupsd directory又是另一个控制APC UPS的软体。看起来可以在非常聪明(tm)模式下操作UPS。举例来说,它包含了一个Java图形介面的UPS监控工具程式。该目录下包含了已编译好的RPM形式的软体([36]ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.i386.rpm),一个原始码RPM格式档([37]ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.src.rpm),以及一个□我档案([38]ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.README)。
     [39]genpower-1.0.1.tgz一个一般化的UPS控制软体。它包含了很多种UPS的设定---两种TrippLite的设定,以及三种APC的设定。同时也包含了很好的说明文件。物超所值。
     [40]powerd-2.0.tar.gz一个SysVinit的powerd程式的替代品。与它的说明文件所提到的相反,它似乎没有整合到SysVinit 2.62版中。它的优点在於它可以做为在其他机器上执行的powerd的伺服端(假如您的机器有连上网路且只有一个UPS的话),而且它可以用设定档来进行设定----故其原始码不需修改及重新编译。
     [41]upsd-1.0.tgz另一个powerd的替代品。看起来似乎与powerd-2.0.tar.gz有许多相似的特色。
     [42]checkups.tar这个软体是用来控制Best UPS的。它是直接来自Best公司的网页的。
     它包含了多种unix的可执行档,但更重要的是,它还包含了原始码,故您可以在Linux下测试它,而且假如它无法工作,您也可以试著修改它。此原始码同时包含了在单调模式下控制UPS的"基本检测"指令,以及一些更精巧的"先进检测"指令---当UPS回报说它只剩X分钟的电力时即发出关机的讯号,而不是等到X分钟後电力都用光了才开始关机。此先进检测程式也会在UPS发出像是周围环境温度过高、接近低电力、低交流电输出、或者是使用者测试等警告时关闭机器。
     [43]bestups-0.9.tar.gz可能在您读到这篇文章时,此在sunsite可以找得到的软体已发展得很好了。它是一对可以相互通讯的模组,用以控制Best Ferrups UPS。它可以在聪明模式下控制UPS。它可以与powerd-2.0合作操控---这一点在当您有一个大型的Best Ferrups UPS支援连接在网路上机器的电力时格外有用。
     请注意我只是快速地浏览过这些软体。我并没有用它们,除了那个我们才开始使用的[44]bestups-0.9.tar.gz以及[45]powerd-2.0.tar.gz,其中``才开始''''意思是说我们才在上个星期四开使做测试。
     5.自己动手指南这□的讨论是针对单调模式的UPS控制而写就的。然而,大部分的过程对单调的UPS与聪明的UPS几乎是一样的。最大的不同在於UPS监控程式(基本上是powerd)如何与UPS沟通。
     在开始之前,我建议以下的工作流程:*略读这篇文件。
     *下载并审查所有看起来特别适合您的UPS的软体。
     *下载并审查所有更一般化的软体。请注意有些较一般化的软体事实上更为强大、有更好的说明文件、且比起那些较特殊的软体更容易使用。
     *如果您依然无法让UPS工作,或是您的方向依旧不清楚,请您仔细阅读本文,并试试做hack的工作....
     5.1您所需的工作(总结)*将您的电脑接上UPS。
     *用特殊的讯号缆线将您的电脑的的串列阜与UPS连接在一起。
     *在您的电脑上跑powerd (或其他类似的软体)。
     *设定您的init程式使它能在powerfail及powerok事件发生时做适当的处理(例如分别启动shutdown程序及停止正在执行的shutdown程序)。
     5.2这应该是做什麽工作的?UPS的工作当电力消失时,UPS持续供应电脑所需的电力,并以送出重置讯号或是在它的控制阜上打开连接讯号以通知电脑电力消失了。
     讯号缆线的工作讯号缆线是设计为当UPS送出重置讯号时,会使得特殊的序列阜控制接脚(基本上是DCD)出现高电位。
     Powerd的工作powerd程式负责监视序列阜。它保持著UPS所需而升高/降低序列阜控制接脚的高/低电位(基本上,DTR接脚必须保持在高电位且关闭UPS的接脚必须保持在低电位)。当powerd发觉控制接脚变成高电位,它会在/etc/powerfail档中写入FAIL这个字并送SIGPWR讯号给init行程。当控制接脚再次变回低电位时,它会在/etc/powerfail档中写入OK这个字并送SIGPWR讯号给init。
     Init的工作(除上述之外它负责所有的工作)当它接到了SIGPWR讯号,它会检查/etc/powerfail档。如果□头是FAIL这个字眼它会执行/etc/inittab档中powerfail那一行的指令。
     如果□头是OK这个字它则执行inittab档中powerokwait那一行的指令。
     5.3如何设定好所有的工作以下我们假设您有一条可以和powerd正常工作的讯号缆线。如果您不确定您的讯号缆线是否可以工作(或它如何工作),请参考[46]讯号缆线反向分析及修改power.c一节,那儿有关於少见的讯号缆线处理及重新设定powerd.c的资讯。
     [47]讯号缆线反向分析及修改power.c<@ref>serial-port序列阜接脚的指定及[48]讯号缆线反向分析及修改power.c<@ref>serial-port序列阜接脚的指定<@ref>ioctl有关读写RS232这两节也将对您有帮助。
     如果您需要制作一条讯号缆线,请见[49]如何制作讯号缆线的详细说明,以及[50]如何制作讯号缆线<@ref>ups-specificUPS资料节选一节中有关您的UPS的小节。後者可能也包含了制造商所提供的讯号缆线的相关资讯。或许您应至少将[51]如何制作讯号缆线<@ref>ups-specificUPS资料节选<@ref>ups-specificUPS资料节选中所有的小节浏览过一遍,因为每一小节都会有一些额外的一般性资料能对您有帮助。
     *修改/etc/inittab档。写入像以下的内容:# What to do when power fails (Halt system & drain battery :):pf::powerfail:/etc/powerfailscript +5# If power is back before shutdown, cancel the running shutdown.pg:0123456:powerokwait:/etc/powerokscript*写/etc/powerfailscript及/etc/powerokscript这两个script档分别在五分钟(或其他您喜欢的时间)之内进行关机及停止任何存在的shutdown程序。依您所用的shutdown程式版本的不同,它可能会相当单简以至於您根本不需使用script档,或者是一行bash的script档像是以下这一行:kill `ps -aux | grep "shutdown" | grep -v grep | awk ''{print $2}''`(为了避免您弄错,上一行中第一个单引号是反向单引号,第二及第三个是单引号,而最後一个则为反向单引号。)*用以下的命令告诉init重新读取inittab档中的设定:telinit q*编□rc.local档在开机时执行powerd。其语法如下:powerd 其中,请您自行将这个字替换成modem所连接的序列阜名,像是/dev/cua1。
     *将电脑的序列阜与UPS的讯号缆线相连。请先不要将电脑的电源直接接到UPS上。
     *将一个光源(如灯泡)接到UPS上。
     *执行powerd。
     *依照以下的步骤进行测试:+拔掉UPS的插头。
     o检查该灯泡是否仍然亮著。
     o检查/etc/powerfailscript是否已开始执行。
     o检查shutdown是否正在执行。
     +接回UPS的插头。
     o检查该灯泡是否仍然亮著。
     o检查/etc/powerokscript是否已开始执行。
     o检查/etc/powerfailscript是否已停止执行。
     o检查shutdown是否已停止执行。
     +再次拔掉UPS的插头。放著不去管它并确定电脑在一段时间後可以正常关机。
     +危险步骤。在所有的步骤看起来都正常之後,将电脑电源关闭并将电脑的电源接到UPS上。请执行一个script大约每秒钟做一次sync硬碟资料回存的动作,同时也跑另一个script持续以find指令搜寻整颗硬碟。其中第一个script是为了确保安全,而第二个则是助长电力的消耗。现在,将UPS的插头拔出,再次检查shutdown是否已在运作,并等待一段时间。确定电脑在UPS的电力用完前完全地关机。
     此一步骤是很危险的,因为如果UPS的电力在电脑完成关机之前先用完了,您的档案系统将会受损,且您将可能丢失一些档案。您可能在进行这项测试之前会想要备份您所有的档案,并将开始关机的时间设短一点以开始这项测试。
     恭喜您!您的Linux系统现在已在UPS的保护下,且它将会在电力耗尽之前安全地关机了。
     5.4进一步的改善*修改powerd.c使它在监视UPS的讯号线时能得知电池电力已弱。当电力微弱时,马上进行紧急关机程序。
     *修改关机程序使它在powerfail情况下关机时,能够在完成所有工作之後将UPS关掉。
     6.硬体的注意事项6.1如何制作讯号缆线本节的内容只是些我在网路上看到的资讯。我并没有亲自试过,所以我无法依我的经验写下来。如果有人有经验,麻烦您为我写这一节:)。同时也请您参考<@ref>gps1000ACCODATA的GPS1000中有关GPS1000的资料,不必说,<@ref>gps1000ACCODATA的GPS1000<@ref>ups-specificUPS资料节选这一节中所有特殊UPS的资料也是值得参考的。
     >From miquels@caution.cistron.nl.mugnet.org Wed Jul 21 14:26:33 1993Newsgroups: comp.os.linuxSubject: Re: UPS interface for Linux?From: miquels@caution.cistron.nl.mugnet.org (Miquel van Smoorenburg)Date: Sat, 17 Jul 93 18:03:37Distribution: worldOrganization: Cistron Electronics.In article <1993Jul15.184450.5193@excaliber.uucp>joel@rac1.wam.umd.edu (Joel M. Hoffman) writes:>我正打算要购买UPS (不断电系统),我注意到有些具有LAN的介面,>可以在停电时向LAN送讯号。
     >>而Linux有没有这样的介面呢?>>谢谢您的回答。
     >>-Joel>(joel@wam.umd.edu)>当我在修改上一版的SysVinit时(现在的版本是2.4),那时我的电脑有一个UPS,所以我加入了对它的支援。您也许已在最近的一个标头档中看到了#define SIGPWR 30这一行:-)。总之,我并没有那个特殊的介面,但大多数的UPS是靠产生或中断一个电源中断讯号在运作的。
     我想到一个简单的方式可以将它的讯号线连接到电脑讯列阜的DCD接脚。在SysVinit套件中有一个叫做''powerd''的常驻程式可以追踪并监视该讯号线,当讯号的状态改变时它会送一个SIGPWR的讯号给init程式,因此init便可以采取适当的行动(像是在5分钟之後让系统关机)。如何将讯号线与UPS相连在"powerd.c"已有说明,但我还是图示如下以做为解释:
     +------------------------o DTR|+---+| | resistor| | 10 kilo-Ohm| |+---+ To serial port.|+-----o-------+------------------------o DCD| |o UPS |\ relais |\ || |+-----o-------+------------------------o GND画得还可以吗?希望这样会有帮助。
     SysVinit可以在sunsite (或可能在tsx-11)下找到,档名是SysVinit2.4.tar.z。
     Mike.--Miquel van Smoorenburg, Ibmio.com: cannot open CONFIG.SYS: file handle broke off.
     >From danny@caution.cistron.nl.mugnet.org Wed Jul 21 14:27:04 1993Newsgroups: comp.os.linuxSubject: Re: UPS interface for Linux?From: danny@caution.cistron.nl.mugnet.org (Danny ter Haar)Date: Mon, 19 Jul 93 11:02:14Distribution: worldOrganization: Cistron Electronics.In article <9307174330@caution.cistron.nl.mugnet.org>miquels@caution.cistron.nl.mugnet.org (Miquel van Smoorenburg) writes:>如何将讯号线与UPS相连在"powerd.c"已有说明,>但我还是图示如下以做为解释:该图示并不十分清楚,请改用以下的图示!>> +------------------------o DTR> |> +---+> | | resistor> | | 10 kilo-Ohm> | |> +---+ To serial port.> |> +-----o-------+------------------------o DCD> |> o UPS> \ relais> > |> +-----o--------------------------------o GND>其中DTR接脚是保持在高电位,则当UPS的外界输入电源消失时,那个开关(relais)会关闭。而电脑便是监视DCD输入接脚,等著它变成低电位。
     当事情发生时它将会启动关机程序..._____Danny--<=====================================================================>Danny ter Haar or Robins law #103: ''a couple of lightyears can''t part good friends''6.2讯号缆线反向分析及修改power.cReferences1. mailto:abel@netvision.net.il2. http://sunsite.unc.edu/pub/Linux/system/ups3. http://sunsite.unc.edu/pub/Linux/system/ups4. mailto:hennus@sky.owl.nl5. mailto:mefistos@impsat1.com.ar6. mailto:ciro@stud.unipg.it7. mailto:npc@minotaur.jpl.nasa.gov8. mailto:angit@netcom.com9. mailto:Markus@eiden.de10. mailto:dan@fch.wimsey.bc.ca11. mailto:bgallia@orion.it.luc.edu12. mailto:dth@cistron.nl13. mailto:docwhat@uiuc.edu14. mailto:inglesra@frc.com15. mailto:pkammer@ics.uci.edu16. mailto:ind43@sun1000.ci.pwr.wroc.pl17. mailto:ockers@umr.edu18. mailto:fnevgeny@plasma-gate.weizmann.ac.il19. mailto:cas@vjet.demon.co.uk20. mailto:miquels@cistron.nl21. mailto:ts@polynet.lviv.ua22. mailto:webster@kaiwan.com23. ftp://navigator.jpl.nasa.gov/pub/doc/faq/UPS.faq24. ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/answers/UPS-faq25. mailto:npc@minotaur.jpl.nasa.gov26. http://www.upssystems.uk.com/upsdir.html27. http://www.upssystems.uk.com/upsfaqs.html28. http://sunsite.unc.edu/pub/Linux/system/daemons/init/sysvinit-2.64.tar.gz29. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#software30. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#software31. http://sunsite.unc.edu/pub/Linux/system/ups32. http://sunsite.unc.edu/pub/Linux/system/ups/Enhanced_APC_BackUPS.tar.gz33. http://sunsite.unc.edu/pub/Linux/system/ups/Enhanced_APC_UPSD-v1.4.tar.gz34. http://sunsite.unc.edu/pub/Linux/system/ups/apcd-0.5.tar.gz35. ftp://cms180.cmsnet.com/pub/smupsd/36. ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.i386.rpm37. ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.src.rpm38. ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.README39. http://sunsite.unc.edu/pub/Linux/system/ups/genpower-1.0.1.tgz40. http://sunsite.unc.edu/pub/Linux/system/ups/powerd-2.0.tar.gz41. http://sunsite.unc.edu/pub/Linux/system/ups/upsd-1.0.tgz42. http://www.bestpower.com/section/software/checkups.tar43. http://sunsite.unc.edu/pub/Linux/system/ups/bestups-0.9.tar.gz44. http://sunsite.unc.edu/pub/Linux/system/ups/bestups-0.9.tar.gz45. http://sunsite.unc.edu/pub/Linux/system/ups/powerd-2.0.tar.gz46. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#hacking47. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#hacking48. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#hacking49. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#make-cable50. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#make-cable51. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#make-cable中文UPS Howto
     Harvey J. Stein, [1]abel@netvision.net.il, Berger Financial Research, Ltd.v2.02, 31 March 1997_________________________________________________________________
     本文能帮助您将Linux系统连接到不断电系统(uninterruptable powersupply, UPS)...如果幸运的话....版权声明: Copyright (c) 1994, 1995,1996, 1997 by Harvey J. Stein. You may use this document as you seefit, as long as it remains intact. In particular, this notice (alongwith the contributions below) must remain untouched._________________________________________________________________
     1.简介* 1.1有贡献的人们* 1.2请特别注意* 1.3其他的文件
     2.请注意已过时的资讯3.聪明的与单调的UPS4.软体5.自己动手指南* 5.1您所需的工作(总结)* 5.2这应该是做什麽工作的?* 5.3如何设定好所有的工作* 5.4进一步的改善
     6.硬体的注意事项* 6.1如何制作讯号缆线* 6.2讯号缆线反向分析及修改power.c_________________________________________________________________
     1.简介本HOWTO文件包含了如何连接UPS到执行Linux的电脑上。其想法是以适当的方式将二者相连接,使得Linux可以在电源断电以及UPS的电池耗光前安全地关机。
     其中还包括了一些可帮助您建立上述连线的软体,以及详述该连线的运作方式。
     假如您能找到一个已设定好可以使用您的UPS的软体,则後者的说明对您来说通常是不需要的。否则的话,您必须仔细地阅读它。
     在相当的程度上本文件已比起我在三年前所撰写的原文多出了很多内容。所有的基本资料都可以在SysVinit中的powerd man page□找到。尽管在三年前有人可能无法在一般的Linux套件中找到这篇man page,但我不相信今後还会再发生这样的情况。
     除此之外,当我第一次撰写这篇Howto,除了powerd.c以外并没有其他的软体可以做为Linux/UPS之间的沟通与控制。而今日我们则可以在[2]Sunsite''sUPS directory下找到一大堆UPS控制软体。
     然而,受到RedHat即将重新印制Dr. Linux的激励,我也开始重写这篇UPSHotwo。为什麽呢?嗯....
     *我想,额外的一般性概观将能有助於了解如何将Linux系统连上UPS,即使它只是另一份内容相同的文件。
     *这篇HOWTO算是各种特殊UPS资料的储藏库---在这儿有许多尚未被整合入一般软体套件中的UPS资讯。
     *这篇HOWTO包含了一些在其他文件中找不到的额外详细资料。
     *一些可以在[3]Sunsite''s UPS directory找得到的UPS软体似乎说明文件都少得可怜。您也许需要先阅□本文以了解如何使用他们。
     *现在这件事似乎已有了自己的生命了。当一篇HOWTO文件因而诞生时事实就更加明显了。另一个比较不明显的事实是当它必须上床睡觉时。(译注:这一句笑话我看不懂啦!唉!翻得好烂....)
     1.1有贡献的人们我永远都会感激那些曾经给我帮助、给我建议、以及给我特殊的UPS资料的人们。其中包括了:
     * Hennus Bergman ( [4]hennus@sky.owl.nl)* Charli ( [5]mefistos@impsat1.com.ar)* Ciro Cattuto ( [6]Ciro Cattuto)* Nick Christenson ( [7]npc@minotaur.jpl.nasa.gov)* Lam Dang ( [8]angit@netcom.com)* Markus Eiden ( [9]Markus@eiden.de)* Dan Fandrich ( [10]dan@fch.wimsey.bc.ca)* Ben Galliart ( [11]bgallia@orion.it.luc.edu)* Danny ter Haar ( [12]dth@cistron.nl)* Christian G. Holtje ( [13]docwhat@uiuc.edu)* Raymond A. Ingles ( [14]inglesra@frc.com)* Peter Kammer ( [15]pkammer@ics.uci.edu)* Marek Michalkiewicz ( [16]ind43@sun1000.ci.pwr.wroc.pl)* Jim Ockers ( [17]ockers@umr.edu)* Evgeny Stambulchik ( [18]fnevgeny@plasma-gate.weizmann.ac.il)* Clive A. Stubbings ( [19]cas@vjet.demon.co.uk)* Miquel van Smoorenburg ( [20]miquels@cistron.nl)* Slavik Terletsky ( [21]ts@polynet.lviv.ua)* Tom Webster ( [22]webster@kaiwan.com)
     请注意下方的email地址是自电子信件中节录下来的,它们也许会过期。而上方的email地址可能也会过期,但有些是比起下方还要新的。
     除此之外,如果因我的疏忽而在上表中漏掉任何一位有贡献者的话,我真的很抱歉。请您email给我,我会将您的名字加上去。
     1.2请特别注意我真的无法保证这些东东对您会有效。连结UPS到电脑上是一件相当有技巧的工作。其中之一或二者都有可能会烧掉、爆炸、著火、或者是引发第三次世界大战。除此之外,我只有对Advice 1200 A UPS,以及5kva Best Ferrups有直接的经验,而且我也不需要自己做一条讯号线。所以,请注意!尽可能地收集您的UPS的所有资讯。请先考虑清楚,不要随便相信任何您在本文中或其他地方所读到的内容。
     另一方面,我正尽可能地收集所有使我的UPS可以工作的方法,其中有很多不是来自制造商的资讯,所幸也没有烧掉任何东西,所以这些都是可能的。
     1.3其他的文件本文并没有包含所有UPS的一般特性与能力。如您需要这类型的资讯,你可以看看[23]The UPS FAQ。这篇文件同时也可以在[24]ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/answers/UPS-faq中找到。它是由Nick Christenson ( [25]npc@minotaur.jpl.nasa.gov)所维护的,但看起来好像自从1995年以後就没有再重写了。如果您要email给他,他希望您可以在信件的Subject那一行放入UPS或UPS FAQ或其他相关的词句。
     有许许多多的UPS制造商在网路中萌芽。其中有些确实在他们的网页中提供了有用的资讯。您可以在[26]The UPS Directory中找到这些UPS制造商的网页简表。该网站也包含了[27]UPS FAQ这篇文件。
     2.请注意已过时的资讯我刚刚发现底下有一些资料已经过时了。其中来自[28]the latest sysvinitpackage的init daemon比起我所能描述的还要简陋。尽管看起来目前的版本与该程式完成时的版本相容,但当中仍然有一些对UPS相当重要的支援没有文件说明。
     底下所简述的控制机制只能让powerd送给init powerfail或powerok这两个讯息之一而已。init接到powerfail讯息时执行一个命令,而当它接到powerok时则执行另一个命令。这将导至powerd在处理低电力讯号及其他特殊状况时产生逻辑上的复杂性。
     较新版本的init (像是2.58版)就比较精良了。它可以在接到讯号时选择三个script中之一来执行。如此一来,init可以在接到电源断电讯号时执行powerfail script,可以执行一个powerfailnow script做立即的关机,以及一个powerok script来停止任何正在进行的关机动作。这样比起要我们自行处理这些机制要简单多了。
     尽管这□大部分的讨论仍假设使用旧的init通讯方式,我已加入了两个新的章节来描述新的连线方法。这两个章节是<@ref>ciroTrust Energy Protector400/650及<@ref>ciroTrust Energy Protector 400/650<@ref>apc700APC Smart-UPS700。其中前者特别详细。二者都包含了一个powerd.c档,它可以在收到低电力讯号时送讯号给init以进行紧急关机,就像是/etc/inittab档中那几行所写的一样。其馀的,我所能告诉您的就只有请您看看init的原始码了。
     就我所知的,在以下所列的UPS软体套件中有许多也采用了新式的连线方式。
     3.聪明的与单调的UPSUPS大至分为两类,我分别叫它们``聪明的(Smart)''''与``单调的(Dumb)''''。
     二者之间的差异在於我们能自UPS获得多少的讯息以及我们能够对UPS下达多少命令。
     单调的UPS
     +藉由序列阜(serial port)与电脑相连。
     +使用modem控制线与电脑相通讯。
     +可以在电力是否消失时给电脑送讯号。
     +也许可以在UPS的电力是否偏低时通知电脑。
     +电脑通常可以送讯号给UPS让它将自己关闭。
     聪明的UPS
     +藉由序列阜(serial port)与电脑相连。
     +以一般的资料传输线经序列阜与电脑沟通。
     +多半有一组命令语言可以让电脑自UPS那得知各式各样的资讯,以设定各种运作参数给UPS,同时也操作UPS (像是将它关掉)
     通常聪明的UPS都可以在单调的模式下操作。这是很有用的,因为就我所知,最常见的聪明UPS (像是APC)制造商只愿意透露他们的UPS通讯协定给那些签署了绝不□露机密同意书的人们。
     就我所知,只有BEST公司所制作的UPS可以很容易地在Linux下运作。除此之外,BEST公司还有完整的文件说明了他们的UPS的聪明模式(以及单调模式)。BEST公司也提供了可以与他们的UPS沟通的程式的原始码。
     所有列在[29]软体章节的软体皆可在单调模式下与UPS沟通。这些都是您真正需要的。有些软体则宣称说可以在聪明模式下操作ARC UPS,但我不知道他们是如何获准而做到的。一个完整的程式运作会跳出一个视窗,□头包含了有趣的度量表,代表著各式各样的UPS统计资料,像是负载程度、内部温度、断电记录、输入电压、及输出电压......等等。看起来似乎smupsd-0.7-1.i386.rpm程式(见[30]软体一节)可以做到这些。对於其他的软体我则不敢确定。
     以下的内容我将尽量□限於如何调整您的系统使其能与单调模式下的UPS一起工作。而对聪明模式的UPS而言,基本想法是一样的,但需要什麽样的powerd参与工作以及您需要什麽样的讯号缆线是随著UPS而有不同的。
     4.软体基本上,您所需的就是一个可以工作powerd程式档,通常您可以在/sbin/powerd下找到它。它通常是属於SysVinit系统的一部分。就我所知,所有近期版本的Linux系统都包含了一个较新版的SysVinit。但在非常旧的版本则不包含powerd。
     唯一的问题是您的讯号缆线可能不能与您的powerd设定相配合,在这情况下您必须重新做一条讯号缆线,或者是找来一份powerd.c档并修改它使得它能配合您的讯号缆线工作。或者是,您可以使用以下所列的软体,大部分的软体允许您做适当的设定以配合您的讯号缆线。
     就像刚刚所提到的,除了使用SysVinit的powerd之外您也可以拿现有的任何一种UPS软体来用。目前有许多软体可以帮助您建立电脑与UPS之间的连线。
     在我第一次写这篇HOWTO时都还没有这些软体,而这也是为什麽我要写这篇HOWTO。事实上,您也可以从中选一个软体来用,而完全忽略这篇HOWTO的内容。
     在1997年3月15日左右,[31]Sunsite的UPS目录下可以找到一大堆的软体可用。而在其他的网站似乎也有UPS控制软体可以找到。以下是我目前所找到的(除了其中两个以外,其他都是在sunsite找到的):
     [32]Enhanced_APC_BackUPS.tar.gz这是一个可以控制APC聪明模式的UPS。看起来基本上是依据BUPSHowto (包含了这一篇),但也好像有一些低电力警告的支援。
     [33]Enhanced_APC_UPSD-v1.4.tar.gz在.lsm档中提到它从前就是上一个所提到的软体,但事实上它正是将上一个软体的.tar.gz档包装在它的tar.gz档之内。那篇文件说明有问题,看起来它似乎同时支援APC UPS的聪明与单调模式,但我不敢确定。
     [34]apcd-0.5.tar.gz这是另一个可以控制APC UPS於聪明模式下运作的软体。看起来似乎可以支援主/从模式(也就是说,当停电时可以由一台机器送讯号给另一台机器叫它关机)。看起来似乎是使用了UPS的聪明模式,不像是经由modem的讯号线来控制。
     [35]smupsd directory又是另一个控制APC UPS的软体。看起来可以在非常聪明(tm)模式下操作UPS。举例来说,它包含了一个Java图形介面的UPS监控工具程式。该目录下包含了已编译好的RPM形式的软体([36]ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.i386.rpm),一个原始码RPM格式档([37]ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.src.rpm),以及一个□我档案([38]ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.README)。
     [39]genpower-1.0.1.tgz一个一般化的UPS控制软体。它包含了很多种UPS的设定---两种TrippLite的设定,以及三种APC的设定。同时也包含了很好的说明文件。物超所值。
     [40]powerd-2.0.tar.gz一个SysVinit的powerd程式的替代品。与它的说明文件所提到的相反,它似乎没有整合到SysVinit 2.62版中。它的优点在於它可以做为在其他机器上执行的powerd的伺服端(假如您的机器有连上网路且只有一个UPS的话),而且它可以用设定档来进行设定----故其原始码不需修改及重新编译。
     [41]upsd-1.0.tgz另一个powerd的替代品。看起来似乎与powerd-2.0.tar.gz有许多相似的特色。
     [42]checkups.tar这个软体是用来控制Best UPS的。它是直接来自Best公司的网页的。
     它包含了多种unix的可执行档,但更重要的是,它还包含了原始码,故您可以在Linux下测试它,而且假如它无法工作,您也可以试著修改它。此原始码同时包含了在单调模式下控制UPS的"基本检测"指令,以及一些更精巧的"先进检测"指令---当UPS回报说它只剩X分钟的电力时即发出关机的讯号,而不是等到X分钟後电力都用光了才开始关机。此先进检测程式也会在UPS发出像是周围环境温度过高、接近低电力、低交流电输出、或者是使用者测试等警告时关闭机器。
     [43]bestups-0.9.tar.gz可能在您读到这篇文章时,此在sunsite可以找得到的软体已发展得很好了。它是一对可以相互通讯的模组,用以控制Best Ferrups UPS。它可以在聪明模式下控制UPS。它可以与powerd-2.0合作操控---这一点在当您有一个大型的Best Ferrups UPS支援连接在网路上机器的电力时格外有用。
     请注意我只是快速地浏览过这些软体。我并没有用它们,除了那个我们才开始使用的[44]bestups-0.9.tar.gz以及[45]powerd-2.0.tar.gz,其中``才开始''''意思是说我们才在上个星期四开使做测试。
     5.自己动手指南这□的讨论是针对单调模式的UPS控制而写就的。然而,大部分的过程对单调的UPS与聪明的UPS几乎是一样的。最大的不同在於UPS监控程式(基本上是powerd)如何与UPS沟通。
     在开始之前,我建议以下的工作流程:*略读这篇文件。
     *下载并审查所有看起来特别适合您的UPS的软体。
     *下载并审查所有更一般化的软体。请注意有些较一般化的软体事实上更为强大、有更好的说明文件、且比起那些较特殊的软体更容易使用。
     *如果您依然无法让UPS工作,或是您的方向依旧不清楚,请您仔细阅读本文,并试试做hack的工作....
     5.1您所需的工作(总结)*将您的电脑接上UPS。
     *用特殊的讯号缆线将您的电脑的的串列阜与UPS连接在一起。
     *在您的电脑上跑powerd (或其他类似的软体)。
     *设定您的init程式使它能在powerfail及powerok事件发生时做适当的处理(例如分别启动shutdown程序及停止正在执行的shutdown程序)。
     5.2这应该是做什麽工作的?UPS的工作当电力消失时,UPS持续供应电脑所需的电力,并以送出重置讯号或是在它的控制阜上打开连接讯号以通知电脑电力消失了。
     讯号缆线的工作讯号缆线是设计为当UPS送出重置讯号时,会使得特殊的序列阜控制接脚(基本上是DCD)出现高电位。
     Powerd的工作powerd程式负责监视序列阜。它保持著UPS所需而升高/降低序列阜控制接脚的高/低电位(基本上,DTR接脚必须保持在高电位且关闭UPS的接脚必须保持在低电位)。当powerd发觉控制接脚变成高电位,它会在/etc/powerfail档中写入FAIL这个字并送SIGPWR讯号给init行程。当控制接脚再次变回低电位时,它会在/etc/powerfail档中写入OK这个字并送SIGPWR讯号给init。
     Init的工作(除上述之外它负责所有的工作)当它接到了SIGPWR讯号,它会检查/etc/powerfail档。如果□头是FAIL这个字眼它会执行/etc/inittab档中powerfail那一行的指令。
     如果□头是OK这个字它则执行inittab档中powerokwait那一行的指令。
     5.3如何设定好所有的工作以下我们假设您有一条可以和powerd正常工作的讯号缆线。如果您不确定您的讯号缆线是否可以工作(或它如何工作),请参考[46]讯号缆线反向分析及修改power.c一节,那儿有关於少见的讯号缆线处理及重新设定powerd.c的资讯。
     [47]讯号缆线反向分析及修改power.c<@ref>serial-port序列阜接脚的指定及[48]讯号缆线反向分析及修改power.c<@ref>serial-port序列阜接脚的指定<@ref>ioctl有关读写RS232这两节也将对您有帮助。
     如果您需要制作一条讯号缆线,请见[49]如何制作讯号缆线的详细说明,以及[50]如何制作讯号缆线<@ref>ups-specificUPS资料节选一节中有关您的UPS的小节。後者可能也包含了制造商所提供的讯号缆线的相关资讯。或许您应至少将[51]如何制作讯号缆线<@ref>ups-specificUPS资料节选<@ref>ups-specificUPS资料节选中所有的小节浏览过一遍,因为每一小节都会有一些额外的一般性资料能对您有帮助。
     *修改/etc/inittab档。写入像以下的内容:# What to do when power fails (Halt system & drain battery :):pf::powerfail:/etc/powerfailscript +5# If power is back before shutdown, cancel the running shutdown.pg:0123456:powerokwait:/etc/powerokscript*写/etc/powerfailscript及/etc/powerokscript这两个script档分别在五分钟(或其他您喜欢的时间)之内进行关机及停止任何存在的shutdown程序。依您所用的shutdown程式版本的不同,它可能会相当单简以至於您根本不需使用script档,或者是一行bash的script档像是以下这一行:kill `ps -aux | grep "shutdown" | grep -v grep | awk ''{print $2}''`(为了避免您弄错,上一行中第一个单引号是反向单引号,第二及第三个是单引号,而最後一个则为反向单引号。)*用以下的命令告诉init重新读取inittab档中的设定:telinit q*编□rc.local档在开机时执行powerd。其语法如下:powerd 其中,请您自行将这个字替换成modem所连接的序列阜名,像是/dev/cua1。
     *将电脑的序列阜与UPS的讯号缆线相连。请先不要将电脑的电源直接接到UPS上。
     *将一个光源(如灯泡)接到UPS上。
     *执行powerd。
     *依照以下的步骤进行测试:+拔掉UPS的插头。
     o检查该灯泡是否仍然亮著。
     o检查/etc/powerfailscript是否已开始执行。
     o检查shutdown是否正在执行。
     +接回UPS的插头。
     o检查该灯泡是否仍然亮著。
     o检查/etc/powerokscript是否已开始执行。
     o检查/etc/powerfailscript是否已停止执行。
     o检查shutdown是否已停止执行。
     +再次拔掉UPS的插头。放著不去管它并确定电脑在一段时间後可以正常关机。
     +危险步骤。在所有的步骤看起来都正常之後,将电脑电源关闭并将电脑的电源接到UPS上。请执行一个script大约每秒钟做一次sync硬碟资料回存的动作,同时也跑另一个script持续以find指令搜寻整颗硬碟。其中第一个script是为了确保安全,而第二个则是助长电力的消耗。现在,将UPS的插头拔出,再次检查shutdown是否已在运作,并等待一段时间。确定电脑在UPS的电力用完前完全地关机。
     此一步骤是很危险的,因为如果UPS的电力在电脑完成关机之前先用完了,您的档案系统将会受损,且您将可能丢失一些档案。您可能在进行这项测试之前会想要备份您所有的档案,并将开始关机的时间设短一点以开始这项测试。
     恭喜您!您的Linux系统现在已在UPS的保护下,且它将会在电力耗尽之前安全地关机了。
     5.4进一步的改善*修改powerd.c使它在监视UPS的讯号线时能得知电池电力已弱。当电力微弱时,马上进行紧急关机程序。
     *修改关机程序使它在powerfail情况下关机时,能够在完成所有工作之後将UPS关掉。
     6.硬体的注意事项6.1如何制作讯号缆线本节的内容只是些我在网路上看到的资讯。我并没有亲自试过,所以我无法依我的经验写下来。如果有人有经验,麻烦您为我写这一节:)。同时也请您参考<@ref>gps1000ACCODATA的GPS1000中有关GPS1000的资料,不必说,<@ref>gps1000ACCODATA的GPS1000<@ref>ups-specificUPS资料节选这一节中所有特殊UPS的资料也是值得参考的。
     >From miquels@caution.cistron.nl.mugnet.org Wed Jul 21 14:26:33 1993Newsgroups: comp.os.linuxSubject: Re: UPS interface for Linux?From: miquels@caution.cistron.nl.mugnet.org (Miquel van Smoorenburg)Date: Sat, 17 Jul 93 18:03:37Distribution: worldOrganization: Cistron Electronics.In article <1993Jul15.184450.5193@excaliber.uucp>joel@rac1.wam.umd.edu (Joel M. Hoffman) writes:>我正打算要购买UPS (不断电系统),我注意到有些具有LAN的介面,>可以在停电时向LAN送讯号。
     >>而Linux有没有这样的介面呢?>>谢谢您的回答。
     >>-Joel>(joel@wam.umd.edu)>当我在修改上一版的SysVinit时(现在的版本是2.4),那时我的电脑有一个UPS,所以我加入了对它的支援。您也许已在最近的一个标头档中看到了#define SIGPWR 30这一行:-)。总之,我并没有那个特殊的介面,但大多数的UPS是靠产生或中断一个电源中断讯号在运作的。
     我想到一个简单的方式可以将它的讯号线连接到电脑讯列阜的DCD接脚。在SysVinit套件中有一个叫做''powerd''的常驻程式可以追踪并监视该讯号线,当讯号的状态改变时它会送一个SIGPWR的讯号给init程式,因此init便可以采取适当的行动(像是在5分钟之後让系统关机)。如何将讯号线与UPS相连在"powerd.c"已有说明,但我还是图示如下以做为解释:
     +------------------------o DTR|+---+| | resistor| | 10 kilo-Ohm| |+---+ To serial port.|+-----o-------+------------------------o DCD| |o UPS |\ relais |\ || |+-----o-------+------------------------o GND画得还可以吗?希望这样会有帮助。
     SysVinit可以在sunsite (或可能在tsx-11)下找到,档名是SysVinit2.4.tar.z。
     Mike.--Miquel van Smoorenburg, Ibmio.com: cannot open CONFIG.SYS: file handle broke off.
     >From danny@caution.cistron.nl.mugnet.org Wed Jul 21 14:27:04 1993Newsgroups: comp.os.linuxSubject: Re: UPS interface for Linux?From: danny@caution.cistron.nl.mugnet.org (Danny ter Haar)Date: Mon, 19 Jul 93 11:02:14Distribution: worldOrganization: Cistron Electronics.In article <9307174330@caution.cistron.nl.mugnet.org>miquels@caution.cistron.nl.mugnet.org (Miquel van Smoorenburg) writes:>如何将讯号线与UPS相连在"powerd.c"已有说明,>但我还是图示如下以做为解释:该图示并不十分清楚,请改用以下的图示!>> +------------------------o DTR> |> +---+> | | resistor> | | 10 kilo-Ohm> | |> +---+ To serial port.> |> +-----o-------+------------------------o DCD> |> o UPS> \ relais> > |> +-----o--------------------------------o GND>其中DTR接脚是保持在高电位,则当UPS的外界输入电源消失时,那个开关(relais)会关闭。而电脑便是监视DCD输入接脚,等著它变成低电位。
     当事情发生时它将会启动关机程序..._____Danny--<=====================================================================>Danny ter Haar or Robins law #103: ''a couple of lightyears can''t part good friends''6.2讯号缆线反向分析及修改power.cReferences1. mailto:abel@netvision.net.il2. http://sunsite.unc.edu/pub/Linux/system/ups3. http://sunsite.unc.edu/pub/Linux/system/ups4. mailto:hennus@sky.owl.nl5. mailto:mefistos@impsat1.com.ar6. mailto:ciro@stud.unipg.it7. mailto:npc@minotaur.jpl.nasa.gov8. mailto:angit@netcom.com9. mailto:Markus@eiden.de10. mailto:dan@fch.wimsey.bc.ca11. mailto:bgallia@orion.it.luc.edu12. mailto:dth@cistron.nl13. mailto:docwhat@uiuc.edu14. mailto:inglesra@frc.com15. mailto:pkammer@ics.uci.edu16. mailto:ind43@sun1000.ci.pwr.wroc.pl17. mailto:ockers@umr.edu18. mailto:fnevgeny@plasma-gate.weizmann.ac.il19. mailto:cas@vjet.demon.co.uk20. mailto:miquels@cistron.nl21. mailto:ts@polynet.lviv.ua22. mailto:webster@kaiwan.com23. ftp://navigator.jpl.nasa.gov/pub/doc/faq/UPS.faq24. ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/answers/UPS-faq25. mailto:npc@minotaur.jpl.nasa.gov26. http://www.upssystems.uk.com/upsdir.html27. http://www.upssystems.uk.com/upsfaqs.html28. http://sunsite.unc.edu/pub/Linux/system/daemons/init/sysvinit-2.64.tar.gz29. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#software30. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#software31. http://sunsite.unc.edu/pub/Linux/system/ups32. http://sunsite.unc.edu/pub/Linux/system/ups/Enhanced_APC_BackUPS.tar.gz33. http://sunsite.unc.edu/pub/Linux/system/ups/Enhanced_APC_UPSD-v1.4.tar.gz34. http://sunsite.unc.edu/pub/Linux/system/ups/apcd-0.5.tar.gz35. ftp://cms180.cmsnet.com/pub/smupsd/36. ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.i386.rpm37. ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.src.rpm38. ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.README39. http://sunsite.unc.edu/pub/Linux/system/ups/genpower-1.0.1.tgz40. http://sunsite.unc.edu/pub/Linux/system/ups/powerd-2.0.tar.gz41. http://sunsite.unc.edu/pub/Linux/system/ups/upsd-1.0.tgz42. http://www.bestpower.com/section/software/checkups.tar43. http://sunsite.unc.edu/pub/Linux/system/ups/bestups-0.9.tar.gz44. http://sunsite.unc.edu/pub/Linux/system/ups/bestups-0.9.tar.gz45. http://sunsite.unc.edu/pub/Linux/system/ups/powerd-2.0.tar.gz46. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#hacking47. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#hacking48. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#hacking49. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#make-cable50. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#make-cable51. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#make-cable
0
相关文章