2009年4月13日

VIA EPIA-EN で watchdog を設定

iPod Touch のアプリに某掲示板の専用ビューア BB2C がある。 結構使い勝手が良いので、最近ぱらぱら見るようになった。 その中で、自作PC板の低消費電力なんとかスレッドを覗いたら、 PCのアイドル時の消費電力が 20W〜30W の報告があり、10Wとかもある。 ちょっとビックリ。

なんやかんやで、ここ2年くらいCPUもマザーボードも買っていないので、 すっかり取り残されてしまったようである。 手持ちのパーツの Athlon64X2 3800+/M2NPV-VM/DDR2-800 2Gx4 を組み合わせて、 アイドル時の消費電力が 70W となど浮かれていたのは、どうも井戸の中の蛙だったようである。

はぁ〜〜。金欠だし、どうしてくれようかぁ

しょうがないので、箪笥の奥に眠っていた EPIA-EN12000EGを引っ張りだしてきたのだが、 コイツは Linux では時々ちょっと原因不明のハングアップして常時運用とか向かないので ゴミかなと思っていた代物である。

動かせるように組み直して計測してみると、アイドル時の消費電力が 15Wくらいである。 某 Early2009 とほぼ同じ。でもあっちは Core2Duo 、、、懐が淋しいので我慢しよう。

P1010634P1010635

最新のカーネルであれば、問題が修正されているかと思って様子を見たが、 頻度は多くないがハングアップする現象はあるようである。

マニュアルには「Watchdog Timer」の記述があり、コイツがなんとかできればハングアップしても強制再起動ができ、常時運用が出来そうである。

、、、えっと、ドライバはどれ?

ググるところ、小一時間。下記のURL のフォーラムにズバリの回答があった。
tkArena Forums > VIA Arena > VIA EPIA (Mini-ITX, Nano-ITX, Pico-ITX) Arena - hardware watchdog

Super I/Oチップの w83697hf に watchdog timer が実装されており、そいつがどっかにリセットのシグナルを出すらしい。

watchdog モジュールのロード

EPIA-EN12000EGの場合、watchdog はデフォルトI/Oポートにいないので、 w83697hf_wdtをロードしても、次のようなログが残り使えない。

[   30.529537] w83697hf/hg WDT: WDT driver for W83697HF/HG initializing
[   30.529550] w83697hf/hg WDT: Looking for watchdog at address 0x2e
[   30.529573] w83697hf/hg WDT: watchdog not found at address 0x2e
[   30.529580] w83697hf/hg WDT: No W83697HF/HG could be found

なので watchdog の I/Oポートを検索するために、wdt_io=0 を指定してロードすると、結果がdmesgに出力される。

[  202.597226] w83697hf/hg WDT: WDT driver for W83697HF/HG initializing
[  202.597241] w83697hf/hg WDT: Looking for watchdog at address 0x4e
[  202.597260] w83697hf/hg WDT: watchdog found at address 0x4e
[  202.597401] w83697hf/hg WDT: initialized. timeout=60 sec (nowayout=0)

再起動後に発見したI/Oポートを探すように、/etc/modprobe.d/local に書き出しておく。

options w83697hf_wdt wdt_io=0x4e timeout=60

watchdog パッケージの設定

Debian lenny なので、パッケージをサクッとインストールする。

# apt-get install watchdog

/etc/default/watchdog にモジュールの指定を書く。

watchdog_module="w83697hf_wdt"

今回は死活のみを監視するので、 /etc/watchdog.conf は下手にいじらないで次の行のみ有効化する。ただ、watchdog自体の負荷が気になるならば interval を多めに取ればいい(ドライバ指定のtimeout以下になるように)。

watchdog-device	= /dev/watchdog

watchdogデーモンを立ち上げると完了する

# /etc/init.d/watchdog restart

watchdog の確認

あぁ、、、「killall -9 watchdog 」で暫くして強制再起動がかかれば確認完了。。。

まとめ

なにげにSSD-IDEを載せたので、内蔵ストレージに書き込みが頻発するのは避けたい気がするので、箪笥の中から掘出した3年ものの外部ストレージをつけてみた。

P1010636

なに!PCの同じだけ電力を食うのかこの外付けHDDは!

なにげに、VIA EPIA-EN を使いこなしているような気がする。

0 件のコメント: