Wiren Board 7.4: различия между версиями

Строка 479: Строка 479:
== Сторожевой таймер ==
== Сторожевой таймер ==
{{Anchor|watchdog}}
{{Anchor|watchdog}}
=== Как устроен ===
{{Wbincludes: Watchdog 7.4 How Does It Work}}
В контроллере есть специальный сторожевой таймер watchdog, реализованный в embedded контроллере — он перезагружает контроллер при зависании ПО.


Если таймер досчитывает до 60 секунд embedded контроллер выключает на 1 секунду питание, что приводит к перезагрузке контроллера. Отсчёт таймера начинается после загрузки ОС Linux, это где-то 120 секунд после включения контроллера.
Сторожевой таймер можно отключить — [[Watchdog|инструкция]].
 
В нормальном режиме таймер циклично сбрасывается через внутренний интерфейс, по которому embedded контроллер общается с основным процессором. Сброс сторожевого таймера контролируется специальным сервисом Linux '''watchdog'''.
 
=== Отключение ===
[[Image: wb7.4-watchdog.jpg|thumb|right|Кнопка и перемычка отключения сторожевого таймера]]
 
Отключайте слежение за сервисами только в крайнем случае, например, если какой-то из сервисов не работает должным образом. После устранения причин, сторожевой таймер надо включить.
 
На контроллере есть физическая кнопка, которая эмулирует сигнал на сброс сторожевого таймера, находится она на плате и подписана как '''B1'''. Используйте её, если один из отслеживаемых сервисов зависает, или если вам нужно внести изменение в конфигурацию. Также есть перемычка '''Watchdog OFF''', замкнув её каплей припоя, можно отключить сторожевой таймер навсегда.
 
Watchdog следит за сервисами, указанными в файле <code>/etc/watchdog.conf</code> в разделе <code># Test if vital daemons are running</code>.
 
Вы можете добавить в него свой сервис или отредактировать заводской список:
# Разберите корпус контроллера.
# Нажмите кнопку '''B1''' и включите контроллер. Далее можете удерживать кнопку нажатой или нажимать её примерно раз в 20-30 секунд — так вы будете сбрасывать таймер.
# Остановите сервис командой <code>systemctl stop watchdog</code>.
# Измените список отслеживаемых сервисов в файле <code>/etc/watchdog.conf</code>.
# Запустите сервис командой <code>systemctl start watchdog</code>.


== Питание ==
== Питание ==