Wiren Board 7: Errata

Материал из Wiren Board
7.2.1 7.3 7.3.1 7.3.2 7.3.3 7.3.4
ERRWB70001
ERRWB73002
ERRWB73003
ERRWB73004
ERRWB73005
ERRWB73006
ERRWB73007
ERRWB73008
ERRWB73009
ERRWB73010
Легенда Не подвержено проблеме
Подвержено проблеме, исправляется обновлением ПО
Подвержено проблеме

ERRWB70001: После очередной перезагрузки контроллер не загружается

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

Wiren Board 7 всех ревизий с загрузчиком версии 1.1.1, выпущенные до 15 июля 2022 г.

Описание

Нормально работающий контроллер после очередной перезагрузки по питанию не включается. Светодиод индикации загорается жёлтым примерно на 20 секунд, потом гаснет на несколько секунд, дальше цикл повторяется.

В отладочной консоли написано:

U-Boot SPL 2021.10-wb1.1.1-g4c04347f3e (Feb 03 2022 - 14:48:16 +0000)
DRAM:

Т.е. нормальная загрузка зависает после строчки DRAM.

Иногда проблема проявляется только если в контроллер вставлена microSD-карта.

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

Загрузчик неправильно инициализирует оперативную память, не дожидаясь стабилизации PLL перед обращением к микросхемам DRAM.

Пути обхода

Если вставлена microSD карта, попробовать вытащить и обновить загрузчик, как написано выше.

Исправление

Исправлено в U-Boot версии 2021.10-wb1.1.2.

Обновление портировано в stable wb-2204 и в testing.

Для обновления выполните по очереди три команды:

apt update
apt install u-boot-wb7
u-boot-install-wb

Рекомендуется обновить загрузчик на всех контроллерах. Проблема может проявиться на них позже.

Если контроллер уже не загружается, то вернуть его к жизни можно записью особого образа на чистую microSD-карту:

Для Windows:

  • скачайте программу для записи образов(например, Win32DiskImager)
  • вставьте microSD-карту в ридер
  • узнайте букву, под которой она появилась (например "F:")
  • проигнорируйте сообщения о необходимости отформатировать диск перед использованием, если такое появится
  • убедитесь, что другие программы не используют флеш-карту
  • в Win32DiskImager выберите файл образа карты, выберите букву диска и нажмите кнопку Write

Для Linux:

  • вставьте microSD-карту в ридер
  • узнайте название устройства, соответствующего карте. Обычно это /dev/mmcblk0 или /dev/sdX (где X - буква). В этом может помочь команда
    dmesg | tail
    Не перепутайте название устройства! Неправильно указав название устройства, вы навсегда потеряете все данные на вашем компьютере!
  • отмонтируйте разделы карты, которые Linux примонтировал автоматически:
    • если устройство называется /dev/mmcblk0, то разделы называются /dev/mmcblk0p1, /dev/mmcblk0p2 и т.д.
    • если устройство называется /dev/sdb, то разделы называются /dev/sdb1, /dev/sdb2 и т.д.
    Пример команды:
    umount /dev/mmcblk0p1
  • запишите образ на карту:
    sudo dd if=wb7-fix-errwb70001-1.4.4-sdcard.img of=/dev/SD_DEV_NAME bs=4M

, где "SD_DEV_NAME" - название устройства.


Вставьте microSD-карту в контроллер. Контроллер должен загрузиться нормально. Подключите отладочную консоль и выполните команду u-boot-install-wb. Выньте microSD-карту и перезагрузите устройство командой reboot.

ERRWB73002: Неработоспособность CAN и CAN-UART в контроллерах ревизии 7.3

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

Wiren Board 7 ревизии 7.3 (партии v7.3A, v7.3A/2, v7.3B/1, v7.3B/1GI (/2) как с 1Gb RAM так и с 2Gb RAM, производились с июня по август 2022 г.)

Описание

Из-за ошибки схемотехники использование CAN/CAN-UART подвергает процессор риску преждевременного выхода из строя. CAN и CAN-UART отключены программно очередным обовлением ПО.

Клеммник RS-485-2 на подвержденных устройствах работает в режиме RS-485. Эта ошибка никак не влияет на работу RS-485.

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

Ошибка в BOM при сборке: используется трансивер CAN с логикой 5В, вместо нужных 3.3В. Это приводит к инжекции тока менее 10мА в GPIO процессора.

Пути обхода

Очередное обновление ПО принудительно отключает CAN.

Исправление

Исправлено в аппаратной ревизии 7.3.1 (с августа 2022г.). При использовании CAN устройства ревизии 7.3 подлежат гарантийной замене на более новые ревизии.

ERRWB73003: Возможная потеря пакетов и низкая скорость Wi-Fi

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

Wiren Board 7 ревизии 7.3 из партий:
- v7.3B/1, v7.3B/1GI, v7.3B/1GI2, v7.3B/1GIS (с 1Gb RAM, industrial temp grade, производившихся в июле 2022 г.)
- v7.3B/2GC, v7.3B/2GC/2, v7.3B/2GC/3 (с 2Gb RAM, commercial temp grade, производившихся в июле 2022 г.)
- v7.3B/2GI, v7.3B/2GI/3 (с 2Gb RAM, industrial temp grade, производившихся в июле 2022 г.)

Описание

Из-за ошибки в комплектации возможна неустойчивая работа модуля Wi-Fi.

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

В цепь питания радиомодуля Wi-Fi ошибочно установлен транзистор с большим сопротивлением канала, на котором падает слишком большое напряжение. Из-за пониженного напряжения питания модуля Wi-Fi могут наблюдаться потери пакетов и сильное падение скорости передачи.

Пути обхода

Замена по гарантии.

Исправление

Исправлено в партиях v7.3BxxT (с литерой T на конце), а также во всех партиях в аппаратной ревизии 7.3.1 (с августа 2022г.).

ERRWB73004: Не работает обновление через разъём Debug Network

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

Wiren Board 7 ревизий 7.3, 7.3.1.

Описание

Из-за ошибки в схемотехнике не детектируется отключение кабеля USB от порта Debug Network, что делает невозможным обновление через разъём Debug Network. Кроме того, при подключении к разъёмам Debug Console и Debug Network при наличии внешнего питания контроллера возможно появление нежелательного тока из контроллера в USB-порт компьютера по линии питания (+5 В).

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

Между шиной питания портов Debug Console и Debug Network и внутренней шиной 5В контроллера установлены ключи, которые при подключении к портам открываются, обеспечивая подачу питания от USB-порта в контроллер. При отключении разъёма ключи не закрываются, на USB-разъёме остаётся питание 5 В. Это не позволяет детектировать отключение кабеля от порта Debug Network, из-за чего не работает процедура обновления через разъём Debug Network. Кроме того, ключ проводит ток в обе стороны, поэтому если к контроллеру подключено внешнее питание и контроллер подключен к компьютеру через порты Debug Console или Debug Network, возможно появление нежелательного тока из контроллера в USB-порт компьютера по линии питания (+5 В).

Пути обхода

Использовать другие способы обновления контроллера (с помощью USB-флешки или карты Micro-SD). При использовании Debug Console отключать внешнее питание контроллера.

Исправление

Исправлено начиная с ревизии 7.3.2.

ERRWB73005: Проблема с установкой дополнительных модулей расширения

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

Wiren Board 7 ревизий 7.3, 7.3.1.

Описание

Из-за ошибки в механике возможны проблемы при установке дополнительных модулей расширения в разъёмы MOD2 и MOD3.

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

Из-за увеличенных габаритных размеров радиаторов в форме логотипа компании, в некоторых случаях невозможно установить дополнительные модули расширения в разъёмы MOD2 и MOD3.

Пути обхода

Нужно немного сдвинуть радиатор:

  1. Ослабить винты радиатора.
  2. Подвинуть радиатор.
  3. Установить модуль расширения.
  4. Снова затянуть винты.

Исправление

Исправлено в партиях ревизии 7.3.1, выпущенных после 21.09.2022.

ERRWB73006: Проблема с "вечной" перезагрузкой контроллера

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

Единичные экземпляры Wiren Board 7.

Описание

На некоторых устройствах может происходить циклическая перезагрузка:

  1. Cветодиодный индикатор постоянно горит оранжевым.
  2. Раз в 10...15 секунд индикатор моргает.

В debug консоли успевают появиться данные только о первых секундах загрузки.

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

Брак компонента. Процессор не успевает сбросить watchdog.

Пути обхода

Сделать Factory Reset последним .fit файлом. Или выполните по очереди три команды:

apt update
apt install u-boot-wb7
u-boot-install-wb

Исправление

Исправлено в u-boot версии wb1.4.2. Обновление портировано в stable wb-2207 и в testing.

ERRWB73007: Зависание микросхемы питания в процессорном модуле

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

Единичные экземпляры Wiren Board 7 с аккумуляторным модулем WBMZ4-BATTERY v4.5 и младше.

Описание

Если отключить внешнее питание от контроллера Wiren Board 7 и дать аккумулятору полностью разрядиться — контроллер может не загрузиться при подаче питания. При этом на плате контроллера горит зелёный светодиод LED3 и раз в 20 секунд гаснет на две секунды. Помогает только физическое извлечение модуля WBMZ4-BATTERY или полный разряд аккумулятора.

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

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

Пути обхода

Замена WBMZ4-BATTERY на новый, в котором отключены линии паразитной запитки.

Исправление

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

ERRWB73008: Контроллер не стартует при питании от маломощного USB

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

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

Описание

При подключении контроллера к компьютеру через Debug Console (Debug Network) и при недостаточной мощности USB-порта или плохом USB-кабеле, контроллер не стартует и остаётся в этом состоянии, не реагируя на Whatchdog. Даже если после этого подать внешнее питание.

Отключение USB-кабеля от контроллера и подключение внешнего питания, возвращают контроллер в нормальный режим.

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

Слабое питание вводит PMIC в состояние «плохое питание» и вывести его их этого состояния можно только обесточив.

Пути обхода

Два варианта на выбор: 1. Подключить контроллер хорошим USB-кабелем к USB-порту с достаточной мощностью. 2. Сперва подключить внешнее питание контроллера, потом подключать USB-кабели и после этого перевести переключатель питания в положение ВКЛ.

Исправление

Запланировано в следующей ревизии контроллера.

ERRWB73009: Контроллер не обновляется с USB-флешки, microSD и через Debug Network и не работает factory reset с кнопки

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

Контроллеры Wiren Board 7.3.4 с номерами партий 7.3.4I/4 1C/A-1G (не все), 7.3.4I/5 1C/A-2GI и 7.3.4I/4R 1C/A-1G (произведённые в период 24.04.23 - 01.05.23).

Также подвержены проблеме контроллеры, которые были обновлены с расширением rootfs образами между 24 апреля и 1 мая 2023 года.

Описание

При попытке обновить контроллер с USB-флешки, microSD, через Debug Network или сделать factory reset, после зажимания кнопки и запуска контроллер издаёт один писк, но после этого ничего не происходит и контроллер загружается в старую версию ОС.

В debug console в момент первого писка после запуска будут такие сообщения:

     Data Size:    54344 Bytes = 53.1 KiB
     Architecture: ARM
     Hash algo:    sha1
     Hash value:   88cb690e62d3e2fbe97df37350c2ee8c8abab757
## Verifying ... sha1+ 
   Loading part 0 ... OK
zimage: Bad magic!
ERROR: Failed to enter update mode!
ERROR: /mnt/data/.wb-restore/factoryreset.fit missing or corrupt
Checking if there is a microSD card with update file
MMC: no card present
Couldn't find partition mmc 0:1


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

Ошибка в ПО, из-за которой образы для обновления с 24 апреля по 1 мая 2023 года собирались без компонента, нужного для загрузки контроллера в режим обновления.

Исправление

Исправляется обновлением ПО командами

# apt update
# apt upgrade

Если нет доступа к интернету, нужно скачать последний стабильный FIT и скопировать его на контроллер по пути /mnt/data/.wb-restore/factoryreset.fit.

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

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

Контроллеры Wiren Board 7, выпущенные до мая 2023 года и работающие под управлением ОС Debian 9 «stretch».

Описание

Перестаёт работать веб-интерфейс, перестают приходить 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 и старше, поэтому там этого бага быть не должно.

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

Пути обхода

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

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

С отключенным persistence file данная проблема не будет возникать, однако в редких случаях, описанных в разделе «Причины и подробное описание», некоторые MQTT-сообщения могут быть не доставлены. Поэтому лучше после этого сразу обновить контроллер до Debian 11 «bullseye» (инструкция).

Далее, если вы обновлялись через apt — верните параметр persistence true в /etc/mosquitto/mosquitto.conf, при обновлении через веб-интерфейс или с флешки, просто проверьте, что persistence true.

Исправление

На всех контроллерах Wiren Board, выпущенных после 1 мая 2023, установлена прошивка с ОС Debian 11 «bullseye», в которой этой проблемы нет.