PukiWiki:雑多な保管庫


APC CS500 を USBケーブルで制御する

PC備忘録 > Linux > Vine Linux > APC CS500 を USBケーブルで制御する


今まで使用していたUPSのバッテリがが寿命を迎え、バッテリ交換するより買い換えた方が安いので、APCのUPSを購入した。apcupsdを使えばLinux上からも制御できるらしい。出来れば別途オプションで買わないといけないシリアルケーブルではなくて標準添付のUSBケーブルで制御したい。 ということでいろいろとやってみました。

_ 参考サイト

Linuxの下のAPC UPS管理

_ apcupsd の配布先

  • sourceforge
    • これを書いた時点で、apcupsd-3.13.9

_ 下準備

  • ソースを解凍
  • マニュアルのApcupsd's Support for USB UPSesをよく読む。
    • % cd <apcupsd-src>/examples/
    • # ./make-hiddev* ← rootになってデバイスファイルを作る。
  • ヘッダーファイルをインストールする。
    • # pushd /usr/src<kernel-source-directory>/
    • # cp include/linux/hiddev.h /usr/include/linux/
    • # popd
  • テストプログラムをビルド
    • # make hid-ups ← エラーなしでビルドできるはず。
    • # ./hid-ups
    • 〜ダラダラと標準出力にUPSからの情報が出力されるはず。
      • ※このプログラムを同時に複数走らせると、カーネルが落ちるらしいです。
  • apcupsd をビルド
    • % cd <apcupsd-src>
    • configure オプション
      % ./configure \
      --with-serial-dev=/dev/usb/hid/hiddev0 \
      --with-upstype=usb \
      --with-upscable=usb \
      --enable-pthreads \
      --enable-usb \
      --enable-cgi --with-cgi-bin=/path/to/cgi-bin \ 
      --with-distname=redhat
      • ※ configure時にディストリビューションを認識して起動スクリプトとかを正しい位置に組み込もうとします。Vineの場合はredhatでいけます。詳しくは、configure の中身を見てください。
    • % make
    • # make install

_ 起動

  • 設定
    • そのまま起動しても動くのだが、VineをRedHatだと偽っているのがバレるので、起動スクリプトを加工する。
      • # cd /etc/rc.d/init.d/
      • # vi apcupsd
      • 頭の方の、ディストリビューションのバージョンをみている部分をコメントアウト(バージョンを表示しているだけなので影響ない)。
    • # vi /etc/apcupsd/apcupsd.conf ←設定ファイル
    • 起動する。
      • # service apcupsd start
      • # ps ax | grep apc ←プロセスを確認
      • # service apcupsd status ← ステータスを表示
  • CGI
    • apcupsdが走る計算机上でhttpdが動いていれば、CGIでモニタリング可能です。
    • http://<apcupsdが走る計算機のアドレス>/cgi-bin/multimon.cgi にアクセス
      • それぞれの計算機の設定に合わせてください。
      • 同一サブネット上でapcupsdが動いている場合はまとめて面倒見れるそうです。
      • まとめて面倒見る場合は、当然、ハブもバックアップにしておかないとダメです。
 
Link: PC備忘録(1394d) Vine Linux(1395d)
Last-modified: Wed, 08 Nov 2006 18:57:16 JST (1395d)