2015年3月24日火曜日

raspberry piでフリーズしたら自動で再起動する

調べたらウォッチドッグタイマー(WDT)の機能搭載してるようなので有効にしてみた。

#2016.06.17 jessieのsystemd用の設定を追記


$ sudo apt-get install watchdog
$ sudo update-rc.d watchdog enable
$ echo "bcm2708_wdog" | sudo tee -a /etc/modules
$ sudo modprobe bcm2708_wdog


$ sudo /etc/watchdog.conf
以下の行のコメントを外します。
 #watchdog-device = /dev/watchdog

$ sudo vim /etc/defaults/watchdog
noneをbcm2708_wdogに変更します。
watchdog_module="bcm2708_wdog"

$ sudo /etc/init.d/watchdog start

systemd(jessie)の場合は、

$ sudo vim /lib/systemd/system/watchdog.service
---
[Install]
WantedBy=multi-user.target
---
sudo systemctl enable watchdog.service

動作確認は
$ :(){ :|:& };:
これで行ってリブートすればOK。
再起動後、ちゃんとWDTがあるか確認。

cat /proc/modules | grep 2708

>bcm2708_wdog 3894 1 - Live 0xbf07e000

$  ps -lax | grep watchdog
>5     0  3312     1  -2   -   1816  1724 hrtime SLs  ?          0:00 /usr/sbin/watchdog

こんなメッセージが表示していればちゃんと有効になっている。

systemd(jessie)の場合は、

$ sudo systemctl status watchdog.service

サービスが起動しているかチェックする。

参考URL
http://www.bayerschmidt.com/raspberry-pi/89-auto-reboot-a-hung-raspberry-pi-using-the-on-board-watchdog-timer.html
http://hanposaki.blog.so-net.ne.jp/2013-03-20

Jessie版
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=147935


コメントを投稿

Androider