Использование watchdog в OrangePi

Некоторое время назад я стал использовать OrangePi в качестве роутера и системы а-ля умный дом для управления котлом на даче. Система работает достаточно стабильно. Но иногда из-за скачков напряжения или каких то других причин OrangePi переставал выходить на связь.
Решением стало использование watchdog

На OrangePi у меня установлена 16, для включения watchdog был найден простой путь:
В файле /etc/systemd/system.conf раскомментируем или добавим строки:
nano /etc/systemd/system.conf

...
RuntimeWatchdogSec=16
ShutdownWatchdogSec=10min

Максимальный таймаут, установленный в системе, находится в параметре g_timeout. Вы можете узнать его командой

dmesg | grep sunxi_wdt_probe
 
[    1.002511] sunxi_wdt_probe: devm_ioremap return wdt_reg 0xf1c20ca0, res->start 0x01c20ca0, res->end 0x01c20cbf
[    1.002660] sunxi_wdt_probe: initialized (g_timeout=16s, g_nowayout=0)

после reboot смотрим, слушается ли системой watchdog:

lsof | grep /dev/watchdog
systemd      1            root    4w      CHR     10,130      0t0       1200 /dev/watchdog

Все в порядке, systemd кормит собаку. Но нужно это как то проверить. На работающих и девайсах, находящихся в работе онлайн лучше этого не делать, нужно находиться возле девайса (чтобы его перезагрузить при необходимости руками)!
Запускаем fork бомбу:

:(){ :|: & };:

Через секунду система повиснет и должна будет перезагрузиться. Но это не точно 😀

Второй вариант нагрузить систему до предела: echo c > /proc/sysrq-trigger

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *