PIB - Debian GNU/Linux - nut - SANWA SUPPLY UPS-650D

設定 (2012-10-20)

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 かは確認出来てるところまでは確認出来た模様。

関連