Linux поддерживает несколько типов сторожевого оборудования.
Есть ли способ обнаружить доступные аппаратные сторожевые таймеры и загрузить соответствующий модуль ядра (и «softdog» в качестве резервного решения)?
Думаю, просто попробовать все доступные модули ядра - не оптимальное решение.
РЕДАКТИРОВАТЬ:
Я удивлен, что современные системы не имеют встроенного в процессор какого-то сторожевого таймера (по крайней мере, для AMD Athlon II модуль не загружен). Редко ли используются аппаратные сторожевые псы в потребительских / полупотребительских системах?
Обычно, если они доступны, ядро делает загрузить все модули, соответствующие аппаратному обеспечению, обнаруженному в системе во время загрузки. Если по какой-то причине эти устройства занесены в черный список или иным образом игнорируются во время загрузки, вы можете использовать lspci
/lsusb
утилиты, чтобы узнать, какое оборудование подключено к системе, и отреагировать соответствующим образом.
Что касается загрузки «softdog», это вопрос правильного написания сценариев для инструментов, указанных выше.