玄箱ProのHDDの温度を取得する

玄箱ProのHDD温度が取得できるのを知ったので、そのメモ。


といっても、コマンドいっぱつ

# apt-get install hddtemp

hddtempというのが、HDDの温度を取得するコマンド。

# hddtemp /dev/sda
/dev/sda: WDC WD1001FALS-00E8B0: 45°C

簡単なことです。

# hddtemp -n /dev/sda
45

-nをつければ、数字のみが表示される。これでmrtgなどに流しこめばOK。

玄箱ProでDebian Lennyの環境が整ったところであるが、いくつかのコマンドが使えなくなっている。

nvram

u-bootの環境変数を読み書きするプログラム

miconapl

電源スイッチ、LED、スピーカー、ファンなどをコントロールするコントローラにコマンドを発行するコマンド

Fand

miconaplを使って、温度を調べ、ファンの速度を調整するスクリプト。

nvramは、もう使うことも無いだろうけど、一応保険。miconaplは、これはこれで、温度がとれたりするので、ためしてみる。

参考文献は、

お勉強になります。ありがとう。

# mount -t jffs2 /dev/mtdblock2 /mnt/a

まず、これで、オリジナルのLinuxのディスクというかFlashメモリをマウント。

# cp /mnt/a/usr/local/lib/buffalo_bin.so /usr/local/kurobako/lib

nvramだか、miconaplだかのどっちかが、buffalo_bin.soを使っているので、それを調達。

/usr/local/kurobako は、それ用に準備してみました。

# cp /mnt/a/usr/local/bin/miconapl /usr/local/kurobako/bin
# cp /mnt/a/usr/local/lib/nvram /usr/local/kurobako/bin
# cp /mnt/a/usr/local/lib/Fand /usr/local/kurobako/bin
# cp /mnt/a/etc/fan.prof /usr/local/etc

次に、Library Pathを追加するスクリプトを調達。まあ別に、普通に.bashrcとかに入れてもよさそうなんだけど、気分の問題。

miconapl

# !/bin/sh
CMD=/usr/local/kurobox/bin/`basename $0`
LD_LIBRARY_PATH=/usr/local/kurobox/lib $CMD $*

nvram

#!/bin/sh
CMD=/usr/local/kurobox/bin/`basename $0`
LD_LIBRARY_PATH=/usr/local/kurobox/lib $CMD “$@”

んで、このmiconaplと、nvramというスクリプトファイルを/usr/local/sbinに実行権をつけてほうりこんでおく。

# nvram -c printenv

で、ちゃんと表示されればOK。

# miconapl -b -a temp_get

で、温度が表示されればOK。

Fandはただのスクリプト。

あたまに、

CONF_FILE=/etc/fan.prof

となっているところがあるので、先ほどfan.profをコピーした、/usr/local/etc/fan.profに直しておく。

/usr/local/sbin/miconapl -b -a boot_end
/usr/local/sbin/Fand 2> /dev/null &

で、あとはこいつを/etc/rc.localのexitの前にいれておけば、起動時にFandスクリプトが起動して、温度にあわせてFanをコントロールしてくれる。

ついでに、

/usr/local/sbin/miconapl -a bz_melody “30 b4 b5 b4 b6”

も、rc.localに書いておく。これは、ぴろりろって鳴らすコマンド。rc.localの最後に書いておくことにより、再起動したあとに、ぴろりろって鳴ってくれて、再起動が終了したことがわかるようになる。

コメントを残す