SSブログ

Linux VMからのUPS制御でハマり中... [ソフトウェア/PC関係]

CLASSIC PRO 無停電電源装置 UPS1200LX
格安のUPS,サウンドハウスのUPS1200LX。Amazonのマーケットプレイスでも買える。

先日書いた,サウンドハウスのUPS(UPS1200LX)を,vSphere Hypervisor(旧ESXi)上のLinuxのVMからコントロールする話の経過報告。

実を言うと,まだうまく行っていない。UPSをUSBデバイスとしてVMに追加したあと,Linuxのlsusbコマンドで確認すると,次のようになる。

root@hostname: ~# lsusb
Bus 002 Device 003: ID 0001:0000 Fry's Electronics
Bus 002 Device 002: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

"Fry's Electronics"がUPS1200LXだ。つまりUPSのデバイスそのものは認識してるっぽい。しかし,次に"lsusb -v"で詳細情報を表示しようとすると,Fry's Electronicsの表示の最後辺りで,しばらく待ち状態になり,結局次のようなメッセージを出してタイムアウトしてしまう。

cannot read device status, Connection timed out (110)

やっぱり,デバイスとの通信がうまく行っていないのだろうか? Webで検索した情報によると,UPSのデバイスは,/dev/usb/hiddev0として認識されるらしいのだが,私のVM環境ではみつからない。そもそも"/dev/usb"というディレクトリすらない。はじめDebian Lennyでやっていたのだが,Webで見つけた情報に合わせて,Ubuntu 10.10でも試してみても変わらず。VM環境はダメなんだろうか。

実環境でも試してみたいところだが,生憎実環境のLinuxがない。そうそう,こんなときのために,先日ATOM330のマシンを掘り起こしてきたのである。早速Ubuntu 10.10をインストールして試してみると,こちらは何も問題なし。/dev/usb/hiddev0もあるし,タイムアウトもしない。apt-getでnutをインストールして設定すると,あっさり動作するのである。nutで設定した箇所は次の通りだ。

(1) /etc/nut/nut.confの最終行を次のように変更
MODE=standalone

(2) /etc/nut/ups.confに次の設定を追加
[ups1200lx]
driver=megatec_usb
vendorid=0001
productid=0000
subdriver=krauler
desc="UPS1200LX"
port=/dev/usb/hiddev0

そして,次のコマンドでnutを再起動する。

root@hostname: ~# /etc/init.d/nut restart
 * Restarting Network UPS Tools                 [ OK ]

動作確認するには,upscコマンドを使う。ups.confで"["と"]"に挟んで指定した名前("ups1200lx")を引数として実行すると,

root@hostname: ~# upsc ups1200lx
battery.charge: 100.0
battery.voltage: 27.40
battery.voltage.nominal: 24.0
...(中略)...
ups.status: OL
ups.temperature: 29.0
ups.type: standby

という具合に,UPSの情報が表示される。正確には,nutのrestartだけではうまく行かず,Linuxをrebootしたのだが,いずれにしろちゃんと動作しているようだ。

ではなぜVMでは駄目なのだろう。/dev/usb/hiddev0がないのがいけないのかと思って,Linuxのドキュメント,"Care and feeding of your Human Interface Devices"を参考に,

root@hostname: ~# mkdir /dev/usb
root@hostname: ~# mknod /dev/usb/hiddev0 c 180 96

とやってみたが駄目だった。何やってるか,全然理解できてないんだけども。Linuxは完全にスキル不足だなぁ。

Windowsでできたのだから,できないはずはないと思うのだが,もう少し調査と勉強が必要なようだ。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

記憶にございません緊急オペ ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。