以下のページによると omron BY50S は nut の blazer_usb ドライバと ippon サブドライバで動くとのこと。
環境は以下。
まず nut を install しておく例えば以下のようにする。
/etc/nut/nut.conf
次に udev に rule を再読み込みさせ USP に trigger をかける。
うちの環境では Bus, Device は 002, 002 だったので以下のようにして確認した。
もし group が root のままなら udev の rule の書き方に間違いがある可能性が高いが reload rules と trigger に若干時間がかかるので、数秒置いてから ls しなおしてみると成功しているかもしれない。
udev の設定が完了したら blazer_usb のドライバで上記で設定した by50fw にアクセスできるか確認
ここまで上手く行ったら nut を起動
このままだと、バッテリーの充電率が分からないので、
満充電と空になった時の battery.voltage の値を upsc コマンドで調べておいて
/etc/nut/ups.conf で設定した [by50fw] のところに以下のような記述を追加しておくと良いとの事
参考:
- 開発日誌 / 2011-05-06: OMRON BY50SをUbuntu 11.04で使用する
環境は以下。
# uname -a Linux hostname 2.6.32-5-686 #1 SMP Mon Oct 3 04:15:24 UTC 2011 i686 GNU/Linux # lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 6.0.3 (squeeze) Release: 6.0.3 Codename: squeeze # dpkg -l nut Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii nut 2.4.3-1.1squee network UPS tools - core system # dpkg -l udev Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii udev 164-3 /dev/ and hotplug management daemon
まず nut を install しておく例えば以下のようにする。
# aptitude install nut次に lsusb コマンドで BY50FW の idVendor, idProduct 及び USB 接続されている Bus と Device を調べる。
# lsusb | grep -i omron Bus 002 Device 002: ID 0590:0065 Omron Corp.上記の idVendor, idProduct の値を用いて、以下のファイルで次のように設定を行う(passwordは適当な値に変更すること)。
/etc/nut/nut.conf
MODE=standalone/etc/nut/ups.conf
[by50fw] driver = blazer_usb port = auto desc = "OMRON BY50FW" vendorid = 0590 productid = 0065 subdriver = ippon/etc/nut/upsd.users
[upsmon] password = password upsmon master/etc/nut/upsmon.conf
MONITOR by50fw@localhost 1 upsmon password master/etc/udev/rules.d/52-nut-usbups-local.rules
ACTION!="add|change", GOTO="nut-usbups_rules_end" SUBSYSTEM=="usb_device", GOTO="nut-usbups_rules_real" SUBSYSTEM=="usb", GOTO="nut-usbups_rules_real" BUS!="usb", GOTO="nut-usbups_rules_end" LABEL="nut-usbups_rules_real" # omron UPS BY50FW - blazer_usb ATTR{idVendor}=="0590", ATTR{idProduct}=="0065", MODE="664", GROUP="nut" LABEL="nut-usbups_rules_end"上記 udev の rule は /lib/udev/rules.d/52-nut-usbups.rules をコピーして来て、他の UPS の設定を BY50FW の idVendor, idProduct で書き換え、不要部分を削除して作成した。
次に udev に rule を再読み込みさせ USP に trigger をかける。
#udevadm control --reload-rules #udevadm trigger --verbose --attr-match=idVendor=0590 --attr-match=idProduct=0065 /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1trigger されるパスは接続した USB 端子により異なるが、おおよそ上記のように trigger された事が確認できたら /dev/bus/usb/Bus/Device (Bud, Device は最初に lsusb で調べた値) の group が nut になっているか確認する。
うちの環境では Bus, Device は 002, 002 だったので以下のようにして確認した。
# ls -l /dev/bus/usb/002/002 crw-rw-r-- 1 root nut 189, 129 2012-08-01 19:48 /dev/bus/usb/002/002上記のように group が nut になっているれば成功。
もし group が root のままなら udev の rule の書き方に間違いがある可能性が高いが reload rules と trigger に若干時間がかかるので、数秒置いてから ls しなおしてみると成功しているかもしれない。
udev の設定が完了したら blazer_usb のドライバで上記で設定した by50fw にアクセスできるか確認
# /lib/nut/blazer_usb -a by50fw -DDD設定に成功していれば以下のように表示が出続けるので Ctrl-C で止める。
Network UPS Tools - Megatec/Q1 protocol USB driver 0.03 (2.4.3) 0.000000 debug level is '3' 0.169933 Checking device (1D6B/0001) (005/001) 0.170033 - VendorID: 1d6b 0.170047 - ProductID: 0001 0.170059 - Manufacturer: unknown 0.170071 - Product: unknown 0.170082 - Serial Number: unknown 0.170094 - Bus: 005 0.170105 Trying to match device 0.170131 Device does not match - skipping ... 0.170429 Checking device (0590/0065) (002/002) 0.192262 - VendorID: 0590 0.192289 - ProductID: 0065 0.192300 - Manufacturer: OMRON 0.192311 - Product: BY50FW 0.192323 - Serial Number: unknown 0.192334 - Bus: 002 0.192346 Trying to match device 0.192410 Device matches 0.195292 Trying megatec protocol... 0.199266 send: Q1 0.447231 read: (099.8 086.9 099.8 083 60.0 13.5 32.5 00101000 ...もし上記の udev の設定に失敗していると、以下のように Operation not permitted と言われて止まる
Network UPS Tools - Megatec/Q1 protocol USB driver 0.03 (2.4.3) 0.000000 debug level is '3' 0.169889 Checking device (1D6B/0001) (005/001) 0.169985 - VendorID: 1d6b 0.169998 - ProductID: 0001 0.170011 - Manufacturer: unknown 0.170023 - Product: unknown 0.170034 - Serial Number: unknown 0.170046 - Bus: 005 0.170057 Trying to match device 0.170083 Device does not match - skipping ... 0.170383 Checking device (0590/0065) (002/002) 0.170419 - VendorID: 0590 0.170432 - ProductID: 0065 0.170444 - Manufacturer: unknown 0.170456 - Product: unknown 0.170468 - Serial Number: unknown 0.170480 - Bus: 002 0.170491 Trying to match device 0.170544 Device matches 0.170564 failed to claim USB device: could not claim interface 0: Operation not permitted 0.170582 failed to detach kernel driver from USB device: could not detach kernel driver from interface 0: Operation not permitted 0.170599 failed to claim USB device: could not claim interface 0: Operation not permitted 0.170615 failed to detach kernel driver from USB device: could not detach kernel driver from interface 0: Operation not permitted 0.170632 failed to claim USB device: could not claim interface 0: Operation not permitted 0.170648 failed to detach kernel driver from USB device: could not detach kernel driver from interface 0: Operation not permitted 0.170664 failed to claim USB device: could not claim interface 0: Operation not permitted 0.170681 failed to detach kernel driver from USB device: could not detach kernel driver from interface 0: Operation not permitted 0.170695 Can't claim USB device [0590:0065]: could not detach kernel driver from interface 0: Operation not permitted
ここまで上手く行ったら nut を起動
# invoke-rc.d nut start Starting Network UPS Tools: driver(s) upsd upsmon.最後に upsc コマンドで BY50FW の状態を確認
# upsc by50fw battery.voltage: 13.50 beeper.status: disabled device.type: ups driver.name: blazer_usb driver.parameter.pollinterval: 2 driver.parameter.port: auto driver.parameter.productid: 0065 driver.parameter.subdriver: ippon driver.parameter.vendorid: 0590 driver.version: 2.4.3 driver.version.internal: 0.03 input.frequency: 60.0 input.voltage: 100.3 input.voltage.fault: 86.9 output.voltage: 100.3 ups.delay.shutdown: 30 ups.delay.start: 180 ups.load: 85 ups.productid: 0065 ups.status: OL BYPASS ups.temperature: 32.5 ups.type: offline / line interactive ups.vendorid: 0590上記のようにラインやバッテリーの状態が確認できたら成功
このままだと、バッテリーの充電率が分からないので、
満充電と空になった時の battery.voltage の値を upsc コマンドで調べておいて
/etc/nut/ups.conf で設定した [by50fw] のところに以下のような記述を追加しておくと良いとの事
default.battery.voltage.high = 13.7 default.battery.voltage.low = 11.0nut を再起動すると battery.charge の値が利用可能となる。
参考:
- 開発日誌 / 2011-05-06: OMRON BY50SをUbuntu 11.04で使用する
- HowtoForge / Network UPS Tools (NUT) For USB UPSs On CentOS 5.5
タグ
コメントをかく