[an error occurred while processing this directive]

Использование аппаратного "watchdog" во FreeBSD
Некоторые материнские платы снабжены специальным устройством, делающим жесткую перезагрузку, 
если ОС не "дернула" вовремя это устройство. Называется оно "hardware watchdog timer". 
Таким образом, автоматическая и неминуемая перезагрузка гарантируется при "зависании" ОС.

В частности, watchdog timer имеется на многих материнских платах Intel, 
причем не только на серверных. Соответствующий драйвер FreeBSD называется ichwd. 
Итак, если у нас материнка Intel, попробуем сделать так:

   kldload ichwd

В сообщениях ядра (их можно посмотреть командой dmesg) при этом увидим что-то вроде:

   ichwd0: <Intel ICH9R watchdog timer> on isa0
   ichwd0: Intel ICH9R watchdog timer (ICH9 or equivalent)

Теперь ясно, что у нас действительно есть такой таймер. Действуем дальше.

Для автоматической загрузки драйвера добавляем в /boot/loader.conf:

   ichwd_load="YES"

Для запуска демона, "дергающего" watchdog, добавляем в /etc/rc.conf:

   watchdogd_enable="YES"

Этот демон будет периодически "дергать" таймер, сообщая ему, что система все еще жива. 
Будьте осторожны с этим демоном! Если убить его как обычно (т.е. 15-м сигналом), 
он аккуратно снимет таймер с "боевого дежурства". Но если убить его 9-м сигналом, 
то таймер перестанет получать наши сигналы, и решит, что система зависла. Произойдет перезагрузка.

Иногда watchdog надо включить в BIOS. На некоторых платах watchdog есть, но
воспользоваться им невозможно.
Иногда при инициализации драйвера появляется ругань на параллельный порт, но ее можно игнорировать.

Проверено на FreeBSD 7.1-BETA2.
 
22.12.2008 , Автор: Дмитрий Иванов
Ключи: freebsd, watchdog, hardware, crash / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Поддержка аппаратного обеспечения

[an error occurred while processing this directive]

[an error occurred while processing this directive]