中文 UPS Howto Harvey J. Stein, [1]abel@netvision.net.il, Berger Financial Research, Ltd. v2.02, 31 March 1997 _________________________________________________________________ 本文能帮助您将 Linux 系统连接到不断电系统 (uninterruptable power supply, UPS)... 如果幸运的话 .... 版权声明: Copyright (c) 1994, 1995, 1996, 1997 by Harvey J. Stein. You may use this document as you see fit, as long as it remains intact. In particular, this notice (along with the contributions below) must remain untouched. _________________________________________________________________ 1. 简介 * 1.1 有贡献的人们 * 1.2 请特别注意 * 1.3 其他的文件 2. 请注意已过时的资讯 3. 聪明的与单调的 UPS 4. 软体 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's UPS directory 下找到一大堆 UPS 控制软体。 然而,受到 RedHat 即将重新印制 Dr. Linux 的激励,我也开始重写这篇 UPS Hotwo 。 为什麽呢? 嗯 .... * 我想,额外的一般性概观将能有助於了解如何将 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 sysvinit package 的 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 Protector 400/650 及 <@ref>ciroTrust Energy Protector 400/650<@ref>apc700APC Smart-UPS 700。其中前者特别详细。二者都包含了一个 powerd.c 档, 它可以在收到低电 力讯号时送讯号给 init 以进行紧急关机, 就像是 /etc/inittab 档中那几行所 写的一样。其馀的, 我所能告诉您的就只有请您看看 init 的原始码了。 就我所知的,在以下所列的 UPS 软体套件中有许多也采用了新式的连线方式。 3. 聪明的与单调的 UPS UPS 大至分为两类,我分别叫它们 ``聪明的 (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 。看起来基本上是依据 BUPS Howto (包含了这一篇) ,但也好像有一些低电力警告的支援。 [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 1993 Newsgroups: comp.os.linux Subject: Re: UPS interface for Linux? From: miquels@caution.cistron.nl.mugnet.org (Miquel van Smoorenburg) Date: Sat, 17 Jul 93 18:03:37 Distribution: world Organization: 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 1993 Newsgroups: comp.os.linux Subject: Re: UPS interface for Linux? From: danny@caution.cistron.nl.mugnet.org (Danny ter Haar) Date: Mon, 19 Jul 93 11:02:14 Distribution: world Organization: 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.c References 1. mailto:abel@netvision.net.il 2. http://sunsite.unc.edu/pub/Linux/system/ups 3. http://sunsite.unc.edu/pub/Linux/system/ups 4. mailto:hennus@sky.owl.nl 5. mailto:mefistos@impsat1.com.ar 6. mailto:ciro@stud.unipg.it 7. mailto:npc@minotaur.jpl.nasa.gov 8. mailto:angit@netcom.com 9. mailto:Markus@eiden.de 10. mailto:dan@fch.wimsey.bc.ca 11. mailto:bgallia@orion.it.luc.edu 12. mailto:dth@cistron.nl 13. mailto:docwhat@uiuc.edu 14. mailto:inglesra@frc.com 15. mailto:pkammer@ics.uci.edu 16. mailto:ind43@sun1000.ci.pwr.wroc.pl 17. mailto:ockers@umr.edu 18. mailto:fnevgeny@plasma-gate.weizmann.ac.il 19. mailto:cas@vjet.demon.co.uk 20. mailto:miquels@cistron.nl 21. mailto:ts@polynet.lviv.ua 22. mailto:webster@kaiwan.com 23. ftp://navigator.jpl.nasa.gov/pub/doc/faq/UPS.faq 24. ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/answers/UPS-faq 25. mailto:npc@minotaur.jpl.nasa.gov 26. http://www.upssystems.uk.com/upsdir.html 27. http://www.upssystems.uk.com/upsfaqs.html 28. http://sunsite.unc.edu/pub/Linux/system/daemons/init/sysvinit-2.64.tar.gz 29. file://localhost/tmp/zh-sgmltools.14833/UPS-HOWTO.txt.html#software 30. file://localhost/tmp/zh-sgmltools.14833/UPS-HOWTO.txt.html#software 31. http://sunsite.unc.edu/pub/Linux/system/ups 32. http://sunsite.unc.edu/pub/Linux/system/ups/Enhanced_APC_BackUPS.tar.gz 33. http://sunsite.unc.edu/pub/Linux/system/ups/Enhanced_APC_UPSD-v1.4.tar.gz 34. http://sunsite.unc.edu/pub/Linux/system/ups/apcd-0.5.tar.gz 35. ftp://cms180.cmsnet.com/pub/smupsd/ 36. ftp://cms180.cmsnet.com/pub/smupsd/smupsd-0.7-1.i386.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. http://sunsite.unc.edu/pub/Linux/system/ups/genpower-1.0.1.tgz 40. http://sunsite.unc.edu/pub/Linux/system/ups/powerd-2.0.tar.gz 41. http://sunsite.unc.edu/pub/Linux/system/ups/upsd-1.0.tgz 42. http://www.bestpower.com/section/software/checkups.tar 43. http://sunsite.unc.edu/pub/Linux/system/ups/bestups-0.9.tar.gz 44. http://sunsite.unc.edu/pub/Linux/system/ups/bestups-0.9.tar.gz 45. http://sunsite.unc.edu/pub/Linux/system/ups/powerd-2.0.tar.gz 46. file://localhost/tmp/zh-sgmltools.14833/UPS-HOWTO.txt.html#hacking 47. file://localhost/tmp/zh-sgmltools.14833/UPS-HOWTO.txt.html#hacking 48. file://localhost/tmp/zh-sgmltools.14833/UPS-HOWTO.txt.html#hacking 49. file://localhost/tmp/zh-sgmltools.14833/UPS-HOWTO.txt.html#make-cable 50. file://localhost/tmp/zh-sgmltools.14833/UPS-HOWTO.txt.html#make-cable 51. file://localhost/tmp/zh-sgmltools.14833/UPS-HOWTO.txt.html#make-cable