Если вы включили сторожевой драйвер в своем ядре, сторожевой драйвер устанавливает таймер ядра, отвечающий за сброс сторожевого таймера. Соответствующий код здесь . Так это работает так:
Если ни одно приложение не открывает файл / dev / watchdog, то ядро позаботится о сбросе сторожевого таймера. Поскольку это таймер, он не будет отображаться как отдельный поток ядра, а обрабатывается программным потоком IRQ. Теперь, если приложение открывает этот файл, оно становится ответственным за сторожевой таймер и может сбросить его, записав в файл, что документально подтверждено документацией, приведенной в сообщении Ричарда.
Настроен ли сторожевой драйвер в вашем ядре?
Если нет, вы должны настроить его и посмотреть, все-таки происходит ли сброс. Если это все еще происходит, вероятно, ваш сброс происходит откуда-то еще.
Если ваше ядро слишком старое, чтобы иметь надлежащий сторожевой драйвер (отсутствует в 2.6.25), вы должны сделать бэкпорт из 2.6.28. Или вы можете попытаться отключить сторожевой таймер в своем загрузчике и посмотреть, все ли происходит сброс.