Wiren Board 6: Errata

From Wiren Board
This is the approved revision of this page, as well as being the most recent.
Other languages:
6.3 6.4 6.4.1 6.5 6.5.1 6.6.0 6.7.2 6.7.2B 6.8.1A 6.8.1B 6.8.2A/3 6.8.2B 6.9.1
ERRWB630001
ERRWB630002
ERRWB650003
ERRWB600004
ERRWB640005
ERRWB600006
ERRWB600007
ERRWB600008
ERRWB600009
ERRWB600010
ERRWB600011
ERRWB600012
ERRWB600013
ERRWB600014
ERRWB600015
ERRWB600016
ERRWB600017
ERRWB600018
ERRWB600019
ERRWB600020
ERRWB600021
ERRWB600022
ERRWB600023
ERRWB600024
Легенда Не подвержено проблеме
Подвержено проблеме, исправляется обновлением ПО
Подвержено проблеме

ERRWB630001: Зависание контроллера в модификации с аппаратной кнопкой и большим числом модулей ввода-вывода

Подверженные устройства.

Wiren Board 6 rev. 6.3

Описание

При подключенных трех и более боковых модулях ввода-вывода, контроллер зависает при включении кнопкой на корпусе. Аппаратный вотчдог при этом также не помогает.

Причины и подробное описание

Микросхемы MCP23008 и MCP23017 в боковых модулях по умолчанию включают пин INT в режим пуш-пулл с высоким состоянием.

Инициализация пина в режим "открытый коллектор" происходит позже, при загрузке модуля wb-hwconf-manager.

Поэтому три и более модуля выдают достаточно тока для паразитного питания процессора через линию INT на боковом разъеме, когда процессор выключен. Паразитное питание через линии GPIO может приводить к зависанию и "защёлкиванию" процессора i.MX 6ULL из-за аппаратных особенностей серии i.MX 6.

Пути обхода

Не использовать кнопку питания с >2 модулями ввода-вывода

Запланированное исправление

Исправлено в rev. 6.4

ERRWB630002: Невозможность обновления с USB-накопителя при подключенном клеммнике A4

Подверженные устройства

Wiren Board 6 rev. 6.3, 6.4, 6.4.1

Описание

Если на клеммник A4 контроллера во время загрузки подано напряжение, соответствующее логической единице (т.е. напряжение от 3В и выше), то контроллер не обнаруживает USB-накопитель с обновлением прошивки.

Причины и подробное описание

Загрузчик ошибочно конфигурирует первый USB-порт контроллера в режиме OTG. Режим работы порта USB при этом управляется той же ножкой процессора, к которой подключен вход A4.

Пути обхода

При обновлении прошивки через USB-накопитель следует отключить провод от клеммы A4, либо снять клеммный блок целиком.

Запланированное исправление

Исправлено в загрузчике начиная с версии 1.0.0. Обновление загрузчика производится по запросу в офисе Wiren Board, обновление не считается гарантийным случаем.

ERRWB650003: Невозможность обновления с USB-накопителя в ревизии 6.5

Подверженные устройства

Wiren Board 6 rev. 6.5

Описание

Контроллер не обнаруживает USB-накопитель с обновлением прошивки.

Причины и подробное описание

Загрузчик ошибочно конфигурирует первый USB-порт контроллера в режиме OTG. Режим работы порта USB при этом управляется той же ножкой процессора, к которой подключен вход A4.

Пути обхода

При обновлении прошивки через USB-накопитель следует подать на клеммник A4 напряжение от 5 до 30 В. Для этого, например, можно соединить проводником клеммы A4 и W1 или клеммы A4 и W2.

Запланированное исправление

Исправлено в загрузчике начиная с версии 1.0.0, в устройствах отгруженных после 2019-03-10. Обновление загрузчика производится по запросу в офисе Wiren Board или удалённо.

ERRWB600004: Невозможность обновления с некоторых USB-накопителей

Подверженные устройства

Wiren Board 6 всех аппаратных ревизий

Описание

Контроллер обнаруживает USB-накопитель с обновлением прошивки, но после нажатия на кнопку для подтверждения обновления, обновление не происходит. В отладочную консоль выводятся ошибки:

EHCI timed out on TD - token=0x2e008d80
EHCI timed out on TD - token=0xae008d80
EHCI timed out on TD - token=0xae008d80
Error reading cluster
** Unable to read file wb6_update_FACTORYRESET.fit **
Read failed: -1

Причины и подробное описание

Загрузчик не обрабатывает специальным образом нестабильно работающие контроллеры некоторых флеш-накопителей.

Пути обхода

Использовать USB-накопитель другой модели.

Запланированное исправление

Исправлено в загрузчике начиная с версии 1.0.1, в устройствах отгруженных начиная с 2019-04. Обновление загрузчика производится по запросу в офисе Wiren Board или удалённо.

ERRWB640005: Не работает порт CAN

Подверженные устройства

Wiren Board 6 rev. 6.4, 6.4.1

Описание

Не работает порт CAN на передачу данных.

Причины и подробное описание

Ошибка в схемотехнике. Неправильно подключен транзистор для согласования уровней 5 В и 3.3 В.

Пути обхода

Отсутствует.

Запланированное исправление

Исправлено в версиях начиная с 6.5

ERRWB600006: Перезагрузка модулей Wi-Fi и GSM при слабом сигнале GSM сети

Подверженные устройства

Wiren Board 6 все до rev. 6.6 включительно.

Описание

Перезагрузка модулей Wi-Fi и GSM при работе в 2G-сетях при большом количестве подключенных модулей расширения.

Причины и подробное описание

При слабом сигнале сети в 2G режиме GSM модем начинает работать на полную мощность, вызывая кратковременные провалы напряжения питания по линии 4 В и 3.3 В. Из-за чего перезагружается USB хаб, питающийся от этих линий. При этом отключается всё оборудование, подключенное к USB хабу. В том числе Wi-Fi модуль, GSM модем и всё, что было подключено к порту USB2. После восстановления питания USB хаб включается и работает в обычном режиме. Всё оборудование также подключается к хабу и начинает работать, однако, Wi-Fi модуль при этом может зависнуть.

Перезагрузиться также может приёмопередатчик второго Ethernet-порта, что будет проявляться как пропадание и последующее восстановление линка на интерфейсе eth1.

Пути обхода

Гарантийный ремонт при проявлении проблемы - напаивание дополнительных конденсаторов по линиям 4 В и 3.3 В.

Программные методы не могут предотвратить перезагрузку модема, Wi-Fi или Ethernet-порта, однако могут предотвратить "зависание" Wi-Fi при такой перезагрузке.

Установка ядра Linux (пакет linux-image-wb6, версия 4.9+wb20200730165540 или выше), в котором решена проблема зависания wi-fi модуля при перезагрузке USB хаба.

Установка wb-configs версии >= 1.82.3. В этой версии добавлен скрипт, перезапускающий hostapd после старта интерфейса Wlan0 (требуется для нормальной работы wi-fi в режиме точки доступа).

Запланированное исправление

Схема питания изменена с версии 6.7.

ERRWB600007: Включение кнопкой с задержкой 10 секунд

Подверженные устройства

Wiren Board 6 в комплектации с кнопкой и все rev. 6.7.

Описание

Если выключить кнопкой/переключателем на передней панели и подождать пару минут, то при повторном включении кнопкой контроллер начнет грузиться через примерно 10 сек.

Причины и подробное описание

Выключение кнопкой приводит аппаратный вотчдог в состояние перед началом цикла вкл/выкл. При включении кнопкой цикл вотчдога начинается с выключения на 10 секунд.

Пути обхода

Ничего не делать, просто ждать.

Запланированное исправление

Исправлено в rev. 6.8.

ERRWB600008: Открытые транзисторы входов A1-A4 при запуске контроллера

Подверженные устройства

Все Wiren Board 6 до партии rev. 6.7.

Описание

При включении контроллера некоторое время (несколько секунд) могут быть открыты или находиться в "полуоткрытом" состоянии каналы A1-A4. При загрузке контроллера каналы закрываются.

Предположительно может вызывать сгорание контроллера, если на канал подключен мощный источник питания, например, аккумулятор.

Причины и подробное описание

Не подтянуты к земле затворы транзисторов. При включении контроллера GPIO процессора некоторое время находятся в состоянии High Z и транзисторы могут открыться от наводок/токов утечки и т. п.

Пути обхода

Не подключать на входы А1-А4 нагрузку, если кратковременное открытие канала может привести к токам КЗ или недопустимому поведению.

Запланированное исправление

Исправлена в партии начиная с v6.7.2B

ERRWB600009: Трансиверы RS-485 держат шину в передающем состоянии

Подверженные устройства

Все Wiren Board 6 всех ревизий (с прошивкой до wb-2108 включительно).

Описание

В состоянии idle трансиверы RS-485 (на самом контроллере и на модулях WBE2-I-RS485-ISO) держат шину в передающем состоянии. Если открыть порт (например, в minicom), шина оказывается в принимающем состоянии.

Такое поведение не затрагивает взаимодействие контроллера и Modbus устройств Wiren Board. Проблема возникает, если на шине RS-485 есть другое Master-устройство, которое пытается выполнить опрос, когда на Wiren Board порт в Linux не открыт никаким процессом. Это может случиться, например, в момент перезагрузки Wiren Board.

Причины и подробное описание

Предположительно из-за реализации UART-блока в процессорах i.MX 6 ножка RTS у трансивера по умолчанию находится в высоком состоянии. Решение проблемы - отдать управление ножкой RTS ядру Linux.

Пути обхода

Установка ядра Linux версии 5.10. Пакет linux-image-wb6 (версии 5.10.0-wb2 и выше).

Запланированное исправление

Исправлено в прошивке wb-2110.

ERRWB600010: Watchdog срабатывает не всегда

Подверженные устройства

Wiren Board партии v6.8.1A

Описание

Аппаратный таймер watchdog срабатывает не всегда. При остановке процессора по команде Linux halt или из-за зависания программы, таймер может не сработать, перезапуск по питанию не состоится, и контроллер оказывается неработоспособным на неопределенное время.

Причины и подробное описание

Из-за ошибки в схемотехнике таймер watchdog в платах Wirenboard партии v6.8.1A не срабатывает, если сигнал watchdog_in с процессора остановился в состоянии логической единицы. В нормальном состоянии этот сигнал имеет вид серии импульсов прямоугольной формы со скважностью 1/2, поэтому вероятность отказа watchdog составляет 50%.

Пути обхода

Это аппаратная ошибка. Планируется программный патч, который должен уменьшить вероятность несрабатывания watchdog на уже произведенных устройствах.

Запланированное исправление

Ошибка будет исправлена в контроллерах партии v6.8.1B

ERRWB600011: Watchdog может не работать во влажной среде

Подверженные устройства

Wiren Board партии v6.8.1A.

Описание

Предположительно, Watchdog может не работать при загрязнении платы во влажной среде.

Причины и подробное описание

Схема аппаратного таймера watchdog излишне чувствительна к токам утечки, т.е. к загрязнению платы.

Пути обхода

Отсутствуют.

Запланированное исправление

Чувствительность схемы к загрязнениям значительно уменьшена в партиях с v6.8.1B.

ERRWB600012: Перестают работать боковые модули

Подверженные устройства

Wiren Board 6 (6.3-6.7) с версией ядра старше 4.9.22-wb1 (март 2021г.)

Описание

  • Не работают входы и выходы боковых модулей WBIO подключенных к котроллеру.
  • Сам контроллер тормозит, процессор сильно загружен
  • После перезагрузки контроллер стартует несколько минут
  • После перезагрузки контроллера в нём не работает второй порт RS-485


Причины и подробное описание

Это поведение вызывает комбинация трёх проблем.

Когда ножка прерывания INT, идущая от боковых модулей WBIO к контроллеру, взведена, то в ядре циклично срабатывает обработчик прерывания, который даёт команду боковым модулям сбросить состояние ножки прерывания. Однако в момент старта ядра Linux (при загрузке) боковые модули ввода-вывода инициализируются по порядку. Если ножку прерывания держит второй по счёту модуль, то после инициализации первого модуля ядро Linux не сможет сбросить состояние прервания, т.к. второй модуль ещё не инициализирован. Непрерываное выполнение обработчика прерывания создаёт нагрузку на процессор, препятствует инициализации второго модуля ввода-вывода, препятствует инициализации периферии, обрабатываемой через dt-overlay (второго порта RS-485).

Ножка прерывания может быть взведена и не сброшена, если, например, удалить из конфигурации подключенный к контроллеру модуль расширения. Если на его входы придут импульсы, это вызовет описанную проблему. Так же импульсы на входы вызовут проблему, если они поступят во время перезагрузки контроллера.

Ещё одна проблема - зависание шины i2c из-за наводок. Если контроллер и модули находятся в шумном окружении, например рядом с ними расположены контакторы, то возникающее электромагнитное поле может вызвать помехи на линии связи контроллера с модулями. В очень редких ситуациях помеха может так испортить данные на линии, что и контроллер, и боковые модули перейдут в бесконечное состояние ожидания и не смогут обмениваться данными. Если в этом время на вход бокового модуля поступит сигнал, то он вызовет срабатывание линии прерывания и описанные выше проблемы.

Наконец, проблему усугубляет аппаратная особенность контроллеров WB6 ревизий 6.3-6.7 включительно: питание модулей ввода-вывода не отключается по кнопке питания и по срабатыванию аппаратного сторожевого таймера. Таким образом, зависшую систему нельзя вывести из этого состояния стандартными способами: перезагрузкой или выключением питания с кнопки.

Пути обхода

Обновление пакета ядра или прошивки.

Дифференциальная диагностика

Мы рекомендуем просто обновить прошивку целиком или пакет ядра при подозрении на проблему. Если это невозможно, обратитесь в техподдержку за инструкциями по диагностике.

Запланированное исправление

Проблема исправлена в пакете ядре Linux в марте 2021 (версии 4.9.22-wb1 и выше) для всех ревизий Wiren Board 6.

В новом ядре прерывания не вызываются несколько раз, даже если линия прерывания взведена. Кроме этого, реализована процедура сброса состояния шины связи, в том случае, если помехи перевели её в состояние ожидания.

В контроллере ревизии 6.8.1 и старше питание боковых модулей ввода-вывода отключается кнопкой и сторожевым таймером.

ERRWB600013: Кратковременная индикация V_OUT_OK = off в момент отключения выходов Vout

Подверженные устройства

Все Wiren Board 6.

Описание

При выключении выходов Vout может появиться кратковременная индикация V_OUT_OK = off в веб-интерфейсе, также событие сохраняется в логах контроллера.

Причины и подробное описание

Избыточный функционал используемой в цепи Vout микросхемы smart switch, изначально задуманный для диагностики обрыва нагрузки в автомобильном применении. Кратковременная диагностика состояния ошибки выдается, когда подана команда отключения, но напряжение на нагрузке еще присутствует из-за того, что не успели разрядиться конденсаторы. В реальности ничего плохого не происходит.

Пути обхода

Отсутствуют.

ERRWB600014: Нестабильная работа внутренних устройств на шине USB

Подверженные устройства

Wiren Board партии v6.8.1A.

Описание

На некоторых устройствах возможна нестабильная работа 3G/4G модема, модуля Wi-Fi и внешних usb-устройств на 2 порту.

Причины и подробное описание

На партии v6.8.1A (без суффикса /U) оказались напаяны микросхемы USB-хаба с выводами, окисленными вследствие неправильного хранения. Возможен непропай некоторых контактов, который может привести к тому, что модуль Wi-Fi, 3G/4G модем, а также usb-устройства, подключенные ко второму разъему USB, периодически могут «отваливаться» (с ошибками чтения в dmesg и т.д.). Проблема может усиливаться при наличии вибрации.

Пути обхода

Отсутствуют.

Запланированное исправление

Нет. Является гарантийным случаем.

ERRWB600015: Не работает приемопередатчик CAN

Подверженные устройства

Wiren Board 6, партии v6.8.2A/3 и v6.8.2B.

Описание

Не работает приемопередатчик CAN

Причины и подробное описание

В вышеперечисленных партиях нет подтяжки к GND пина STB трансивера CAN, из-за чего микросхема постоянно находится в режиме standby - энергопотребление минимизировано, передача отключена, а правильный прием не гарантируется.

Пути обхода

  1. Замена по гарантии;
  2. Напаять резистор ~100 Ом типоразмера 0603/0805 между pin8 U19 и pin5 U18 (с нижней стороны платы)

Запланированное исправление

Исправлено в v6.8.2B/R и далее

ERRWB600016: Некорректная работа watchdog

Подверженные устройства

Wiren Board 6, партии v6.8.2A, v6.8.2B.

Описание

При питании контроллера от 12 вольт не работает аппаратный watchdog, а при питании от 24 Вольт период перезапуска слишком короткий, и при срабатывании watchdogа контроллер не успевает загрузиться и постоянно идет перезагрузка.

Причины и подробное описание

Бракованный (поддельный) компаратор U10 watchdog'а. Работает не в полном диапазоне напряжений, из-за чего при питании контроллера от 12 Вольт watchdog не срабатывает совсем, а при питании от 24 Вольт период слишком короткий (6-7 сек) и контроллер не успевает загрузиться и идет циклическая перезагрузка. Однако при первом включении времени достаточно для загрузки.

Пути обхода

При обычной эксплуатации ошибка себя не проявляет, однако сброс до заводских настроек невозможен при питании от 24В. Для сброса следует запитать от 12В или аппаратно отключить Watchdog.

Так же случай считается гарантийным.

Запланированное исправление

Предположительно плохие компараторы попали только в партии v6.8.2A, v6.8.2B.

ERRWB600017: Незапланированная перезагрузка контроллера

Подверженные устройства

Все версии Wiren Board 6.

Описание

При перезапуске сервисов WirenBoard или во время работы wb-rules происходит незапланированная перезагрузка контроллера. Перезагрузка может происходить с периодом в неделю или несколько дней.

Причины и подробное описание

Неправильная последовательность операций доступа к памяти приводит к ошибке, которая некорректно обрабатывается в ядре Linux. В результате происходит зависание контроллера, лампочка на контроллере гаснет, все сервисы перестают работать. Работоспособность восстанавливается автоматической перезагрузкой по Watchdog через 30 секунд.

Пути обхода

Обновить libwbmqtt1-3 и wb-rules.

Запланированное исправление

В релизе wb-2201 ошибка исправлена в libwbmqtt1-3 версий 3.5.0-wb1 и wb-rules 2.11.1-wb1.

В более поздних релизах ошибка исправлена в libwbmqtt1-3, начиная с версии 3.7.2, и wb-rules, начиная с версии 2.11.3.

Обновите программное обеспечение контроллера по инструкции.

ERRWB600018: Зависание по команде poweroff или halt

Подверженные устройства

Wiren Board 6, партии с v6.8A по 6.9.1A.

Описание

При применении команды poweroff или halt контроллер не перезагружается по WD, как должен был бы, а зависает.

Причины и подробное описание

Процессор переходит в низкопотребляющий режим. При сбросе питания вотчдогом конденсаторы на линии +5 В не успевают разрядиться до конца и при включении питания процессор зависает.

Пути обхода

Не использовать команды poweroff или halt. При обычной эксплуатации ошибка себя не проявляет.

Запланированное исправление

Исправлено с партии v6.9.1B

ERRWB600019: Некорректное измерение напряжения более 14 В

Подверженные устройства

Wiren Board 6 из партий:
v6.9.1B, v6.9.1B/2, v6.9.1B/3, v6.9.1B/4, v6.9.1B/5 (512MB RAM)
v6.9.1B/1G, v6.9.1B/1G2, v6.9.1B/1G3 (1GB RAM).

Описание

При измерении напряжения на аналоговых входах А1-А4 для напряжений более 14 В контроллер выдаёт сильно заниженное значение.

Причины и подробное описание

Для преобразования поданного на входы А1-А4 напряжения в дискретный сигнал в контроллере установлен операционный усилитель (ОУ). ОУ, установленный в устройства партии v6.9.1B, имеет неприятную особенность: если разность напряжений между его входами превышает 1В, между входами начинает протекать ток, что приводит к искажению сигнала. В результате напряжения выше 14 В занижаются, и чем больше напряжение, тем больше ошибка.

Пути обхода

Напряжения до 14 В измеряются корректно. При необходимости измерения больших напряжений требуется подключить внешний делитель напряжения так, чтобы максимальное напряжение на входах А1-А4 не превышало 14 В. К результатам измерений необходимо применить коэффициент делителя напряжений.

Запланированное исправление

Исправлено в партиях v6.9.1U и v6.9.1U/1G. При использовании входов А1-А4 для измерения напряжения более 14 В устройства ревизии 6.9.1, подверженные ошибке, подлежат гарантийной замене.

ERRWB600020: Преждевременный выход из строя внутреннего накопителя

Подверженные устройства

Некоторые Wiren Board ревизий 6.1, 6.4.x, 6.5, 6.5.1, 6.6.0, произведённые в 2018 и 2019 году.

Подвержены партии, содержащие следующие трёхзначные коды: 286, 293, 322, 334, 346, 347, 348, 357, 372. Например: "v6.5A 2G 334 NB-IoT". Также подвержены некоторые устройства других партий, произведённые в 2018 году.

Проблемную модель eMMC можно определить: по номеру партии, по маркировке чипа (Kingston EMMC04G-W627), а также по коду модели (W62704) в выводе dmesg или консоли при загрузке:

[    1.797481] mmcblk0: mmc0:0001 W62704 3.53 GiB

Описание

Внезапный выход из строя накопителя eMMC с невозможностью записи и, иногда, чтения данных. Подвержены накопители Kingston EMMC04G-W627.

Причины и подробное описание

Проблема диагностируется по специфическим сообщениям в Debug-консоли (и dmesg) при загрузке или работе:

[  620.643757] mmc0: Timeout waiting for hardware interrupt.
[  620.649221] sdhci: =========== REGISTER DUMP (mmc0)===========

При этом система может зависать сама или при попытке записи. Часто первый раз проблема проявляется после обновления прошивки контроллера, видимо из-за записи в процессе обновления большого количества данных на накопитель.

Проблема, судя по всему, вызвана ошибкой в микропрограмме определённой модели eMMC.

Пути обхода

Пользователям проблемных ревизий рекомендуется обновить ПО и перезагрузить контроллер, чтобы установилось ядро 5.10 или свежее, вместо ядра 4.9, которое поставлялось с контроллерами. По мнению производителя eMMC, новая версия ядра уменьшает вероятность выхода из строя микросхем.

Запланированное исправление

Другие партии контроллеров Wiren Board 6 и 7 не подвержены этой проблеме, т.к. она вызвана ошибкой в микропрограмме конкретной модели и ревизии чипа eMMC. Так как подверженные WB6 выходят из строя чаще обычного, гарантия на них продлевается.

Вышедшие из строя контроллеры подлежат гарантийной замене на свежие Wiren Board 7.

ERRWB600021: Разрастается файл /var/lib/mosquitto/mosquitto.db и не запускается сервис mosquitto

Подверженные устройства

Все контроллеры Wiren Board 6.

Описание

Перестаёт работать веб-интерфейс, перестают приходить MQTT-сообщения. Также может рваться связь по VPN, медленно работать консоль, контроллер может самопроизвольно перезагружаться.

Причины и подробное описание

Проблема вызвана не оборудованием или программным обеспечением, разработанным компанией Wiren Board, а является следствием бага в MQTT-брокере mosquitto, используемом в контроллере: Unexpected growth in the .db file.

Эта проблема связана с локальной базой брокера, который в оригинале называется persistence file.

Если брокер mosquitto не может отправить сообщение кому-то из подключенных клиентов, то он сохраняет сообщение в оперативной памяти. Например, это может случиться, когда настроена пересылка сообщений на другой брокер, подключенный через bridge, но внезапно пропала связь. Когда связь восстановится, сообщения из оперативной памяти будут отправлены.

Однако, если за время отсутствия связи сервис mosquitto был перезапущен,например, если выключался контроллер — эти данные будут утеряны. Чтобы не допустить утерю данных, брокер mosquitto может сохранять такие сообщения не только в оперативную память, но и на накопитель в свою базу данных, откуда потом загрузит информацию при следующем запуске. Подробнее в статье How to set up persistent storage for Mosquitto MQTT broker.

Базу данных для отложенных сообщения можно включать или выключать в настройках mosquitto. На контроллерах Wiren Board он по умолчанию включен.

Из-за ошибки в коде mosquitto pбаза данных брокера может вырастать до размера 50 Мбайт и более, хотя при нормальной работе он обычно меньше 25 Мбайт. При следующем запуске mosquitto не может обработать такой большой файл и в итоге не запускается. Из-за этого также перестают работать работать веб-интерфейс и отправка MQTT-сообщений.

Ещё база данных брокера большого размера может занять всё свободное место на разделе, из-за чего может перестать работать другой софт контроллера, в том числе VPN и SSH. Также в некоторых версиях ПО контроллера за статусом сервиса mosquitto следил watchdog, и из-за того, что сервис не запускался, watchdog перезапускал контроллер.

Проверить размер базы данных брокера можно командой du -h /var/lib/mosquitto/mosquitto.db.

Пути обхода

Чтобы вернуть контроллер в рабочее состояние:

  1. Удалите файл с базой данных брокера (persistence file). Это можно сделать любым способом, но так как ПО контроллера, включая SSH, может работать медленно из-за недостатка свободного места, удобнее всего это сделать с помощью отладочной консоли: rm /var/lib/mosquitto/mosquitto.db. Если из-за проблем в работе контроллера у вас не получается удалить эту базу, можете выполнить factory reset.
  2. В /etc/mosquitto/mosquitto.conf отключите функцию сохранения неотправленных сообщений в файл, для этого:
    1. Откройте файл в редакторе:
      nano /etc/mosquitto/mosquitto.conf
      
    2. Поменяйте persistence true на persistence false.
  3. Перезапустите контроллер.
  4. Ещё раз удалите файл с базой данных брокера.

Либо:

sed -i 's$^persistence true$persistence false$' /etc/mosquitto/mosquitto.conf && systemctl restart mosquitto

Важно! При обновлении ПО контроллера файл /etc/mosquitto/mosquitto.conf будет заменён на дефолтный, поэтому снова установите persistence false.

С отключенной функция сохранения неотправленных сообщений в файл, эта проблема не будет возникать. Однако в редких случаях, описанных в разделе «Причины и подробное описание», некоторые MQTT-сообщения могут быть не доставлены.

Исправление

По заявлениям разработчиков стороннего софта mosquitto, они исправили этот баш ещё в mosquitto версии 1.5.6. В Debian 11 «bullseye» включен mosquitto версии 2.0.7-3 и старше, поэтому там этого бага быть не должно.

Однако, проблема есть и пока мы её исследуем, рекомендуем отключить функцию сохранения неотправленных сообщений в файл по инструкции в разделе «Пути обхода».

ERRWB600022: Ошибка при обновлении Could not resolve deb.debian.org

Подверженные устройства

Все контроллера Wiren Board 6.

Описание

В конце апреля репозитории Debian stretch переехали в archive.debian.org, из-за чего начались проблемы с обновлениями на контроллерах Wiren Board со старыми релизами.

Пути обхода

Если вы не редактировали списки репозиториев вручную:

  1. Подключите контроллер к интернету
  2. Зайдите в его консоль по SSH и выполните:
apt update
ошибки надо проигнорировать.
apt install wb-configs

Если всё прошло штатно, то после этого apt update будет завершаться без ошибок.

Если списки когда-то были отредактированы вручную, нужно заменить deb.debian.org на archive.debian.org в адресе репозитория:

  1. Подключитесь к контроллеру по SSH.
  2. Откройте файл списка репозиториев в редакторе nano:
nano /etc/apt/sources.list.d/debian-upstream.list
  1. Замените в каждой строчке deb.debian.org на archive.debian.org
  2. Нажмите Ctrl+S для сохранения изменений, Ctrl+X — для выхода из редактора.
  3. Обновите список пакетов:
apt update
ошибок больше быть не должно.

Исправление

Контроллеры Wiren Board 6 сняты с производства, исправление не планируется. Всем пользователям надо просто выполнить инструкцию из раздела Пути обхода.

ERRWB600023: Серийный номер в системе не совпадает с наклейкой

Подверженные устройства

Версии Wiren Board 6 с модемом; до Wiren Board 6.7.

Описание

При обновлении с factoryreset на stable (wb-2304 и wb-2307), serial-number контроллера меняется и не совпадает с указанным на наклейке.

Причины и подробное описание

Причина - некорректная работа утилиты wb-gen-serial в части получения imei модема в связи с переходом на python3. Утилита некорректно обрабатывает правильный imei модема, что и приводит к генерации серийного номера, отличного от указанного на наклейке.

Пути обхода (два способа)

Обновить ПО контроллера, выполнить перегенерацию серийного номера вручную:

apt update; apt upgrade -y
rm /var/lib/wirenboard/short_sn.conf; /usr/lib/wb-utils/prepare/wb-prepare.sh fix_short_sn; reboot

Или сделать factoryreset свежим stable (данные сотрутся!)

Запланированное исправление

Исправили; бекпортировали исправление в wb-2304 и wb-2307.

ERRWB600024: Контроллеры не обновляются FIT-файлами с ошибкой в логе «no proper DTB found»

Подверженные устройства

Все контроллеры Wiren Board 6, на которых установлен релиз wb-2304 или более старые.

Описание

Попытка обновить контроллер FIT-файлом (stable или testing), выпущенным в диапазоне дат с 13.11.2023 года по 18.03.2024, завершается ошибкой fw_has_proper_dtb: command not found и Firmware is not compatible with this device, no proper DTB found.

Причины и подробное описание

Проблема связана с тем что в указанном диапазоне дат выпускались FIT-файлы, которые были в состоянии запускаться только на контроллера с релизом wb-2307 и более поздними. Находящийся внутри FIT-файлов сценарий обновления ожидал наличия функции fw_has_proper_dtb в файле wb-run-update на самом контроллере (при обновлении через web-интерфейс) и в хранящемся на контроллере файле factoryreset.fit (при обновлении или сбросе с перезагрузкой). Начиная с 19.03.2024 выпускаемые FIT-файлы не имеют этой проблемы (код функции fw_has_proper_dtb интегрирован в сценарий обновления внутри FIT-файла).

Пути обхода

Обновление контроллера через apt, либо использование FIT-файлов, выпущенных с 19.03.2024 и далее.

Исправление

Использовать для обновления fit-файлы stable (6.3–6.6.0, 6.7.x–6.9.x) или testing (6.3–6.6.0, 6.7.x–6.9.x), выпущенные начиная с 19.03.2024, например, последний стабильный FIT (6.3–6.6.0, 6.7.x–6.9.x) или последний тестовый FIT (6.3–6.6.0, 6.7.x–6.9.x)

ERRWB600025: долгий запуск сервиса wb-mqtt-gpio

Подверженные устройства

Версии Wiren Board 6.3 - 6.6 с WBIO модулями; до Wiren Board 6.7.

Описание

После старта контроллера сервис wb-mqtt-gpio не запускается в течении долгого времени

Причины и подробное описание

Причина - загрузка CPU одновременно стартующиими сервисами что вызывает срабатывание timeout в initd.

Пути обхода Создать /lib/systemd/system/wb-mqtt-gpio.service.d/increase-timeout.conf с содержимым

[Service]
TimeoutStartSec=160
RestartSec=60

Запланированное исправление

пока не запланировано