BY50Sはコンパクトながら正弦波出力、しかも価格は20k以下となかなか良いUPS.
Linuxも対応しているということで買ってみた。
しかし、distributionの縛りが緩そうで、わりと汎用に使えそうなSimple Shutdown Softwareは、
本当にシンプルで、できることはシャットダウンくらい。情報取得をしてみたかったので、
今回はあえてNUT (Network UPS Tools)を使ってみた。
(ちゃんとした環境ではSimple Shutdown SoftwareかPowerAct Proを使用することをおすすめします。
ちゃんと動かなくても誰も助けてくれないです。)
できた後にやったので、途中経過など不足している部分があるかもしれないです。
(結論だけ書いているので、ドライバ探しとかの経緯はまったく書いてない)
<概要>
・NUT 2.6系を使った場合の説明
・ドライバはblazer_usb, subdriverにはipponを指定する。
・よりよい情報を得るには電圧等を読んで設定に記録する(別エントリ)
・Ubuntu 11.04の場合であるが、他のdistribution / OSでも似たような感じと思われる。
以上。このエントリは実はこれだけでいいかも。
<インストール>
# apt-get install nut
<NUTの設定>
/etc/nutに設定ファイルがある。いじるのは、
モードを司るnut.conf, 機器の「ドライバ」の設定を行うups.conf, ドライバとクライアントの
やりとりをするupsdの設定upsd.conf, upsdの接続ユーザ設定のupsd.users, UPSの状態を
モニタリングするupsmon.confとなる。
設定内容は以下のとおり
nut.conf
MODE=standalone
ups.conf
[by50s]
driver = blazer_usb
port = /dev/usb/hiddev0
desc = "Omron UPS"
vendorid = 0590
productid = 0081
subdriver = ippon
vendorid, productidはlsusbの結果を読む
# lsusb
(略)
Bus 005 Device 002: ID 0590:0081 Omron Corp.
(略)
portは実は関係ないので、なんでもいい。port = autoにしておくといいかもみたいなことを
マニュアルに書いてあった。
upsd.users
[upsmon]
password = [password]
upsmon master
upsmon.conf
MONITOR by50s@localhost 1 upsmon [password] master
<udevの設定>
nutユーザでUPSデバイスが見えるように設定する。
/lib/udev/rules.d/52-nut-usbups.rulesが用意されるので、他の
行に合わせて以下を書く。
# Omron BY50S - blazer_usb
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
ATTRS{idVendor}=="0590", ATTRS{idProduct}=="0081", \
MODE="0664", GROUP="nut"
このファイルはパッケージアップグレードで上書きされてしまうかもしれないので、
53-nantyara.rulesを用意して書くほうがいいかも。
このルールの書き方はudevのバージョンによって違うので、他のdistributionでは
気をつける。
終わったら、
# /etc/init.d/udev restart
しておく。
<動作確認>
まずはドライバの確認。
$ sudo ./blazer_usb -a by50s -DDD
Network UPS Tools - Megatec/Q1 protocol USB driver 0.03 (2.6.0)
0.000000 debug level is '3'
(略)
0.290799 Trying to match device
0.290819 Device does not match - skipping
0.290844 Checking device (0590/0081) (003/002)
0.312918 - VendorID: 0590
0.312957 - ProductID: 0081
0.312975 - Manufacturer: OMRON
0.312993 - Product: BY50S
0.313010 - Serial Number: unknown
0.313028 - Bus: 003
0.313045 Trying to match device
0.313130 Device matches
0.315981 Trying megatec protocol...
0.319910 send: Q1
0.564929 read: (103.1 103.9 102.6 000 50.0 13.0 43.4 00101000
0.565172 Status read in 1 tries
0.565195 Supported UPS detected with megatec protocol
(略)
0.565216 Battery runtime will not be calculated (runtimecal not set)
0.568909 send: Q1
0.820932 read: (103.1 103.9 102.8 000 50.0 13.0 43.4 00101000
0.821185 dstate_init: sock /var/run/nut/blazer_usb-by50s open on fd 5
0.824906 send: Q1
1.076905 read: (103.2 103.9 102.8 000 50.0 13.0 43.4 00101000
2.826914 send: Q1
3.076932 read: (103.1 103.9 102.6 000 50.0 13.0 43.4 00101000
4.827914 send: Q1
5.076929 read: (103.2 103.9 102.6 000 50.0 13.0 43.4 00101000
(略)
Ctrl+Cで終了。send: Q1でread: (100... が読めたらOK. Vendor informationがNAKとかいうのは気にしない。Operation not permittedみたいなのが出たら、オプションに-u rootをつけてみて成功したら、
権限問題の可能性が高い。udevの設定やらを疑うこと。そうでなかったら残念。
ほぼ同じことであるが、以下を実行してエラーが出ないことを確認する。
$ sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.6.0
Network UPS Tools - Megatec/Q1 protocol USB driver 0.03 (2.6.0)
Supported UPS detected with megatec protocol
Battery runtime will not be calculated (runtimecal not set)
あとは/etc/init.d/nut startなりで起動すればOK.
upsd, upsmonプロセスが動いていることを確認する。
upscというコマンドを使うと、情報が取れる。
# upsc by50s
battery.voltage: 12.30
beeper.status: disabled
device.type: ups
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/usb/hiddev0
driver.parameter.productid: 0081
driver.parameter.subdriver: ippon
driver.parameter.vendorid: 0590
driver.version: 2.6.0
driver.version.internal: 0.03
input.frequency: 49.9
input.voltage: 102.9
input.voltage.fault: 102.7
output.voltage: 102.3
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 32
ups.productid: 0081
ups.status: OL BYPASS
ups.temperature: 57.0
ups.type: offline / line interactive
ups.vendorid: 0590
upslogというコマンドもただ記録するだけだが便利。
あとは電源試験をすればOK. デフォルトでは、Low Battery状態になると、
shutdownシーケンスに入ってくれる。普通に使う分にはこれでOK.
上記の設定方法は、公式のUser Manualにまとまっているので、参照のこと。
Configuration notesセクションの内容。
http://www.networkupstools.org/docs/user-manual.chunked/ar01s06.html
あとはドライバのman page. 今回はblazer_usb(8).
情報取得のチューニングについては、次回記載。