Обновление прошивки контроллеров Wiren Board 7.2…7.3
Общая информация
Совместимость
Инструкции на этой странице подходят для контроллеров Wiren Board 7.2…7.3. Инструкцию по обновлению Wiren Board 6.x и Wiren Board 7.4 смотрите на соответствующих страницах.
Как всё устроено
Контроллер работает под управлением Debian Linux, поэтому вы можете обновлять ПО с помощью штатного пакетного менеджера apt — нужен интернет на контроллере, зато сохраняются системные настройки, а также установленное пользователем стороннее ПО и его файлы конфигурации.
Кроме этого, для контроллеров Wiren Board выпускаются прошивки в виде fit-файлов — это образ корневого раздела rootfs, который можно прошить с USB-флешки, карты памяти, через Debug Network или из веб-интерфейса контроллера. Интернет на контроллере не нужен. Сохранятся настройки, сделанные из веб-интерфейса контроллера, а установленное стороннее ПО будет удалено вместе с файлами конфигурации.
Также вы можете удалить все файлы и настройки с контроллера, получив чистое устройство с заводской версией ПО и настройками по умолчанию.
Релизы
Программное обеспечение контроллеров Wiren Board состоит из множества пакетов, которые мы объединяем в релизы stable — стоит на новых контроллерах и testing — rolling-релиз с самыми свежими версиями пакетов.
О переключении между релизами и другую информацию смотрите в статье Программное обеспечение Wiren Board.
Пользовательские настройки и файлы
Где хранятся настройки
eMMC контроллера Wiren Board разбита на несколько разделов, пользователю важно знать два из них, которые монтируются в папки:
- / или rootfs — корневой раздел с файлами операционной системы, ссылками на системные настройки, установленным сторонним ПО и его файлами конфигурациями.
- /mnt/data — большой раздел в несколько Гбайт с системными настройками и любыми пользовательскими файлами.
На большом разделе, по адресу /mnt/data/etc
находятся настройки:
В контроллере Wiren Board есть отдельный раздел, который монтируется в каталог /mnt/data
, в котором по адресу /mnt/data/etc
находятся настройки:
- системные: сеть, часовой пояс, пароль к веб-интерфейсу, mosquitto, nginx;
- устройств, подключенных по RS-485 — wb-mqtt-serial.conf
- дашборды, виджеты и настройки веб-интерфейса — wb-webui.conf;
- модулей ввода-вывода и расширения — wb-hardware.conf;
- универсальных входов/выходов A1-A4 (A1-A3, D1) — wb-mqtt-adc.conf;
- выводов GPIO контроллера — wb-mqtt-gpio.conf;
- настройки архива данных — wb-mqtt-db.conf;
- шлюза OPC UA — wb-mqtt-opcua.conf;
- шлюза Modbus TCP/Slave — wb-mqtt-mbgate.conf.
Кроме этого, по адресу /mnt/data/etc/
хранятся:
- wb-rules — пользовательские скрипты;
- wb-rules-module— модули, написанные на wb-rules;
- wb-mqtt-serial.conf.d/templates/ — пользовательские шаблоны.
В каталоге /etc
находятся симлинки на файлы и каталоги из /mnt/data/etc
.
Где хранятся настройки установленного стороннего ПО, уточняйте в его документации.
Резервное копирование
Чтобы сделать резервную копию настроек контроллера, скопируйте содержимое /mnt/data/etc
на компьютер. Программы, установленные в /mnt/data
также нужно сохранить на компьютер.
Если вы устанавливали на контроллер сторонние программы, или хранили файлы вне папки /mnt/data
— их нужно сохранить отдельно.
Кроме этого вы можете скачать образ корневой файловой системы — так вы сохраните настройки сторонних программ, которых хранят файлы в /etc
. Сделать это можно кнопкой в веб-интерфейсе Настройки → Система → Скачать архив с rootfs.
Проверка обновлений
В контроллере нет механизма, который сообщит пользователю о доступном обновлении, поэтому о выходе новых версий вы можете узнать из новостей в наших социальных сетях или в консоли контроллера:
- Подключитесь к контроллеру через SSH.
- Выполните команду:
apt update
- Если есть пакеты для обновления, то можете посмотреть их список:
apt list --upgradable
Обновление в консоли через apt
Рекомендуемый способ. Если последний раз ПО контроллера обновлялось до апреля 2021 года, то сперва вам нужно перейти на релизы, для этого смените репозиторий.
Если вы обновляетесь с релиза wb-2207 и более раннего через apt, то прочитайте сперва описание известных проблем, с которыми вы столкнётесь: Wiren Board 7: ERRWB73011.
Важно! В релизе wb-2304 сменилась версия Debian, поэтому при переходе со старых релизов wb-21**/wb-22** надо ввести дополнительную команду (подробнее):
wb-release --update-debian-release
Apt — это менеджер пакетов операционной системы Debian, который обновляет изменившиеся пакеты и устанавливает новые, если это необходимо. Для работы нужен интернет или локальное зеркало apt-репозитория Wiren Board.
Обновление контроллера через apt учитывает систему релизов — следуя инструкции, вы полностью перейдёте на новый релиз, а не только обновите отдельные пакеты.
При обновлении сохраняются установленные программы, пользовательские файлы и настройки.
Чтобы обновить прошивку контроллера:
- Подключитесь к нему по SSH.
- Выполните команды:
apt update; apt upgrade
В процессе обновления может появиться запрос на действие с файлами конфигурации. Если не знаете, что выбрать — оставьте значение по умолчанию keep the local version currently installed, так вы сохраните свои настройки.
Так же в консоль будут выводиться служебные сообщения и запросы на действия, которые могут повредить систему или удалить пользовательские настройки — внимательно читайте вопросы перед тем, как ввести Y
.
Решение проблем при обновлении со Stretch на Bullseye
Если вы столкнулись с ошибками при переходе на новый дистрибутив, сообщите нам на портал поддержки.
Могут возникнуть проблемы с работой докер после обновления. Если докер был установлен до перехода, замените имя релиза со stretch на bullseye в файле /etc/apt/sources.list.d/docker.list
и повторно запустите команду его установки по инструкции.
Кроме этого, известно о проблемах с mosquitto и nginx, если их файлы конфигурации изменялись вручную. Обычно это происходит, если вы устанавливали защиту паролем на веб-интерфейс. В этом случае после обновления надо подключиться к контроллеру по SSH и повторно настроить защиту паролем по новой инструкции: Защита паролем веб-интерфейса контроллера в Debian Bullseye.
Если вы используете модуль расширения WBE2R-R-ZIGBEE v.1 со старой прошивкой, работающей только на версии zigbee2mqtt 1.18 — у вас всё может сломаться, поэтому надо:
- Перед обновлением сохранить папку
/root/zigbee2mqtt/data
- Установить специальную версию для этого адаптера:
apt update && apt install zigbee2mqtt-1.18.1
- Восстановить данные из скопированной ранее папки.
Всё, больше этот пакет у вас обновляться не будет, а значит и ломаться будет нечему.
Прошивка через веб-интерфейс
О способе
Прошивку через веб-интерфейс удобно использовать, если на компьютере нет интернета и вы используете только встроенное в контроллер ПО. Способ подходит для обновления внутри веток stable или testing, а также для перехода со stable на testing.
При обновлении сохраняются пользовательские файлы и настройки только в /mnt/data
, но стороннее ПО будет удалено. Рекомендуем сделать резервную копию.
Скачивание прошивки
Вам понадобится fit-файл прошивки для вашей версии контроллера:
Другие версии ПО вы найдёте в нашем репозитории.
Также в свежих релизах FIT-файл можно скачать по ссылке в веб-интерфейсе: Настройки → Система
Процесс
Если у вас на контроллере релиз wb-2307 и новее, а на самом контроллере корневой раздел 1 Гбайт, то его можно увеличить.
Для изменения настроек контроллера вам нужен уровень доступа Администратор, который можно выставить в разделе Настройки → Права доступа.
После завершения настроек рекомендуем поставить уровень доступа Пользователь или Оператор — это поможет не совершить случайных ошибок при ежедневной работе с веб-интерфейсом.
При обновлении сохраняются пользовательские файлы и настройки только в /mnt/data
, но стороннее ПО будет удалено. Рекомендуем сделать резервную копию.
Чтобы обновить прошивку контроллера:
- Скачайте fit-файл прошивки на компьютер.
- Зайдите в веб-интерфейс контроллера и перейдите в раздел Настройки → Система.
- Нажмите кнопку Выбрать файл и выберите скачанный ранее fit-файл.
- Файл с прошивкой загрузится на контроллер и начнётся обновление, которое длится 5-10 минут. Не закрывайте страницу и не выключайте контроллер до завершения.
- После обновления контроллер перезагрузится.
После завершения обновления подключитесь к контроллеру заново и обновите страницу веб-интерфейса в браузере со сбросом кэша (Ctrl+F5 для Chrome), чтобы загрузилась обновленная версия. Проверьте версию прошивки на странице Устройства → System.
Прошивка через Debug Network
О способе
В контроллере есть разъём Debug Network, который можно использовать для обновления прошивки или удаления всех данных и настроек.
При обновлении сохраняются пользовательские настройки и файлы в разделе /mnt/data
, но стороннее ПО будет удалено. Если обновить с удалением пользовательских данных — будут стёрты пользовательские настройки и файлы, а так же установленное ПО. Рекомендуем сделать резервную копию.
Подготовка файла прошивки
Вам понадобится fit-файл прошивки для вашей версии контроллера:
Другие версии ПО вы найдёте в нашем репозитории.
Также в свежих релизах FIT-файл можно скачать по ссылке в веб-интерфейсе: Настройки → Система
Переименуйте загруженный файл в wb_update.fit
— для обновления, или в wb_update_FACTORYRESET.fit
— для удаления данных и сброса к заводским настройкам. Обратите внимание, что .fit — расширение файла, если у вас Windows и отключен показ расширений, то скаченный файл будет без него — не надо его добавлять, просто замените имя до точки.
Процесс
Вам понадобятся компьютер и кабель USB-C с возможностью передачи данных. Весь процесс займёт не больше пяти минут.
Для наглядности можно подключиться к Debug Console, где контроллер будет несколько раз запрашивать в подтверждение тех или иных действий и писать сообщения о ходе процесса.
В инструкции мы будем ориентироваться на звуковые сигналы и подтверждать все запросы:
- Начало зависит от аппаратной ревизии контроллера:
- Для ревизии 7.3:
- Переведите выключатель в положение OFF и вытащите кабели из разъёмов Debug Console и Debug Network.
- Зажмите и не отпускайте кнопку FW.
- Подключите к контроллеру внешнее питание
- Включите контроллер кнопкой и продолжайте удерживать кнопку FW. Если вам нужны логи из дебага быстро подключите кабель Debug Console.
- Для ревизии 7.2:
- Если нужно, подключите кабель к Debug Console.
- Переведите выключатель в положение OFF.
- Подключите к контроллеру внешнее питание.
- Зажмите и не отпускайте кнопку FW.
- Включите контроллер кнопкой и продолжайте удерживать кнопку FW.
- Для ревизии 7.3:
- Держите кнопку FW до короткого звукового сигнала. В Debug Console в этот момент будут строки:
Press FW button to enter firmware update mode # <здесь вы нажали кнопку> Entering firmware update mode.
- Отпустите кнопку FW.
- Через несколько секунд на компьютере обнаружится накопитель WB UPDATE, откройте его. В Debug Console в это время будет сообщение:
Waiting for USB gadget to connect to host PC Copy .fit file to virtual USB driver and unplug the cable
- Скопируйте подготовленный .fit-файл на этот накопитель — контроллер каждую секунду будет следить за процессом.
- Когда файл полностью скопируется, контроллер автоматически отключит накопитель, издаст два коротких звуковых сигнала и начнет прошивку. В Debug Console при этом будет сообщение вида:
Will use wb_update.fit from virtual USB drive # или, если вы выбрали удаление данных Will use wb_update_FACTORYRESET.fit from virtual USB drive
- Через пару минут контроллер перезагрузится и его индикатор станет равномерно мигать зелёным, а в Debug Console появится приглашение входа:
wirenboard-XXXXXXXX login:
.
Если в имени файла есть FACTORYRESET
, то контроллер издаст продолжительный звуковой сигнал — запрос подтверждения удаления всех данных. В Debug Console будет сообщение: FACTORY RESET REQUESTED
. Нажмите и держите кнопку FW, пока контроллер не издаст по очереди четыре коротких звуковых сигнала. Кнопку можно отпустить. Если вы передумали удалять данные — просто выключите контроллер.
Прошивка с помощью USB-флешки или карты Micro-SD
О способе
Для обновления прошивки или удаления данных и настроек можно воспользоваться USB-флешкой или картой памяти Micro SD.
Способ удобен, если на компьютере нет интернета и вы используете только встроенное в контроллер ПО.
При обновлении сохраняются пользовательские настройки и файлы в разделе /mnt/data
, но стороннее ПО будет удалено. Если обновить с удалением пользовательских данных — будут стёрты пользовательские настройки и файлы, а так же установленное ПО. Рекомендуем сделать резервную копию.
Подготовка файла прошивки
Вам понадобится fit-файл прошивки для вашей версии контроллера:
Другие версии ПО вы найдёте в нашем репозитории.
Также в свежих релизах FIT-файл можно скачать по ссылке в веб-интерфейсе: Настройки → Система
Переименуйте загруженный файл в wb_update.fit
— для обновления, или в wb_update_FACTORYRESET.fit
— для удаления данных и сброса к заводским настройкам. Обратите внимание, что .fit — расширение файла, если у вас Windows и отключен показ расширений, то скаченный файл будет без него — не надо его добавлять, просто замените имя до точки.
Процесс
Для наглядности можно подключиться к Debug Console, где контроллер будет несколько раз запрашивать подтверждение тех или иных действий и писать сообщения о ходе процесса.
В инструкции мы будем ориентироваться на звуковые сигналы и подтверждать все запросы:
- Скопируйте подготовленный файл прошивки на флешку или карту памяти и вставьте её в контроллер.
- Следующие шаги зависят от аппаратной ревизии контроллера:
- Для ревизии 7.3:
- Переведите выключатель в положение OFF и вытащите кабели из разъёмов Debug Console и Debug Network.
- Зажмите и не отпускайте кнопку FW.
- Подключите к контроллеру внешнее питание.
- Включите контроллер кнопкой и продолжайте удерживать кнопку FW. Если вам нужны логи из дебага, быстро подключите кабель Debug Console.
- Для ревизии 7.2:
- Если нужно, подключите кабель к Debug Console.
- Переведите выключатель в положение OFF.
- Подключите к контроллеру внешнее питание.
- Зажмите и не отпускайте кнопку FW.
- Включите контроллер кнопкой и продолжайте удерживать кнопку FW.
- Для ревизии 7.3:
- Держите кнопку FW до короткого звукового сигнала. Кнопку можно отпустить. В Debug Console в этот момент будут строки:
Press FW button to enter firmware update mode # <здесь вы нажали кнопку> Entering firmware update mode.
- Контроллер попробует найти на подключённой флешке или карте памяти fit-файлы с прошивкой. В Debug Console при этом будут выводится строки:
Looking for update .fit on /dev/sda... Looking for update .fit on /dev/sda1...
- Если файл будет найден — контроллер издаст два коротких сигнала и перейдёт в режим прошивки. В Debug Console при этом будет сообщение вида:
Will use wb_update.fit from virtual USB drive # или, если вы выбрали удаление данных Will use wb_update_FACTORYRESET.fit from virtual USB drive
- Если в имени файла есть
FACTORYRESET
, то контроллер издаст продолжительный звуковой сигнал — запрос подтверждения удаления всех данных. В Debug Console будет сообщение:FACTORY RESET REQUESTED
. Нажмите и держите кнопку FW, пока контроллер не издаст по очереди четыре коротких звуковых сигнала. Кнопку можно отпустить. Если вы передумали удалять данные, то просто выключите контроллер.
- Через пару минут контроллер перезагрузится и его индикатор станет равномерно мигать зелёным, а в Debug Console появится приглашение входа:
wirenboard-XXXXXXXX login:
.
Массовая прошивка контроллеров
Если вам надо прошить сразу несколько контроллеров одной флешкой, воспользуйтесь специальным режимом, в котором на флешку сохраняются логи процесса и список контроллеров, а в конце обновления контроллер издаёт характерный сигнал об окончании процедуры.
Версия установленного на контроллере ПО не важна, но fit-файл для обновления нужно взять свежий.
Работает это так:
- Подготовьте флешку с нужной прошивкой по инструкции выше.
- Создайте на этой флешке файл
install_update.flags
с текстом--mass-update
— это включит режим массовой прошивки. - Вставьте флешку в контроллер и прошейте его обычным способом.
- На флешке будет создана папка logs с файлами:
- wb-mass-update.log, в который добавится строчка с серийным номером контроллера, данными о fit-файле (релиз, дата сборки) и сути операции (update/factory reset).
- wb-console.XXXXXXXX.log, где XXXXXXXX — серийной номер контроллера. В этот файл будет записан полный лог процедуры прошивки.
- В конце прошивки контроллер издаст характерный сигнал (тили-ли-ли) — флешку можно извлекать.
Если флешку переставить в другой контроллер и прошить его — в файл wb-mass-update.log будет добавлена новая строчка с серийным номером, а также создастся ещё один файл с логом прошивки контроллера.
Удаление данных и возврат заводских настроек
О способе
Процедура удаляет на контроллере все данные: установленное ПО, настройки, пользовательские файлы и восстанавливает заводскую конфигурацию настроек, а также релиз ПО контроллера, который был в момент его выпуска — сделайте резервную копию ваших файлов и настроек.
Процесс
Если у вас установлены USB-флеш, карта MicroSD или воткнут провод в Debug Network — вытащите их.
Для наглядности можно подключиться к Debug Console, где контроллер будет несколько раз запрашивать в подтверждение тех или иных действий и писать сообщения о ходе процесса.
В инструкции мы просто зажмём кнопку FW и автоматом подтвердим все действия:
- Начало зависит от аппаратной ревизии контроллера:
- Для ревизии 7.3:
- Переведите выключатель в положение OFF и вытащите кабели из разъёмов Debug Console и Debug Network.
- Зажмите и не отпускайте кнопку FW.
- Подключите к контроллеру внешнее питание. Если вам нужны логи из дебага, вместо внешнего питания можно подключить кабель Debug Console, контроллер включится автоматически.
- Включите контроллер кнопкой и продолжайте удерживать кнопку FW.
- Для ревизии 7.2:
- Если нужно, подключите кабель к Debug Console.
- Переведите выключатель в положение OFF.
- Подключите к контроллеру внешнее питание.
- Зажмите и не отпускайте кнопку FW.
- Включите контроллер кнопкой и продолжайте удерживать кнопку FW.
- Для ревизии 7.3:
- Контроллер издаст короткий звуковой сигнал — это он перешёл в режим обновления прошивки, не отпускайте кнопку FW.
- В Debug Console при этом будет сообщение вида:
Press FW button to enter firmware update mode Entering firmware update mode.
- Подождите 20-30 секунд, пока контроллер перебирает все накопители в поисках прошивки. В финале прозвучит один двойной звуковой сигнал — контроллер перешёл к процедуре сброса с помощью зашитого на заводе образа прошивки.
- В Debug Console при этом будет сообщение вида:
Load modules for USB to work Waiting for USB to settle (10/10) Waiting for microSD to settle (3/3) Wait for eMMC to become available... Will use /mnt/data/.wb-restore/factoryreset.fit
- Через несколько секунд контроллер спросит подтверждение на удаление всех данных, но так как кнопка у нас уже зажата, то просто прозвучат по очереди четыре коротких звуковых сигнала. После этого сразу начнётся удаление данных, откат версии прошивки к заводской и восстановление заводских настроек.
- В Debug Console при этом будет сообщение вида:
############################################################################## FACTORY RESET REQUESTED This WILL destroy ALL YOUR DATA: configuration, scripts, files in home directory! If you are ABSOLUTELY SURE that you want to reset Wiren Board to factory condition, hold the FW button for 4 seconds. If you will not do it in 10 seconds, the controller will reboot without firmware update. If you want to perform a regular firmware update, rename FIT file to "wbX_update.fit" without "factory-reset" suffix. ############################################################################## .... #< здесь звучали четыре коротких звуковых сигнала > Factory reset is confirmed!
- Отпустите кнопку FW.
- По окончании процедуры контроллер перезагрузится в рабочем режиме, а его индикатор замигает зелёным.
Вся процедура занимает чуть больше 2 минут. После сброса у вас будет версия прошивки, зашитая в контроллер при производстве — обновите ПО до актуального релиза.
Удаление данных и возврат заводских настроек с обновлением ПО
О способе
Процедура удаляет все данные и установленное ПО! Убедитесь, что у вас останется доступ к контроллеру. Процедура удаляет на контроллере все данные: установленное ПО, настройки, пользовательские файлы и восстанавливает заводскую конфигурацию настроек — сделайте резервную копию ваших файлов и настроек. В отличие от аналогичного способа с кнопкой FW, происходит обновление ПО контроллера до версии, которая используется в выбранном вами fit-файле.
Подготовка файла прошивки
Функция пока доступна только для fit-образов с testing-релизом.
Вам понадобится fit-файл прошивки для вашей версии контроллера:
Другие версии ПО вы найдёте в нашем репозитории.
Также в свежих релизах FIT-файл можно скачать по ссылке в веб-интерфейсе: Настройки → Система
Процесс
Чтобы удалить все данные, сбросить настройки и обновить версии ПО на контроллере:
- Скачайте fit-файл по инструкции выше.
- Откройте веб-интерфейс контроллера.
- Перейдите Настройки → Система.
- Загрузите fit-файл с прошивкой в разделе Удаление данных и сброс настроек (Factory reset) и дождитесь окончания процедуры.
- Перезагрузите контроллер.
Заметим, что процедура не заменяет встроенный образ заводского ПО, поэтому вы всегда можете откатиться к нему с помощью кнопки FW. Это позволит вам вернуть заводскую прошивку контроллера, на которой он проходил тесты на стенде и точно стабильно работал.