Wiren Board 6 Firmware Update: различия между версиями

Материал из Wiren Board
(не показаны 42 промежуточные версии 3 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE: Обновление прошивки контроллеров Wiren Board 6.x }}
{{Draft}}
{{DISPLAYTITLE: Обновление прошивки контроллера Wiren Board 6 }}
== Общая информация ==
== Общая информация ==
{{Anchor|info}}
=== Для кого эта инструкция ===
{{YouTube
Инструкции в этой статье работают на контроллерах '''Wiren Board 6''', если у вас другая ревизия контроллера, смотрите:
|link=https://youtu.be/2XhPWDzYSmY
* [[Wiren Board 7 Firmware Update | Обновление прошивки Wiren Board 7]].
|text= Обновление ПО контроллера Wiren Board 7
* [[#Обновление прошивки контроллеров старых ревизий| Обновление прошивки контроллеров старых ревизий]].
}}
=== Совместимость ===
{{Anchor|compatibility}}
{{Wbincludes:Update Compatibility
|model= Wiren Board 6
|link= Wiren Board 6
}}
=== Как всё устроено ===
{{Wbincludes:Firmware Update How Everything Works}}


=== Релизы ===
=== Краткая информация о релизах ===
{{Wbincludes:Wiren Board Software Releases}}
[[Image: System Information.png |300px|thumb|right| Версия ПО в веб-интерфейсе контроллера<br>''WebUI'' → ''Devices'' → ''System'']]
ПО контроллера выпускается в формате релизов:
* '''Stable''' — стабильный релиз: обновление пакетов раз в три месяца и исправления критических ошибок.
* '''Testing''' — нестабильный релиз: свежие версии пакетов с новыми функциями, а так же исправленными и новыми ошибками.


== Пользовательские настройки и файлы ==
С завода на контроллерах Wiren Board установлен актуальный на момент производства stable-релиз.
{{Anchor|user-files}}
{{Wbincludes:Wiren Board User Settings And Files}}


== Проверка обновлений ==
Узнать, какой у вас сейчас релиз можно в веб-интерфейсе контроллера в разделе '''Devices''' в карточке устройства '''System'''. Если в веб-интерфейсе нет упоминания о testing или stable — перейдите на новый репозиторий.
{{Wbincludes:Wiren Board Check Firmware Update}}


== Обновление в консоли через apt==
=== Переключение между релизами ===
{{Anchor|apt}}
Между релизами можно переключаться, так же можно заморозить контроллер на определённом релизе — это может быть полезно на ответственных инсталляциях.
[[Image: Dialog.png |400px|thumb|right| Окно ''Modified configuration Files'']]
{{note|note|Рекомендуемый способ. Если последний раз ПО контроллера обновлялось до апреля 2021 года, то сперва вам нужно перейти на релизы, для этого [[New_repository_April_2021 | смените репозиторий]].}}


Если вы обновляетесь с релиза wb-2207 и более раннего через apt, то прочитайте сперва описание известных проблем, с которыми вы столкнётесь: [[WB_6:_Errata#ERRWB600022 |Wiren Board 6: ERRWB600022]].
Для переключения и фиксации используйте утилиту <code>wb-release</code> с флагом <code>-t</code> и именем релиза: ''testing'', ''stable'' или ''wb-xxxx'', где ''xxx'' — номер.Например, для переключения на ''testing'' нужно выполнить команду:
 
<syntaxhighlight lang="bash">
Важно! В релизе wb-2304 сменилась версия Debian, поэтому при переходе со старых релизов wb-21**/wb-22** надо ввести дополнительную команду ([[wb-2304|подробнее]]):
wb-release -t testing
:<syntaxhighlight lang="bash">
wb-release --update-debian-release
</syntaxhighlight>
</syntaxhighlight>


{{Wbincludes:Wiren Board Apt Firmware Update}}
=== Журнал изменений в релизах ===
{{Wbincludes:Release Log}}


=== Решение проблем при обновлении со Stretch на Bullseye ===
=== Скачать файлы прошивки ===
{{Wbincludes:Bullseye Errata}}
Для обновления через веб-интерфейс или с USB-флешки вам понадобится fit-файл прошивки, который можно скачать в нашем [http://fw-releases.wirenboard.com/?prefix=fit_image/stable/ репозитории] или по прямым ссылкам на stable-релиз:
* [http://fw-releases.wirenboard.com/fit_image/stable/6x/latest_stretch.fit Wiren Board 6.3­-6.6.0],
* [http://fw-releases.wirenboard.com/fit_image/stable/67/latest_stretch.fit Wiren Board 6.7.x-6.9.x].


== Обновление через веб-интерфейс==
== Пользовательские настройки и файлы ==
{{Anchor|web-ui}}
{{Wbincludes:Firmware Update Save Data}}
{{note|note|Этим способом можно обновить текущий релиз более новым, или перейти со stable на testing. Для перехода на старый релиз используйте процедуру удаления данных, описанную в конце этой страницы.}}


=== Скачивание прошивки ===
== Обновление стабильного релиза ==
{{Wbincludes:Fit Files Wiren Board 6}}


=== Процесс ===
=== В консоли через apt ===
{{note|info|Если у вас на контроллере релиз wb-2307 и новее, а на самом контроллере корневой раздел 1 Гбайт, то его [[Enlarging_the_rootfs_partition|можно увеличить]].}}
{{note|note|Мы рекомендуем этот способ}}
{{Wbincludes:Wiren Board WebUI Firmware Update}}
{{Wbincludes:Wiren Board Apt firmware update}}


== Прошивка с помощью USB-флешки ==
===  Через веб-интерфейс ===
Для обновления прошивки или удаления данных и настроек можно воспользоваться USB-флешкой или картой памяти Micro SD.
{{Wbincludes:WebUI Wiren Board Firmware Update}}


Способ удобен, если на компьютере нет интернета и вы используете только встроенное в контроллер ПО.
=== С помощью USB-флешки ===
{{Wbincludes:USB Wiren Board 6 Firmware Update}}
<gallery mode="packed" widths ="200px" heights="250px" caption="Сообщения в Debug-консоли">
Image: 2 update.png | Момент, когда нужно нажать кнопку FW на 1 секунду для начала обновления
Image: 4 update.png | Обновление прошивки началось
</gallery>


{{Wbincludes:Wiren Board 7 Firmware Update Fit Save Data}}
== Обновление нестабильного релиза ==


=== Подготовка файла прошивки ===
=== В консоли через apt ===
{{Wbincludes:Fit Files Wiren Board 6}}
{{Wbincludes:Wiren Board Apt firmware update}}


'''Подготовьте флеш-накопитель''':
== Удаление данных и возврат заводских настроек ==
# [[Formatting Flash Drive | Отформатируйте флешку в FAT32]].
{{Wbincludes:USB Wiren Board 6 Firmware Update|ractory_reset=true}}
# Скачайте fit-файл прошивки на компьютер.
# Скопируйте скачанный ''.fit''-файл в корень флешки и убедитесь, что размер файла не равен нулю.
# Переименуйте файл на флешке в <code>wb6_update.fit</code> — для обновления, или в <code>wb6_update_FACTORYRESET.fit</code> — для удаления данных и сброса к заводским настройкам.
 
=== Процесс ===
[[Image: WB6.7 USB1 + FW.png |400px|thumb|right| Порт '''USB 1''' и кнопка '''FW''' на контроллере Wiren Board 6.7]]
В процессе контроллер будет несколько раз запрашивать в [[WB Debug Console | Debug-консоли]] подтверждение тех или иных действий, но чтобы не подключаться к ней, мы будем ориентироваться по светодиоду и звуковым сигналам. Действия подтверждаются нажатием на кнопку '''FW'''.
 
Чтобы обновить прошивку:
# Подключите к контроллеру внешнее питание.
# Выключите контроллер кнопкой.
# Подключите флешку с файлом прошивки к порту '''USB 1'''.
# Включите кнопкой контроллер.
# В течение первых 5 секунд зажмите кнопку FW, которая находится возле антенны Wi-Fi.
# Дождитесь, пока контроллер не пикнет один раз и отпустите кнопку.
# Следующий шаг зависит от того, с каким именем файл вы положили на флешку:
#* <code>wb6_update.fit</code>, контроллер два раза пикнет и начнёт прошивку.
#* <code>wb6_update_FACTORYRESET.fit</code>,
#*# Контроллер два раза пикнет и потом издаст продолжительный писк, а индикатор загорится красным.
#*# Зажмите кнопку FW и держите, пока контроллер не пикнет коротко четыре раза. После кнопку можно отпустить.
#* Если никакой файл не будет найден — контроллер загрузит текущую операционную систему.
# В процессе индикатор будет несколько раз менять свой цвет.
 
Процедура продлится 5–10 минут, в конце контроллер перезагрузится в рабочий режим, а индикатор на нём замигает зелёным — флешку можно извлечь.
 
<gallery mode="packed" widths ="200px" heights="250px" caption="Сообщения в Debug-консоли при обновлении прошивки">
Image: 2 update.png | Момент, когда нужно нажать кнопку FW на 1 секунду для начала обновления
Image: 4 update.png | Обновление прошивки началось
</gallery>


<gallery mode="packed" widths ="200px" heights="250px" caption="Сообщения в Debug-консоли при удалении настроек">
<gallery mode="packed" widths ="200px" heights="250px" caption="Сообщения в Debug-консоли">
Image: 1 factory reset.png | Момент, когда нужно кратковременно нажать кнопку FW для удаления данных
Image: 1 factory reset.png | Момент, когда нужно кратковременно нажать кнопку FW для удаления данных
Image: 2 factory reset.png | Момент, когда нужно на 4 секунды нажать кнопку FW для подтверждения удаления данных настройкам
Image: 2 factory reset.png | Момент, когда нужно на 4 секунды нажать кнопку FW для подтверждения удаления данных настройкам
Строка 101: Строка 66:
</gallery>
</gallery>


=== Решение проблем ===
{{Wbincludes:WebUI Wiren Board Releases}}
Если возникнут проблемы с обновлением, подключитесь к [[WB_Debug_Console | Debug Console]] контроллера и повторите обновление. Если увидите ошибку <code>FAT: Misaligned buffer address</code> — возможно следует попробовать другой накопитель. Для контроллеров если происходит перезагрузка в процессе обновления  6.7-6.9 может потребоваться обновление загрузчика командой <code>u-boot-install-wb</code> Так же можно посмотреть в [[WB_6:_Errata]], так как в некоторых ревизиях контроллера была проблема с определением флешки.
 
Также обратите внимание, что .fit в имени файла прошивки — это расширение. Если файл не находится, то проверьте, что у вас он верно назван.
 
=== Массовая прошивка контроллеров ===
{{Wbincludes:Mass flashing from flash}}
 
== Удаление данных и возврат заводских настроек с обновлением ПО ==
{{SupportedSinceRelease
| release = wb-2401
|content=
 
<h3> О способе </h3>
{{note|warn|Процедура удаляет все данные и установленное ПО! Убедитесь, что у вас останется доступ к контроллеру.}}
Процедура удаляет на контроллере все данные: установленное ПО, настройки, пользовательские файлы и восстанавливает заводскую конфигурацию настроек — сделайте резервную копию ваших файлов и настроек.
 
<h3> Подготовка файла прошивки </h3>
{{note|info| Функция пока доступна только для fit-образов с testing-релизом.}}
[[Image: fit-link.png|250px|thumb|right| Cсылка для скачивания FIT-файлов в веб-интерфейсе контроллера Wiren Board]]
 
Вам понадобится fit-файл прошивки для вашей версии контроллера, свежие образы stable-релиза находятся по ссылкам: [https://fw-releases.wirenboard.com/fit_image/stable/6x/latest.fit Wiren Board 6.3–6.6.0], [https://fw-releases.wirenboard.com/fit_image/stable/67/latest.fit Wiren Board 6.7.x–6.9.x];
 
Образы testing и старые версии ПО вы найдёте в [https://fw-releases.wirenboard.com/?prefix=fit_image/ нашем репозитории].
 
Начиная с релиза wb-2304 ссылка для скачивания FIT-файлов доступна в веб-интерфейсе в разделе '''Настройки''' → '''Система'''.
 
<h3> Процесс </h3>
[[Image: FactoryReset WebUI.png|thumb|right|Страница системных настроек в веб-интерфейсе контроллера]]
Чтобы удалить все данные, сбросить настройки и обновить версии ПО на контроллере:
# Скачайте fit-файл по инструкции выше.
# Откройте веб-интерфейс контроллера.
# Перейдите '''Настройки''' → '''Система'''.
# Загрузите fit-файл с прошивкой в разделе '''Удаление данных и сброс настроек (Factory reset)''' и дождитесь окончания процедуры.
# Перезагрузите контроллер.
}}

Версия 13:46, 16 марта 2022

Это черновик страницы. Последняя правка сделана 16.03.2022 пользователем A.Degtyarev.

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

Для кого эта инструкция

Инструкции в этой статье работают на контроллерах Wiren Board 6, если у вас другая ревизия контроллера, смотрите:

Краткая информация о релизах

Версия ПО в веб-интерфейсе контроллера
WebUIDevicesSystem

ПО контроллера выпускается в формате релизов:

  • Stable — стабильный релиз: обновление пакетов раз в три месяца и исправления критических ошибок.
  • Testing — нестабильный релиз: свежие версии пакетов с новыми функциями, а так же исправленными и новыми ошибками.

С завода на контроллерах Wiren Board установлен актуальный на момент производства stable-релиз.

Узнать, какой у вас сейчас релиз можно в веб-интерфейсе контроллера в разделе Devices в карточке устройства System. Если в веб-интерфейсе нет упоминания о testing или stable — перейдите на новый репозиторий.

Переключение между релизами

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

Для переключения и фиксации используйте утилиту wb-release с флагом -t и именем релиза: testing, stable или wb-xxxx, где xxx — номер.Например, для переключения на testing нужно выполнить команду:

wb-release -t testing

Журнал изменений в релизах

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

Скачать файлы прошивки

Для обновления через веб-интерфейс или с USB-флешки вам понадобится fit-файл прошивки, который можно скачать в нашем репозитории или по прямым ссылкам на stable-релиз:

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

Wbincludes:Firmware Update Save Data

Обновление стабильного релиза

В консоли через apt

Мы рекомендуем этот способ Wbincludes:Wiren Board Apt firmware update

Через веб-интерфейс

Wbincludes:WebUI Wiren Board Firmware Update

С помощью USB-флешки

Wbincludes:USB Wiren Board 6 Firmware Update

Обновление нестабильного релиза

В консоли через apt

Wbincludes:Wiren Board Apt firmware update

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

Wbincludes:USB Wiren Board 6 Firmware Update

Внимание: Отображаемое название «Программное обеспечение контроллеров Wiren Board» переопределяет ранее заданное отображаемое название «Обновление прошивки контроллера Wiren Board 6».

Как устроено ПО Wiren Board

Структура ПО контроллера. В центре очередь сообщений MQTT, которая используется для обмена информацией между разными частями ПО

Wiren Board работает под управлением Debian Linux. Для архитектуры используемого процессора есть официальный порт, поэтому любое стандартное Linux-приложение можно установить из репозитория одной командой apt install имя_пакета.

Все сервисы контроллера общаются между собой по общей «шине», в роли которой выступает Очередь сообщений MQTT.

По умолчанию установлены Веб-интерфейс Wiren Board, Движок правил wb-rules, а также драйвера и вспомогательные утилиты.

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

Разработка своих решений

Вы можете разрабатывать своё ПО для контроллеров Wiren Board или собрать собственный образ прошивки с нужными вам настройками, лицензиями и пакетами. Свой образ прошивки можно установить в контроллеры самостоятельно штатными средствами, или мы можем делать это сразу на производстве при заказе отдельной партии.

Исходный код программного обеспечения контроллера доступен на GitHub. Там можно почерпнуть примеры для разработки собственного ПО.

Статьи:

Обновление прошивки и релизный цикл

Кратко о релизах

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

Программное обеспечение контроллеров Wiren Board состоит из множества пакетов, которые мы объединяем в релизы:

  • Stable — стабильный релиз: обновление пакетов раз в три месяца и исправления критических ошибок. Рекомендуем для инсталляций, которые делает интегратор и которые работают сейчас.
  • Testing — тестовый релиз: свежие версии пакетов с новыми функциями и исправлениями, но возможно и с новыми ошибками. Рекомендуем для активных пользователей (DIY), для инсталляций на стадии стройки и проектирования.

Стабильные релизы имеют номер вида wb-YYMM, где YY — год, а MM — месяц выпуска. Например, wb-2104 — релиз, выпущенный в апреле 2021 года.

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

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

Какой релиз на вашем контроллере

Версия ПО в веб-интерфейсе контроллера
WebUIDevicesSystem

С завода на контроллерах Wiren Board установлен актуальный на момент производства стабильный релиз.

Узнать версию релиза можно в веб-интерфейсе контроллера в разделе Устройства в карточке устройства System или в консоли командой wb-release.

Переключение между релизами

Между релизами можно переключаться вручную. Сделайте резервную копию настроек, подключитесь к контроллеру через SSH и выполните одну из команд:

  • Переход со стабильного на тестовый:
    wb-release -t testing
    
  • Переход с тестового на стабильный:
    wb-release -t stable
    

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

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

Обновление прошивки контроллера и откат к заводским настройкам

Прошивку контроллера можно обновить или вернуть его к заводскому состоянию с удалением всех данных.

Все ревизии контроллера можно обновить через менеджер пакетов apt или веб-интерфейс, а в относительно свежих добавилась возможность обновления с флеш-накопителя и через Debug Network.

Инструкции:

Список сервисов и их назначение

Список сервисов, запущенных на контроллере, их статус и описание можно получить командой:

systemctl list-units --type=service

Про управление сервисами читайте в статье Диагностика ошибок в работе контроллера.

Имя сервиса Описание
avahi-daemon.service Avahi mDNS/DNS-SD Stack
bluetooth.service Bluetooth service
cgmanager.service Cgroup management daemon
cron.service Regular background program processing daemon
dbus.service D-Bus System Message Bus
dnsmasq.service dnsmasq - A lightweight DHCP and caching DNS server
getty@tty1.service Getty on tty1
hostapd.service LSB: Advanced IEEE 802.11 management daemon
kmod-static-nodes.service Create list of required static device nodes for the current kernel
knxd.service KNX Daemon
mosquitto.service Mosquitto MQTT v3.1/v3.1.1 Broker
netplug.service LSB: Brings up/down network automatically
networking.service Raise network interfaces
nginx.service A high performance web server and a reverse proxy server
ntp.service LSB: Start NTP daemon
rsyslog.service System Logging Service
serial-getty@ttymxc0.service Serial Getty on ttymxc0
ssh.service OpenBSD Secure Shell server
systemd-fsck-root.service File System Check on Root Device
systemd-fsck@dev-mmcblk0p6.service File System Check on /dev/mmcblk0p6
systemd-journal-flush.service Flush Journal to Persistent Storage
systemd-journald.service Journal Service
systemd-logind.service Login Service
systemd-modules-load.service Load Kernel Modules
systemd-random-seed.service Load/Save Random Seed
systemd-modules-load.service Load Kernel Modules
systemd-random-seed.service Load/Save Random Seed
systemd-remount-fs.service Remount Root and Kernel File Systems
systemd-sysctl.service Apply Kernel Variables
systemd-tmpfiles-setup-dev.service Create Static Device Nodes in /dev
systemd-tmpfiles-setup.service Create Volatile Files and Directories
systemd-udev-trigger.service udev Coldplug all Devices
systemd-udevd.service udev Kernel Device Manager
systemd-update-utmp.service Update UTMP about System Boot/Shutdown
systemd-user-sessions.service Permit User Sessions
user@0.service User Manager for UID 0
watchdog.service watchdog daemon
wb-configs-early.service prepare mounts and symlinks to config files
wb-configs.service watch config files
wb-gsm-rtc.service LSB: initscript to use GSM modem integrated RTC
wb-homa-ism-radio.service LSB: MQTT driver for WB HomA for RFM69 ISM radio
wb-hwconf-manager.service LSB: Hardware configuration with Device Tree overlays
wb-init.service LSB: board-specific initscript
wb-mqtt-adc.service MQTT Driver for ADC
wb-mqtt-confed.service LSB: Configuration Editor Backend
wb-mqtt-db.service Wiren Board database logger
wb-mqtt-gpio.service MQTT Driver for GPIO-controlled switches
wb-mqtt-knx.service LSB: : Wiren Board MQTT KNX bridge
wb-mqtt-logs.service Wiren Board journald to MQTT gateway
wb-mqtt-mbgate.service Wiren Board MQTT to Modbus TCP gateway
wb-mqtt-opcua.service Wiren Board MQTT to OPC UA gateway
wb-mqtt-serial.service MQTT Driver for serial devices
wb-mqtt-w1.service Kernel 1-Wire MQTT driver for WB-HomA
wb-prepare.service initialize filesystems at first boot
wb-repart.service prepare partitions at first boot
wb-rules.service MQTT Rule engine for Wiren Board
wb-systime-adjust.service Compensation of systime in PPM from value, stored in device-tree (with opposite sign)
wb-watch-update.service LSB: Firmware update monitor