富士通のF-PLUG(http://www.bsc.fujitsu.com/services/f-plug/)を使って、FreeBSDで電力消費量をモニタするツール。
FreeBSD 9.3/i386およびFreeBSD 10.1/i386で動作確認済み。
https://github.com/2510/fplug4bsd
使い方
- 以下を用意します。実際に使ったモノも併記しておきます。
- FreeBSD
FreeBSD 9.3-RELEASE/i386 - Bluetoothが使える環境
PCカード-USBアダプタ: AREA SD-CBU2-Z1
USB-Bluetoothアダプタ iBUFFALO BSBT4D09BK
- FreeBSD
- Bluetoothの基礎設定をします。/etc/bluetooth/ubt0.confを作成し、以下を設定します。
すでに設定ファイルがある場合や、ほかのBluetoothデバイスを使っている人は注意して設定してください。discoverable=NO connectable=YES authentication_enable=YES
- 設定を反映するため、Bluetoothをrestartします。
# sudo /etc/rc.d/bluetooth restart ubt0
- デバイスのBD_ADDRを調べます。 (以下の実行例では、セキュリティの都合により**でマスクしています)
# sudo hccontrol inquiry Inquiry result, num_responses=1 Inquiry result #0 BD_ADDR: **:**:**:**:**:** Page Scan Rep. Mode: 0x1 Page Scan Period Mode: 0x2 Page Scan Mode: 00 Class: 00:25:10 Clock offset: 0x38b0 Inquiry complete. Status: No error [00]
- /etc/bluetooth/hcsecd.confに以下を追記します。nameの欄はお好みで。pinは1234固定です。**:**:**:**:**:**は先に取得したBD_ADDRです。
device { bdaddr **:**:**:**:**:**; name "F-PLUG-1"; key nokey; pin "1234"; }
- /etc/bluetooth/hostsに以下を記述します。これはなくてもよいですが、しておくとちょっとだけ楽ができます。同じく、**:**:**:**:**:**は先に取得したBD_ADDRです。
**:**:**:**:**:** F-PLUG-1
- /etc/rc.confにhcsecd_enable=”YES”を追加して、起動させます。# sudo /etc/rc.d/hcsecd start
- l2pingで導通をチェックします。-aの後ろはhostsに書いた名前か、先に取得したBD_ADDRを指定します。
実行例のとおり、5秒くらいかかりますので気長に待ちます。# sudo l2ping -a F-PLUG-1 0 bytes from F-PLUG-1 seq_no=0 time=5147.284 ms result=0x4 0 bytes from F-PLUG-1 seq_no=1 time=5125.193 ms result=0x4 ^C
- ペアリングを行います。l2pingを打ちっぱなし(Ctrl-Cしない)にすると、F-PLUGの状態ランプが緑-オレンジの交互点滅になり、ペアリング待機状態になります。F-PLUGのボタンを1秒ほど押してペアリングを完了させます。
# sudo l2ping -a F-PLUG-1 0 bytes from F-PLUG-1 seq_no=0 time=49707.508 ms result=0x8 0 bytes from F-PLUG-1 seq_no=1 time=1117.794 ms result=0 0 bytes from F-PLUG-1 seq_no=2 time=16.258 ms result=0 0 bytes from F-PLUG-1 seq_no=3 time=27.963 ms result=0
- fplug4bsdを持ってきてmakeします。
# sudo pkg install git # git clone git@github.com:2510/fplug4bsd.git # cd fplug4bsd # make
- 実行してみます。引数はhostsに指定した名前またはBD_ADDRです。
順に消費電力(W)、温度(℃)、湿度(%)です。# ./fplug F-PLUG-1 139.0 17.0 28.0
エラーが出たら
- F-PLUGが正常に初期化されていない?場合に以下のエラーが出るようです。F-PLUGのペアリングボタンを30秒ほど押して完全にリセットしてからやり直してみてください。
Unexpected response: 0000: 10 81 F9 90 00 22 00 0E F0 00 52 01 E2 00
- –debugオプションでいろいろ吐きますので、がんばって調べてください。
TODO
- 積算の消費電力量も取れるハズなのでなんとかする。
- rc.dスクリプトが手抜きすぎるのでなんとかする。
注意事項
- VMware ESXi 5.1でUSB Passthroughすると、最初は動きますが数時間後にESXiごと死にます。(purple screen of death)
主な更新履歴
謝辞
以下のサイトを参考にさせてもらいました。ありがとうございました。
- F-PLUG (消費電力モニタ) をLinuxで使ってみた
http://sunagae.net/blog/archives/1672 - F-PLUGメッセージ一覧
http://www.bsc.fujitsu.com/services/f-plug/downloads/message.html