FreeBSD 8.2 サーバに UPS mini 500 IIを接続したときのメモ
いろいろ苦労したので忘れないようにメモしました。見にくいです。
関係のありそうなものを適当に書いておきます。(SW・HWまぜこぜ)
- マザーボード: D510MO http://www.intel.com/cd/channel/reseller/ijkk/jpn/437989.htm
- └アイネックス シリアルリアスロット 1ポート RS-300 http://www.ainex.jp/products/rs-300.htm
- UPSmini500 II(UPS 無停電電源装置)http://www.yutakadenki.jp/products/004_UPSmini.html
- └UPS制御用ソフト http://www.ups-sol.com/s-fbsd.html
- FreeBSD 8.2-RELEASE http://www.freebsd.org/ja/
FreeBSD 8.2でシリアルポートを認識しているかチェック
以下のコマンドで認識しているかチェックできると思っていましたが、ダメでした。
# dmesg ¦ grep sio ioapic0 <Version 2.0> irqs 0-23 on motherboard hdac0: HDA Driver Revision: 20100226_0142 usbus4: EHCI version 1.0 acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed03fff on acpi0
FreeBSD 8.1-RELEASEからsioがuartに移行したという噂です。
# dmesg ¦ grep uart uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 uart0: [FILTER] uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0 uart1: [FILTER]
何か認識しているという確認が出来ました。
UPS制御用ソフトのコンパイルに細工
UPSソリューションズ株式会社さんのページにある、UPS制御用ソフト FreeBSD対応フリーソフトウェアを http://www.ups-sol.com/s-fbsd.html ありがたく使います。
Webページに書いてあるように進めていきます。『4.2.インストール方法-(3)停電待ち時間を設定し、コンパイルおよびインストールします。』で引っかかります。そのままではうまくコンパイルが出来ません。修正箇所は以下の通りです。
【修正前】 ... 11: touch /sbin/usvd 12: mv -f /sbin/usvd /sbin/usvd.old 13: cp usvd /sbin 14: chown root.bin /sbin/usvd 15: chmod 700 /sbin/usvd 16: 17: touch /sbin/usv_off 18: mv -f /sbin/usv_off /sbin/usv_off.old 19: cp usv_off /sbin/usv_off 20: chown root.bin /sbin/usv_off 21: chmod 700 /sbin/usv_off 22: 23: touch /sbin/usv_back 24: mv -f /sbin/usv_back /sbin/usv_back.old 25: cp usv_back /sbin/usv_back 26: chown root.bin /sbin/usv_back 27: chmod 700 /sbin/usv_back ...
【修正後】 ... 11: touch /sbin/usvd 12: mv -f /sbin/usvd /sbin/usvd.old 13: cp usvd /sbin 14: chown root:bin /sbin/usvd 15: chmod 700 /sbin/usvd 16: 17: touch /sbin/usv_off 18: mv -f /sbin/usv_off /sbin/usv_off.old 19: cp usv_off /sbin/usv_off 20: chown root:bin /sbin/usv_off 21: chmod 700 /sbin/usv_off 22: 23: touch /sbin/usv_back 24: mv -f /sbin/usv_back /sbin/usv_back.old 25: cp usv_back /sbin/usv_back 26: chown root:bin /sbin/usv_back 27: chmod 700 /sbin/usv_back ...
また、現在のシャットダウン設定は、/sbin/shutdown -h nowとなっているため、PC電源を手動で切る必要があります。必要に応じて/sbin/shutdown -p nowに書き換えます。書き換えるのは、下の2つのファイルです。
- etc/linefail
- etc/battlow
シリアルポートデバイスにシンボリックリンク
Webページの通り進めていくと、次に引っかかるのが「(4)UPSが接続されているシリアルポートデバイスのリンクを張ります。」です。問題点は2つです。
- cuaaXXがない。
- /devフォルダのシンボリックリンクは、再起動で消える。
cuaaXX
この問題は名前が変わっただけでした。FreeBSD 7.xはcuad0、cuad1…、FreeBSD 8.xはcuau0、cuau1…となっているそうです。ということで、私はcuau0(com1)に読み替えて進めました。 参考:http://d.hatena.ne.jp/appleappli/20101211/1292072125
/devフォルダのシンボリックリンク
/devフォルダのシンボリックリンクは、再起動で消えてしまうFreeBSDの仕様だそうです。FreeBSD ハンドブック http://www.freebsd.org/doc/ja/books/handbook/video-playback.html によりますと、『devfs(5) の仕様により、 このように手動で作成されたリンクは再起動すると消えてしまいます。システムの起動時にこれらのシンボリックリンクを自動的に作成するには、 /etc/devfs.conf に下記の設定を追加します。』とあります。
と言うわけで、/etc/devfs.confに以下の下線部項目を追加しました。
# Historically X depended on this, but version 4.3.0 doesn't seem to anymore
#link ttyv0 vga
# Commonly used by many ports
#link acd0 cdrom
# Allow a user in the wheel group to query the smb0 device
#perm smb0 0660
# Allow members of group operator to cat things to the speaker
#own speaker root:operator
#perm speaker 0660
link cuau0 usv
普通にシンボリックリンクを張るだけですと、再起動後に「usvが見つかりません」と怒られました。
おわりに
これ以降は、webページの指示通りでうまく動いたと思います。(記憶が正しければ)