Watchdog: различия между версиями

Материал из Wiren Board
Строка 11: Строка 11:


==Отключение сторожевого таймера==
==Отключение сторожевого таймера==
При неправильной настройке некоторых служб, контроллер может уйти в циклическую перезагрузку: из-за неправильной конфигурации службы не будут запускаться, а сторожевой таймер будет замечать их отсутствие, и перезапускать контроллер. Чтобы остановить этот процесс, нужно:
Сторожевой таймер иногда требуется отключить:
* отключить таймер,
# Если вам нужно полностью выключить контроллер, не снимая с него питание (например, по событию от источника бесперебойного питания) - если сторожевой таймер будет работать, то контроллер даже после команды <code>halt</code> через некоторое время перезагрузится по питанию, и начнёт работать. При отключенном сторожевом таймере возобновление работы контроллера будет возможно только при ручном сбросе питания контроллера.
* исправить конфигурацию проблемной службы,
# Если вы неправильно настроили одну из важных служб контроллера, и он ушёл в циклическую перезагрузку: из-за неправильной конфигурации службы не будут запускаться, а сторожевой таймер будет замечать их отсутствие, и перезапускать контроллер.
* включить таймер обратно.
 


===Отключение сторожевого таймера аппаратным способом===
===Отключение сторожевого таймера аппаратным способом===


<!--T:2-->
<!--T:2-->
Аппаратный [[Special:MyLanguage/Watchdog|Watchdog]] иногда требуется отключить: например, если необходимо полное выключение контроллера (например по событию от источника бесперебойного питания); если аппаратный сторожевой таймер будет функционировать, то контроллер через некоторое время возобновит работу даже после команды halt. При отключенном сторожевом таймере возобновление работы контроллера будет возможно только при сбросе питания контроллера.
Для отключения требуется [[Special:MyLanguage/Разбираем корпус контроллера|разобрать корпус контроллера]] и соединить один из выводов разъема ON/OFF с GND.
Для отключения требуется [[Special:MyLanguage/Разбираем корпус контроллера|разобрать корпус контроллера]] и соединить один из выводов разъема ON/OFF с GND.



Версия 20:29, 20 февраля 2020

Другие языки:

Сторожевой таймер (англ. 'watchdog') — аппаратно реализованная схема контроля за зависанием системы.

Представляет собой отдельную микросхему-компаратор, ведущую отсчёт времени. Если таймер досчитывает до заданного времени (около 15 секунд), происходит перезагрузка по питанию (выключение одной из линий питания на 3-4 секунды). В нормальном режиме таймер периодически сбрасывается подачей переменного сигнала, подаваемого на вход таймера с одного из выводов GPIO процессора. Этот GPIO контролируется специальным сервисом Linux.

В Linux интерфейс сторожевого таймера /dev/watchdog1, конфигурация сервиса хранится в файле /etc/watchdog.conf.


Отключение сторожевого таймера

Сторожевой таймер иногда требуется отключить:

  1. Если вам нужно полностью выключить контроллер, не снимая с него питание (например, по событию от источника бесперебойного питания) - если сторожевой таймер будет работать, то контроллер даже после команды halt через некоторое время перезагрузится по питанию, и начнёт работать. При отключенном сторожевом таймере возобновление работы контроллера будет возможно только при ручном сбросе питания контроллера.
  2. Если вы неправильно настроили одну из важных служб контроллера, и он ушёл в циклическую перезагрузку: из-за неправильной конфигурации службы не будут запускаться, а сторожевой таймер будет замечать их отсутствие, и перезапускать контроллер.

Отключение сторожевого таймера аппаратным способом

Для отключения требуется разобрать корпус контроллера и соединить один из выводов разъема ON/OFF с GND.

Wiren Board 5
Wiren Board 6

На иллюстрациях показано, какие выводы необходимо соединить для этого в контроллерах Wiren Board 5 и WirenBoard 6. Нужный вывод разъема ON/OFF отмечен красной стрелкой, выводы GND (можно использовать любой) отмечены красными кружками. Фиолетовой линией показан пример соединения.