Обновление прошивки контроллеров Wiren Board 7.2…7.3

Это утверждённая версия страницы. Она же — наиболее свежая версия.

Общая информация

Обновление ПО контроллера Wiren Board 7

Совместимость

Инструкции на этой странице подходят для контроллеров Wiren Board 7.2…7.3. Инструкции для других версий.

Как всё устроено

 
Структура eMMC и способы обновления

Контроллер работает под управлением Debian Linux, поэтому вы можете обновлять ПО с помощью штатного пакетного менеджера apt — нужен интернет на контроллере, зато сохраняются системные настройки, а также установленное пользователем стороннее ПО и его файлы конфигурации.

Кроме этого, для контроллеров Wiren Board выпускаются прошивки в виде fit-файлов — это образ корневого раздела rootfs, который можно прошить с USB-флешки, карты памяти, через Debug Network или из веб-интерфейса контроллера. Интернет на контроллере не нужен. Сохранятся настройки, сделанные из веб-интерфейса контроллера, а установленное стороннее ПО будет удалено вместе с файлами конфигурации.

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

Релизы

 
Релизный цикл ПО Wiren Board

Программное обеспечение контроллеров Wiren Board состоит из множества пакетов, которые мы объединяем в релизы stable — стоит на новых контроллерах и testing — rolling-релиз с самыми свежими версиями пакетов.

Мы будем рады, если вы сможете присоединиться к использованию testing, ведь кроме получения новых фич вы поможете уменьшить количество ошибок в stable. Подробнее о релизах и переключении между ними на странице Программное обеспечение контроллера.

Журналы изменений в релизах
Ветка Имя
stable wb-2401wb-2310wb-2307wb-2304wb-2207wb-2204wb-2201wb-2110wb-2108 • wb-2104
testing скользящий релиз, изменения

Пользовательские настройки и файлы

Где хранятся настройки

 
Файлы настроек, которые сохраняются при обновлении через fit-файл

eMMC контроллера Wiren Board разбита на несколько разделов, пользователю важно знать два из них, которые монтируются в папки:

  1. / или rootfs — корневой раздел с файлами операционной системы, ссылками на системные настройки, установленным сторонним ПО и его файлами конфигурациями.
  2. /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.

Проверка обновлений

В контроллере нет механизма, который сообщит пользователю о доступном обновлении, поэтому о выходе новых версий вы можете узнать из новостей в наших социальных сетях или в консоли контроллера:

  1. Подключитесь к контроллеру через SSH.
  2. Выполните команду:
    apt update
    
  3. Если есть пакеты для обновления, то можете посмотреть их список:
    apt list --upgradable
    

Обновление в консоли через apt

 
Окно Modified configuration Files

Рекомендуемый способ. Если последний раз ПО контроллера обновлялось до апреля 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 учитывает систему релизов — следуя инструкции, вы полностью перейдёте на новый релиз, а не только обновите отдельные пакеты.

При обновлении сохраняются установленные программы, пользовательские файлы и настройки.

Чтобы обновить прошивку контроллера:

  1. Подключитесь к нему по SSH.
  2. Выполните команды:
    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 — у вас всё может сломаться, поэтому надо:

  1. Перед обновлением сохранить папку /root/zigbee2mqtt/data
  2. Установить специальную версию для этого адаптера:
    apt update && apt install zigbee2mqtt-1.18.1
    
  3. Восстановить данные из скопированной ранее папки.

Всё, больше этот пакет у вас обновляться не будет, а значит и ломаться будет нечему.

Прошивка через веб-интерфейс

О способе

Прошивку через веб-интерфейс удобно использовать, если на компьютере нет интернета и вы используете только встроенное в контроллер ПО. Способ подходит для обновления внутри веток stable или testing, а также для перехода со stable на testing.

При обновлении сохраняются пользовательские файлы и настройки только в /mnt/data, но стороннее ПО будет удалено. Рекомендуем сделать резервную копию.

Скачивание прошивки

 
Cсылка для скачивания FIT-файлов в веб-интерфейсе контроллера Wiren Board

Вам понадобится fit-файл прошивки для вашей версии контроллера:

Другие версии ПО вы найдёте в нашем репозитории.

Также в свежих релизах FIT-файл можно скачать по ссылке в веб-интерфейсе: НастройкиСистема

Процесс

Если у вас на контроллере релиз wb-2307 и новее, а на самом контроллере корневой раздел 1 Гбайт, то его можно увеличить.

 
Уровень «Администратор»

Для изменения настроек контроллера вам нужен уровень доступа Администратор, который можно выставить в разделе НастройкиПрава доступа.

После завершения настроек рекомендуем поставить уровень доступа Пользователь или Оператор — это поможет не совершить случайных ошибок при ежедневной работе с веб-интерфейсом.

При обновлении сохраняются пользовательские файлы и настройки только в /mnt/data, но стороннее ПО будет удалено. Рекомендуем сделать резервную копию.

Чтобы обновить прошивку контроллера:

  1. Скачайте fit-файл прошивки на компьютер.
  2. Зайдите в веб-интерфейс контроллера и перейдите в раздел НастройкиСистема.
  3. Нажмите кнопку Выбрать файл и выберите скачанный ранее fit-файл.
  4. Файл с прошивкой загрузится на контроллер и начнётся обновление, которое длится 5-10 минут. Не закрывайте страницу и не выключайте контроллер до завершения.
  5. После обновления контроллер перезагрузится.

После завершения обновления подключитесь к контроллеру заново и обновите страницу веб-интерфейса в браузере со сбросом кэша (Ctrl+F5 для Chrome), чтобы загрузилась обновленная версия. Проверьте версию прошивки на странице УстройстваSystem.

Прошивка через Debug Network

 
Файл обновления прошивки на съёмном накопителе
 
Разъём Debug Network, USB-C
 
Кнопка FW — переводит контроллер в режим прошивки и подтверждает запросы действий в процессе прошивки

О способе

В контроллере есть разъём Debug Network, который можно использовать для обновления прошивки или удаления всех данных и настроек.

При обновлении сохраняются пользовательские настройки и файлы в разделе /mnt/data, но стороннее ПО будет удалено. Если обновить с удалением пользовательских данных — будут стёрты пользовательские настройки и файлы, а так же установленное ПО. Рекомендуем сделать резервную копию.

Подготовка файла прошивки

 
Cсылка для скачивания FIT-файлов в веб-интерфейсе контроллера Wiren Board

Вам понадобится fit-файл прошивки для вашей версии контроллера:

Другие версии ПО вы найдёте в нашем репозитории.

Также в свежих релизах FIT-файл можно скачать по ссылке в веб-интерфейсе: НастройкиСистема

Переименуйте загруженный файл в wb_update.fit — для обновления, или в wb_update_FACTORYRESET.fit — для удаления данных и сброса к заводским настройкам. Обратите внимание, что .fit — расширение файла, если у вас Windows и отключен показ расширений, то скаченный файл будет без него — не надо его добавлять, просто замените имя до точки.

Процесс

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

Для наглядности можно подключиться к Debug Console, где контроллер будет несколько раз запрашивать в подтверждение тех или иных действий и писать сообщения о ходе процесса.

В инструкции мы будем ориентироваться на звуковые сигналы и подтверждать все запросы:

  1. Начало зависит от аппаратной ревизии контроллера:
    • Для ревизии 7.3:
      1. Переведите выключатель в положение OFF и вытащите кабели из разъёмов Debug Console и Debug Network. Это выключит контроллер.
      2. Зажмите и не отпускайте кнопку FW.
      3. Переведите переключатель в положение ON и тут же вставьте кабель в разъём Debug Network. Если вам нужны логи из дебага, сразу подключите кабель Debug Console.
      4. Подключите к контроллеру внешнее питание — это нужно для того, чтобы при отключении кабеля контроллер корректно прошился.
    • Для ревизии 7.2:
      1. Вставьте кабель в разъём Debug Network. Если нужно, подключите кабель к Debug Console.
      2. Переведите выключатель в положение OFF.
      3. Подключите к контроллеру внешнее питание.
      4. Зажмите и не отпускайте кнопку FW.
      5. Включите контроллер переключателем и продолжайте удерживать кнопку FW.
  2. Держите кнопку FW до короткого звукового сигнала. В Debug Console в этот момент будут строки:
    Press FW button to enter firmware update mode
    # <здесь вы нажали кнопку>
    Entering firmware update mode.
    
  3. Отпустите кнопку FW.
  4. Через несколько секунд на компьютере обнаружится накопитель WB UPDATE, откройте его. В Debug Console в это время будет сообщение:
    Copy .fit file to virtual USB driver and unplug the cable
    
  5. Скопируйте подготовленный .fit-файл на этот накопитель. В Debug Console в это время будут сообщения:
    # приглашение скопировать файл на накопитель
    Copy .fit file to virtual USB driver and unplug the cable
    # <много сообщений с процессом копирования файла>
    
  6. По окончании копирования, отключите накопитель средствами ОС и вытащите кабель Debug Network, начнётся прошивка контроллера. В Debug Console при этом будет сообщение вида:
    Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    Will look for update in USB gadget ramdisk
    
    Will use wb_update.fit from USB gadget (/usb)
    # или, если вы выбрали удаление данных
    Will use wb_update_FACTORYRESET.fit from USB gadget (/usb)
    
  7. Через пару минут контроллер перезагрузится и его индикатор станет равномерно мигать зелёным, а в Debug Console появится приглашение входа: wirenboard-XXXXXXXX login:.

Если в имени файла есть FACTORYRESET, то контроллер издаст продолжительный звуковой сигнал — запрос подтверждения удаления всех данных. В Debug Console будет сообщение: FACTORY RESET REQUESTED. Нажмите и держите кнопку FW, пока контроллер не издаст по очереди четыре коротких звуковых сигнала. Кнопку можно отпустить. Если вы передумали удалять данные — просто выключите контроллер.

Прошивка с помощью USB-флешки или карты Micro-SD

 
Кнопка FW — переводит контроллер в режим прошивки и подтверждает запросы действий в процессе прошивки

О способе

Для обновления прошивки или удаления данных и настроек можно воспользоваться USB-флешкой или картой памяти Micro SD.

Способ удобен, если на компьютере нет интернета и вы используете только встроенное в контроллер ПО.

При обновлении сохраняются пользовательские настройки и файлы в разделе /mnt/data, но стороннее ПО будет удалено. Если обновить с удалением пользовательских данных — будут стёрты пользовательские настройки и файлы, а так же установленное ПО. Рекомендуем сделать резервную копию.

Подготовка файла прошивки

 
Cсылка для скачивания FIT-файлов в веб-интерфейсе контроллера Wiren Board

Вам понадобится fit-файл прошивки для вашей версии контроллера:

Другие версии ПО вы найдёте в нашем репозитории.

Также в свежих релизах FIT-файл можно скачать по ссылке в веб-интерфейсе: НастройкиСистема

Переименуйте загруженный файл в wb_update.fit — для обновления, или в wb_update_FACTORYRESET.fit — для удаления данных и сброса к заводским настройкам. Обратите внимание, что .fit — расширение файла, если у вас Windows и отключен показ расширений, то скаченный файл будет без него — не надо его добавлять, просто замените имя до точки.

Процесс

Для наглядности можно подключиться к Debug Console, где контроллер будет несколько раз запрашивать подтверждение тех или иных действий и писать сообщения о ходе процесса.

В инструкции мы будем ориентироваться на звуковые сигналы и подтверждать все запросы:

  1. Скопируйте подготовленный файл прошивки на флешку или карту памяти и вставьте её в контроллер.
  2. Следующие шаги зависят от аппаратной ревизии контроллера:
    • Для ревизии 7.3:
      1. Переведите выключатель в положение OFF и вытащите кабели из разъёмов Debug Console и Debug Network.
      2. Зажмите и не отпускайте кнопку FW.
      3. Подключите к контроллеру внешнее питание.
      4. Включите контроллер кнопкой и продолжайте удерживать кнопку FW. Если вам нужны логи из дебага, быстро подключите кабель Debug Console.
    • Для ревизии 7.2:
      1. Если нужно, подключите кабель к Debug Console.
      2. Переведите выключатель в положение OFF.
      3. Подключите к контроллеру внешнее питание.
      4. Зажмите и не отпускайте кнопку FW.
      5. Включите контроллер кнопкой и продолжайте удерживать кнопку FW.
  3. Держите кнопку FW до короткого звукового сигнала. Кнопку можно отпустить. В Debug Console в этот момент будут строки:
    Press FW button to enter firmware update mode
    # <здесь вы нажали кнопку>
    Entering firmware update mode.
    
  4. Контроллер попробует найти на подключённой флешке или карте памяти fit-файлы с прошивкой. В Debug Console при этом будут выводится строки:
    Looking for update .fit on /dev/sda...
    Looking for update .fit on /dev/sda1...
    
  5. Если файл будет найден — контроллер издаст два коротких сигнала и перейдёт в режим прошивки. В 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, пока контроллер не издаст по очереди четыре коротких звуковых сигнала. Кнопку можно отпустить. Если вы передумали удалять данные, то просто выключите контроллер.
  6. Через пару минут контроллер перезагрузится и его индикатор станет равномерно мигать зелёным, а в Debug Console появится приглашение входа: wirenboard-XXXXXXXX login:.

Массовая прошивка контроллеров

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

Версия установленного на контроллере ПО не важна, но fit-файл для обновления нужно взять свежий.

Работает это так:

  1. Подготовьте флешку с нужной прошивкой по инструкции выше.
  2. Создайте на этой флешке файл install_update.flags с текстом --mass-update — это включит режим массовой прошивки.
  3. Вставьте флешку в контроллер и прошейте его обычным способом.
  4. На флешке будет создана папка logs с файлами:
    • wb-mass-update.log, в который добавится строчка с серийным номером контроллера, данными о fit-файле (релиз, дата сборки) и сути операции (update/factory reset).
    • wb-console.XXXXXXXX.log, где XXXXXXXX — серийной номер контроллера. В этот файл будет записан полный лог процедуры прошивки.
  5. В конце прошивки контроллер издаст характерный сигнал (тили-ли-ли) — флешку можно извлекать.

Если флешку переставить в другой контроллер и прошить его — в файл wb-mass-update.log будет добавлена новая строчка с серийным номером, а также создастся ещё один файл с логом прошивки контроллера.

Удаление данных и возврат заводских настроек

 
Кнопка FW — переводит контроллер в режим прошивки и подтверждает запросы действий в процессе прошивки

О способе

Процедура удаляет на контроллере все данные: установленное ПО, настройки, пользовательские файлы и восстанавливает заводскую конфигурацию настроек, а также релиз ПО контроллера, который был в момент его выпуска — сделайте резервную копию ваших файлов и настроек.

Процесс

Если у вас установлены USB-флеш, карта MicroSD или воткнут провод в Debug Network — вытащите их.

Для наглядности можно подключиться к Debug Console, где контроллер будет несколько раз запрашивать в подтверждение тех или иных действий и писать сообщения о ходе процесса.

В инструкции мы просто зажмём кнопку FW и автоматом подтвердим все действия:

  1. Начало зависит от аппаратной ревизии контроллера:
    • Для ревизии 7.3:
      1. Переведите выключатель в положение OFF и вытащите кабели из разъёмов Debug Console и Debug Network.
      2. Зажмите и не отпускайте кнопку FW.
      3. Подключите к контроллеру внешнее питание. Если вам нужны логи из дебага, вместо внешнего питания можно подключить кабель Debug Console, контроллер включится автоматически.
      4. Включите контроллер кнопкой и продолжайте удерживать кнопку FW.
    • Для ревизии 7.2:
      1. Если нужно, подключите кабель к Debug Console.
      2. Переведите выключатель в положение OFF.
      3. Подключите к контроллеру внешнее питание.
      4. Зажмите и не отпускайте кнопку FW.
      5. Включите контроллер кнопкой и продолжайте удерживать кнопку FW.
  2. Контроллер издаст короткий звуковой сигнал — это он перешёл в режим обновления прошивки, не отпускайте кнопку FW.
    В Debug Console при этом будет сообщение вида:
    Press FW button to enter firmware update mode
    Entering firmware update mode.
    
  3. Подождите 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
    
  4. Через несколько секунд контроллер спросит подтверждение на удаление всех данных, но так как кнопка у нас уже зажата, то просто прозвучат по очереди четыре коротких звуковых сигнала. После этого сразу начнётся удаление данных, откат версии прошивки к заводской и восстановление заводских настроек.
    В 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!
    
  5. Отпустите кнопку FW.
  6. По окончании процедуры контроллер перезагрузится в рабочем режиме, а его индикатор замигает зелёным.

Вся процедура занимает чуть больше 2 минут. После сброса у вас будет версия прошивки, зашитая в контроллер при производстве — обновите ПО до актуального релиза.

Удаление данных и возврат заводских настроек с обновлением ПО

О способе

Процедура удаляет все данные и установленное ПО! Убедитесь, что у вас останется доступ к контроллеру. Процедура удаляет на контроллере все данные: установленное ПО, настройки, пользовательские файлы и восстанавливает заводскую конфигурацию настроек — сделайте резервную копию ваших файлов и настроек. В отличие от аналогичного способа с кнопкой FW, происходит обновление ПО контроллера до версии, которая используется в выбранном вами fit-файле.

Подготовка файла прошивки

Функция пока доступна только для fit-образов с testing-релизом.

 
Cсылка для скачивания FIT-файлов в веб-интерфейсе контроллера Wiren Board

Вам понадобится fit-файл прошивки для вашей версии контроллера:

Другие версии ПО вы найдёте в нашем репозитории.

Также в свежих релизах FIT-файл можно скачать по ссылке в веб-интерфейсе: НастройкиСистема

Процесс

 
Страница системных настроек в веб-интерфейсе контроллера

Чтобы удалить все данные, сбросить настройки и обновить версии ПО на контроллере:

  1. Скачайте fit-файл по инструкции выше.
  2. Откройте веб-интерфейс контроллера.
  3. Перейдите НастройкиСистема.
  4. Загрузите fit-файл с прошивкой в разделе Удаление данных и сброс настроек (Factory reset) и дождитесь окончания процедуры.
  5. Перезагрузите контроллер.

Заметим, что процедура не заменяет встроенный образ заводского ПО, поэтому вы всегда можете откатиться к нему с помощью кнопки FW. Это позволит вам вернуть заводскую прошивку контроллера, на которой он проходил тесты на стенде и точно стабильно работал.