|
|
Строка 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>.
| |
|
| |
|
| == Питание == | | == Питание == |