Linux でオムロン POWLI を使う

このサーバ (i.loveruby.net) はオムロン POWLI BX50XF (現在は型番が BX50XFV になったらしい) という UPS でバックアップしています。 これには最初から Linux 用の制御ソフトがついていて停電になると 勝手にシャットダウンしたりできるんですが、Debian だとこのソフト がちゃんと動きません。どうやら libstdc++ のバージョンが合って ないような感じです。それに動いたとしてもいきなり X Window 用の コンソールを立ちあげようとしたりするあたりなかなかウザい奴です。

そこで、汎用の UPS 監視ソフト genpower というのを使うことにしま した。genpower は標準では POWLI には対応していないんですが、 小さなパッチをあてることで簡単に対応可能です。……と言っても 自分で書いたわけではなくて、 Winfield さんのページ からパッチや手順その他ぜんぶ頂きました。以下はその単なるまとめです。

それと、winfield さんのページにあったパッチは BX35/50XF(V) 用 なんですが、似たやつで BX50LF というのもあります。こっちは 熊谷さんのページに手順がありました。ケーブル自作してますけど……。

手順


mkdir /usr/src/genpower
cd /usr/src/genpower
apt-get source genpower
cd genpower-1.0.1
patch < genpowerd.h.diff
debchange -a 'Added OMRON POWLI BX35/50XF config entry.'
su
./debian/rules build
dpkg-buildpackage -us -uc

ここまでで /usr/src/genpower に新しい .deb パッケージが できるので、それを dpkg -i でインストールする。そして、genpower を 勝手にアップデートされないように dselect で genpower パッケージを hold (=) しておく。あとはコンフィグファイルの設定。量は少ない。


# /etc/init.d/genpower の先頭付近のパラメータを以下のように調整
enabled=1
upsport=/dev/ups
upstype=omron-powli

omron-powli はパッチで追加しているエントリの最初の要素。 /dev/ups は最初から存在するわけではないので /dev/ttyS0 (COM1) あたりへシンボリックリンクを 張っておく。/etc/init.d/genpower のエントリの ほうを変えてもいいけど、たぶんリンクを張るほうがなにかといい。

最後に /etc/init.d/powerfail のパラメータを 調整しておしまい。コメント見ればわかるけど、停電になってから 何分でシャットダウンするかとか、そういう値を設定できる。