組み込み制御を行うシステムには,なんかあった時のためにWatchdog Timer(ウォッチドッグタイマー)を必ず組み込む。
通常はハードウェアで実装している(ソフトウェアで実装する場合は,そのソフトウェアの問題からは回避できないからである。)当たり前の機能ではあるが,Raspberry PiのSoCにもハードウェアのものとソフトウェアのもののWatchdog Timerが利用できるようだ。
何かあった時に自動で再起動するように出来るので有用ではあると思う。確認も兼ねて,この機能を使用するようにしてみた。
/dev/watchdogデバイスを確認する。
# ls -al /dev/watchdog*
見つからない・・・
# echo "bcm2835_wdt" >> /etc/modules
# modprobe bcm2835_wdt
# lsmod | grep bcm2835_wdt -- bcm2835_wdt 4133 0 --
# activating the hardware watchdog dtparam=watchdog=on
/dev/watchdogデバイスを確認する。
# ls -al /dev/watchdog* crw------- 1 root root 10, 130 May 19 07:09 /dev/watchdog crw------- 1 root root 253, 0 May 19 07:09 /dev/watchdog0
今度は,デバイスファイルが見つかった。
# apt-get install watchdog
どのような方法でwatchdogを叩きに行っているかはわかっていない・・・
まあ,とりあえずwatchdogにより再起動するか確認してみる。
無理やりシステムを停止するようなコマンドを実行してみる。
このような時には,shell入力に「:(){ :|:& };:」*1と入力すると,なぜかシステムを停止することができちゃう
$ :(){ :|:& };:
しばらくして,自動的にRaspberry Piが再起動すれば,Watchdog Timerが正常に動作していることになる。
これで,なんか外部のハード要因等でRaspberr Piがフリーズした時に,自動的に再起動するようになるので,利用する価値は高いと思う。
どんなことでwatchdogを叩いているかは調べとかないと行けないなぁ。
新しくコメントをつける