?? ups-howto.txt
字號:
* 下載并審查所有看起來特別適合您的 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 <line> 其中,請您自行將 <line> 這個字替換成 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 ,所以我加入了對它的支援。 您也許已在最近的一個 <signal.h> 標頭檔中看到了 #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, <miquels@cistron.nl.mugnet.org> 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 <dannyth@hacktic.nl> or <danny@cistron.nl.mugnet.org> Robins law #103: 'a couple of lightyears can't part good friends'6.2 訊號纜線反向分析及修改 power.cReferences 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/bg5sgmltools.16308/UPS-HOWTO.txt.html#software 30. file://localhost/tmp/bg5sgmltools.16308/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/bg5sgmltools.16308/UPS-HOWTO.txt.html#hacking 47. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#hacking 48. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#hacking 49. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#make-cable 50. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#make-cable 51. file://localhost/tmp/bg5sgmltools.16308/UPS-HOWTO.txt.html#make-cable
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -