How to diagnose: различия между версиями
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Диагностика ошибок в работе контроллера Wiren Board}} | {{DISPLAYTITLE: Диагностика ошибок в работе контроллера Wiren Board}} | ||
[[Image: | [[Image: journalctl — logs.png |400px|thumb|right| Просмотр системного журнала с помощью journalctl]] | ||
{{ | [[Image: WebUI 2.0 — logs.png |400px|thumb|right| Просмотр системного журнала в веб-интерфейсе контроллера Wiren Board {{SupportedSinceRelease|release=wb-2110|nobanner=true}}]] | ||
== Введение == | == Введение == | ||
Если в работе контроллера Wiren Board возникают ошибки — найти причину поможет анализ системного журнала. Так же полезно проверить, что вы используете [[Wiren Board Firmware Update| свежую версию ПО]]. | Если в работе контроллера Wiren Board возникают ошибки — найти причину поможет анализ системного журнала. Так же полезно проверить, что вы используете [[Wiren Board Firmware Update| свежую версию ПО]]. | ||
Строка 8: | Строка 8: | ||
Читать журналы можно двумя способами: | Читать журналы можно двумя способами: | ||
* | * из консоли с помощью [[journalctl]]. | ||
{{SupportedSinceRelease | {{SupportedSinceRelease | ||
| release = wb-2110 | | release = wb-2110 | ||
|content= | |content= | ||
* | * из веб-интерфейса с помощью [[Wiren Board Web Interface#logs | инструмента Logs]]. | ||
}} | }} | ||
Если вы не смогли самостоятельно определить причину ошибок в работе контроллера, создайте тему на [https://support.wirenboard.com форуме техподдержки], приложите записи системного журнала или [[# | Если вы не смогли самостоятельно определить причину ошибок в работе контроллера, создайте тему на [https://support.wirenboard.com форуме техподдержки], приложите записи системного журнала или [[Wiren_Board_Web_Interface#Settings -> System (Настройки -> Системные) |архив с диагностической информацией]] и мы постараемся помочь. | ||
== | == Основы == | ||
=== Как устроен контроллер === | |||
[[File:MQTT.png | thumb | 600px | Через [[MQTT]] работают драйверы внутренних функций, внешних устройств, веб-интерфейс, система правил]] | [[File:MQTT.png | thumb | 600px | Через [[MQTT]] работают драйверы внутренних функций, внешних устройств, веб-интерфейс, система правил]] | ||
Сильно поможет понимание [[Wiren_Board_Software|архитектуры ПО контроллера]], где в центре MQTT-брокер, в который пишут информацию различные сервисы wb: | Сильно поможет понимание [[Wiren_Board_Software|архитектуры ПО контроллера]], где в центре MQTT-брокер, в который пишут информацию различные сервисы wb: | ||
Строка 38: | Строка 38: | ||
* wb-rules — [[wb-rules | движок правил]] | * wb-rules — [[wb-rules | движок правил]] | ||
=== Полезные команды === | |||
Команды ниже выполняются в консоли контроллера, подключиться к которой можно через [[SSH]] или через [[Debug UART | Debug-порт]]. | |||
== | |||
Посмотреть, когда был запущен контроллер: | |||
Посмотреть, когда был запущен контроллер | |||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# who -b | # who -b | ||
Строка 103: | Строка 47: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Узнать, когда контроллер перезагружался: | |||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# last -x reboot | # last -x reboot | ||
Строка 130: | Строка 74: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | Посмотреть, какое ядро загружено: | ||
<syntaxhighlight lang="console"> | |||
| | # uname -a | ||
Linux wirenboard-AYXIHFQ6 5.10.35-wb6 #1 Thu Sep 30 00:33:57 UTC 2021 armv7l GNU/Linux | |||
</syntaxhighlight> | |||
== Примеры типовых неисправностей == | |||
=== Контроллер перезагружается === | |||
Контроллер может перезагружаться по ряду причин: | |||
* Нестабильное питание — просадки напряжения питания ниже допустимого значения могут вызвать перезагрузку. | |||
* Нехватка места на eMMC. | |||
* Зависание программ и сервисов — сработает watchdog, которые перезагрузит контроллер. | |||
* Перезагрузка вызвана пользователем, например, командой <code>shutdown -r now</code>. | |||
Сперва стоит проверить качество питания: уровень напряжения, отсутствие «просадок». Попробуйте подключить контроллер к другому блоку питания. | |||
Если питание стабильно, то причину перезагрузки ищите в сообщениях watchdog и ядра ОС Linux (dmesg). Если контроллер перезагружается в цикле и вы не можете попасть в консоль, попробуйте [[watchdog | отключить watchdog]]. | |||
=== Проблемы с serial-устройствами === | |||
Если устройства, подключённые к портам RS-485 работают нестабильно — проверьте физическое подключение. Несоблюдение рекомендаций по организации шины RS-485 и плохой контакт в клеммах — частые причины проблем. | |||
Узнать, с каким именно устройством проблемы, можно: | |||
* в веб-интерфейсе контроллера, на вкладке Devices — каналы такого устройства будут окрашены красным; | |||
* в сообщениях драйвера wb-mqtt-serial — ищите ошибки обмена error и warning. Если сообщения об ошибках обмена возникают периодически — повод проверить физическое подключение устройств. | |||
Если ошибок обмена в сообщениях драйвера нет, но устройство не работает — включите вывод отладочных сообщений. Как это сделать, смотрите в описании драйвера [[wb-mqtt-serial]]. | |||
После того как вы определились с проблемным устройством — подключите его на отдельный порт RS-485, настройте и добейтесь стабильной работы: проверьте параметры подключения, снизьте скорость обмена, убедитесь, что в устройстве выставлен верный стоп-бит. | |||
== | === Не открывается страница конфигурации устройств === | ||
Перед началом диагностики, попробуйте просто перезагрузить страницу с очисткой кэша браузера — часто помогает. Обычно это можно сделать нажатием клавиш <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>R</kbd> или <kbd>Ctrl</kbd>+<kbd>F5</kbd> — комбинация зависит от вашего браузера. | |||
Если это не помогло — ищите в логах сообщения от wb-mqtt-serial и wb-mqtt-confed. Особенно интересны сообщения типов ''error'' и ''warning''. | |||
Версия 21:42, 8 ноября 2021
Введение
Если в работе контроллера Wiren Board возникают ошибки — найти причину поможет анализ системного журнала. Так же полезно проверить, что вы используете свежую версию ПО.
В контроллерах Wiren Board используется системный сервис журналов journald, который обрабатывает события на запись в лог и сохраняет их в бинарные файлы. По умолчанию настроена очистка старых сообщений журнала, которая не позволит ему занять всё свободное пространство.
Читать журналы можно двумя способами:
- из консоли с помощью journalctl.
- из веб-интерфейса с помощью инструмента Logs.
Если вы не смогли самостоятельно определить причину ошибок в работе контроллера, создайте тему на форуме техподдержки, приложите записи системного журнала или архив с диагностической информацией и мы постараемся помочь.
Основы
Как устроен контроллер
Сильно поможет понимание архитектуры ПО контроллера, где в центре MQTT-брокер, в который пишут информацию различные сервисы wb:
- wb-mqtt-adc — драйвер аналоговых входов
- wb-mqtt-dac — драйвер аналоговых выходов
- wb-mqtt-confed — конфигуратор в WebUI
- wb-mqtt-db — хранение архива данных
- wb-mqtt-gpio — драйвер для работы с GPIO
- wb-mqtt-knx — мост KNX
- wb-mqtt-mbgate — шлюз MQTT-ModbusRTU/TCP
- wb-mqtt-opcua — шлюз MQTT-OPC UA
- wb-mqtt-serial — драйвер для serial-устройств
- wb-mqtt-w1 — драйвер для 1-Wire
Кроме этого, есть сервисы, которые реализуют дополнительные функции:
- watchdog — сторожевой таймер
- wb-hwconf-manager — драйвер модулей расширения
- wb-rules — движок правил
Полезные команды
Команды ниже выполняются в консоли контроллера, подключиться к которой можно через SSH или через Debug-порт.
Посмотреть, когда был запущен контроллер:
# who -b
system boot Nov 4 13:43
Узнать, когда контроллер перезагружался:
# last -x reboot
reboot system boot 5.10.35-wb6 Thu Nov 4 13:43 still running
reboot system boot 5.10.35-wb6 Thu Nov 4 10:39 still running
Посмотреть текущую версию ПО:
# wb-release
Wirenboard release wb-2108 (as stable), target wb6/stretch
Узнать, сколько свободного места на eMMC:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 976M 581M 329M 64% /
devtmpfs 240M 0 240M 0% /dev
tmpfs 248M 0 248M 0% /dev/shm
tmpfs 248M 584K 248M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 248M 0 248M 0% /sys/fs/cgroup
/dev/mmcblk0p6 4.7G 1.1G 3.4G 24% /mnt/data
tmpfs 50M 0 50M 0% /run/user/0
Посмотреть, какое ядро загружено:
# uname -a
Linux wirenboard-AYXIHFQ6 5.10.35-wb6 #1 Thu Sep 30 00:33:57 UTC 2021 armv7l GNU/Linux
Примеры типовых неисправностей
Контроллер перезагружается
Контроллер может перезагружаться по ряду причин:
- Нестабильное питание — просадки напряжения питания ниже допустимого значения могут вызвать перезагрузку.
- Нехватка места на eMMC.
- Зависание программ и сервисов — сработает watchdog, которые перезагрузит контроллер.
- Перезагрузка вызвана пользователем, например, командой
shutdown -r now
.
Сперва стоит проверить качество питания: уровень напряжения, отсутствие «просадок». Попробуйте подключить контроллер к другому блоку питания.
Если питание стабильно, то причину перезагрузки ищите в сообщениях watchdog и ядра ОС Linux (dmesg). Если контроллер перезагружается в цикле и вы не можете попасть в консоль, попробуйте отключить watchdog.
Проблемы с serial-устройствами
Если устройства, подключённые к портам RS-485 работают нестабильно — проверьте физическое подключение. Несоблюдение рекомендаций по организации шины RS-485 и плохой контакт в клеммах — частые причины проблем.
Узнать, с каким именно устройством проблемы, можно:
- в веб-интерфейсе контроллера, на вкладке Devices — каналы такого устройства будут окрашены красным;
- в сообщениях драйвера wb-mqtt-serial — ищите ошибки обмена error и warning. Если сообщения об ошибках обмена возникают периодически — повод проверить физическое подключение устройств.
Если ошибок обмена в сообщениях драйвера нет, но устройство не работает — включите вывод отладочных сообщений. Как это сделать, смотрите в описании драйвера wb-mqtt-serial.
После того как вы определились с проблемным устройством — подключите его на отдельный порт RS-485, настройте и добейтесь стабильной работы: проверьте параметры подключения, снизьте скорость обмена, убедитесь, что в устройстве выставлен верный стоп-бит.
Не открывается страница конфигурации устройств
Перед началом диагностики, попробуйте просто перезагрузить страницу с очисткой кэша браузера — часто помогает. Обычно это можно сделать нажатием клавиш Ctrl+Shift+R или Ctrl+F5 — комбинация зависит от вашего браузера.
Если это не помогло — ищите в логах сообщения от wb-mqtt-serial и wb-mqtt-confed. Особенно интересны сообщения типов error и warning.