LINUX.ORG.RU
ФорумAdmin

мучения с аппаратным Watchdog

 ,


0

1

Доброго времени, коллеги!

Появилась необходимость настроить аппаратный Watchdog (wd) на компьютере.

Нужен именно аппаратный wd, что бы, если не стартанул Linux, то через некоторое время, указанное в wd timeout произошел hard reset.

Это как раз получается…

Устанавливаю в BIOS watchdog timeout=60s и… Все отлично резетится через 1 минуту! Казалось бы, что еще нужно? А нужно, если система нормально стартанула, то не дать аппаратному wd ее резетнуть.

Вроде тут все не так сложно:

#!/usr/bin/env bash
echo 0 > /proc/sys/kernel/watchdog
while true; do
  echo 1 > /dev/watchdog
  sleep 10
done

Только вот не работает! Мне ни как не удается сбросить таймер аппаратного wd и компьютер уходит в reset через минуту или любой другой установленный wd timeout

Подскажите, пожалуйста, как победить эту проблему?

PS ставил пакет watchdog и пытался им не дать hardware watchdog резетить машину, но и он с этим не справился.


драйвера твоего аппаратного ватчдога под пингвина нетути. не судьба :(
вариант Б: не работает правильно, настройки кривые.
ковырять ядро насчет поддержки твоего ватчдога.

pfg ★★★★★
()
Ответ на: комментарий от pfg

iTCO_wdt создает /dev/wachdog и /dev/watchdog0

Однако этот модуль не позволяет сбрасывать hardware watchdog timeout

Вообще, странно!

Это железка от Kontron. Не могут же они косячно-неуправляемый hardware watchdog делать

HighMan
() автор топика
Последнее исправление: HighMan (всего исправлений: 1)

А так?

( while true; do
  echo 1
  sleep 10
done ) > /dev/watchdog
Но лучше настроить watchdog. Он сам умеет проверять кучу действий, а что сам не может, то запуском скриптов можно сделать.

Там все достаточно просто.

vel ★★★★★
()
Ответ на: комментарий от vel

watchdog так же не справился. Его потуг хватило ровно на то же, что e прямой записи в /dev/watchdog, /dev/watchdog0

Т.е. сбросить таймер hardware watchdog не выходит ни каким образом

HighMan
() автор топика
Ответ на: комментарий от HighMan

Отключи для начала таймаут в биосе и убедись, что с watchdog который в линуксе все работает, иначе нет смысла с этим связываться.

Я бы попробовал разные значения vendorsupport загрузив модуль iTCO_vendor_support.

vel ★★★★★
()

Если у тебя дистр с systemd, можешь возложить на него сброс таймера: https://www.freedesktop.org/software/systemd/man/latest/systemd-system.conf.html#Hardware%20Watchdog

Хотя, раз у тебя watchdog его не сбрасывает, то и systemd скорее всего тоже не сможет.

Либо попробуй написать программку на C, которая будет его сбрасывать через ioctl, как здесь написано https://www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt:

	while (1) {
		ioctl(fd, WDIOC_KEEPALIVE, 0);
		sleep(10);
	}
anatole
()
Ответ на: комментарий от HighMan

Это железка от Kontron. Не могут же они косячно-неуправляемый hardware watchdog делать

Дак вы хоть название желзяки дайте и место, где написано, что там iTCO_wdt, а не, допустим, ipmi_watchdog.

mky ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.