SANWA SUPPLY UPS-650Dを
付属ケーブル(MUX3115-NT)でシリアルポートに繋いで Debian GNU/Linux の nut から使う場合の設定。
Debian GNU/Linux x86 の unstable で lsb_release は以下の状態
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux unstable (sid)
Release: unstable
Codename: sid
nut のバージョンは以下の状態
dpkg -l | grep nut
...
ii nut 2.6.4-2 all network UPS tools - metapackage
ii nut-server 2.6.4-2 i386 network UPS tools - core system
ii nut-client 2.6.4-2 i386 network UPS tools - clients
...
以前は、nut 1 パッケージだけで完結していたのが、nut, nut-server, nut-client の 3 パッケージに分割されてる模様。
これに伴い、サービス起動用のスクリプトも /etc/init.d/nut から /etc/init.d/nut-server に変更になったようなので注意かな?
まず、以下のファイルで次のように設定を行なう。
/etc/nut/nut.conf
MODE=standalone
/etc/nut/ups.conf
[UPS-650D]
driver = genericups
port = /dev/ttyS0
upstype = 9
mfr = "SANWA SUPPLY"
model = UPS-650D
CP = none
OL = -CTS
LB = -DCD
SD = DTR
/etc/nut/upsd.users
[upsmon]
password = password
upsmon master
/etc/nut/upsmon.conf
MONITOR UPS-650D@localhost 1 upsmon password master
次に genericups ドライバで上記で設定した UPS-650D にアクセス出来るかどうかを確認
# /lib/nut/genericups -a UPS-650D -DDD
Network UPS Tools - Generic contact-closure UPS driver 1.36 (2.6.4)
0.000000 debug level is '3'
0.001199 Can't chdir to /var/run/nut: No such file or directory
と言われてしまった。
How-To: install NUT on Ubuntu 10.10 Maverick Meerkat
によれば /var/run/nut がないだけなので、以下のように /var/run/nut を掘っとけと。
mkdir /var/run/nut
chown root:nut /var/run/nut
chmod 770 /var/run/nut
再度確認
# /lib/nut/genericups -a UPS-650D -DDD
Network UPS Tools - Generic contact-closure UPS driver 1.36 (2.6.4)
0.000000 debug level is '3'
0.001195 UPS type: APC Back-UPS (940-0023A cable)
Unable to open /dev/ttyS0: Permission denied
Current user id: nut (114)
Serial port owner: root (0)
Serial port group: dialout (20)
Mode of port: 1660
Things to try:
- Use another port (with the right permissions)
- Fix the port owner/group or permissions on this port
- Run this driver as another user (upsdrvctl -u or 'user=...' in ups.conf).
See upsdrvctl(8) and ups.conf(5).
0.001778 Fatal error: unusable configuration
nut に対して /dev/ttyS0 の permission が出せてない模様。
/dev/ttyS0 の owner は以下のようになってる。
# ls -l /dev/ttyS0
crw-rw---T 1 root dialout 4, 64 10月 20 18:29 /dev/ttyS0
dialout グループに nut を加えておけば OK なはずなので
vigr して
dialout:x:20:
のところに nut を以下のように追加しておく。
dialout:x:20:nut
再度確認。
# /lib/nut/genericups -a UPS-650D -DDD
Network UPS Tools - Generic contact-closure UPS driver 1.36 (2.6.4)
0.000000 debug level is '3'
0.001190 UPS type: APC Back-UPS (940-0023A cable)
0.001518 parse_output_signals: CP overridden with none
0.001574 parse_output_signals: SD overridden with DTR
0.001666 parse_input_signals: OL overridden with -CTS
0.001718 parse_input_signals: LB overridden with -DCD
0.001862 dstate_init: sock /var/run/nut/genericups-UPS-650D open on fd 5
ここで待機状態になるれば成功なので Ctrl-C で中断する。
あとは nut-server を invoke-rd.d または service コマンドを使って起動する。
以下のようになれば成功してるはず。
# invoke-rc.d nut-server start
Starting NUT - power devices information server and drivers: driver(s). upsd.
最後に upsc コマンドで UPS の状態が確認出来るかを確認
# upsc UPS-650D
device.mfr: SANWA SUPPLY
device.model: UPS-650D
device.type: ups
driver.name: genericups
driver.parameter.CP: none
driver.parameter.LB: -DCD
driver.parameter.mfr: SANWA SUPPLY
driver.parameter.model: UPS-650D
driver.parameter.OL: -CTS
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyS0
driver.parameter.SD: DTR
driver.parameter.upstype: 9
driver.version: 2.6.4
driver.version.internal: 1.36
ups.mfr: SANWA SUPPLY
ups.model: UPS-650D
ups.status: OL
同様にして UPS への電力供給を遮断(ぶっちゃけるとコンセントを抜いた状態に)した状態で、ups.status が変化しているかも確認。
# upsc UPS-650D
device.mfr: SANWA SUPPLY
device.model: UPS-650D
device.type: ups
driver.name: genericups
driver.parameter.CP: none
driver.parameter.LB: -DCD
driver.parameter.mfr: SANWA SUPPLY
driver.parameter.model: UPS-650D
driver.parameter.OL: -CTS
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyS0
driver.parameter.SD: DTR
driver.parameter.upstype: 9
driver.version: 2.6.4
driver.version.internal: 1.36
ups.mfr: SANWA SUPPLY
ups.model: UPS-650D
ups.status: OB
以上、とりあえず UPS が OL か OB かは確認出来てるところまでは確認出来た模様。