16 346
правок
(переписал всё) |
|||
Строка 37: | Строка 37: | ||
Есть несколько способов обновления загрузчика: | Есть несколько способов обновления загрузчика: | ||
=== | === С контроллера Wiren Board === | ||
Загрузчик обновляется из консоли контроллера Wiren Board утилитой [[wb-mcu-fw-updater]], которой для работы нужен доступ в интернет. Если интернета нет, используйте другой способ. | |||
Учитывайте, что утилита учитывает [[ Wiren_Board_Software#Кратко_о_релизах | установленный на контроллер релиз ПО ]], то есть вы не сможете зашить тестовую версию загрузчика, если на контроллере стабильный релиз. | |||
Перед обновлением загрузчика, обновите прошивку контроллера через apt или другим способом по [[Wiren_Board_Software#update |инструкциям]]. | |||
<syntaxhighlight lang="bash"> | ==== Обновление загрузчика одного устройства ==== | ||
Процесс: | |||
# Подключитесь к контроллеру по [[SSH]]. | |||
# Запустите команду, заменив в ней порт и адрес: | |||
#:<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-updater update-bl /dev/ttyRS485-1 -a1 | wb-mcu-fw-updater update-bl /dev/ttyRS485-1 -a1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Утилита считает модель устройства, проверит наличие обновления прошивки загрузчика, скачает обновление и зашьёт его в устройство. | |||
==== Обновление загрузчика всех устройств ==== | |||
Начиная с версии 1.10.8 в | Начиная с версии 1.10.8 утилита wb-mcu-fw-updater умеет в режиме обновление прошивок устройств проверять и версии загрузчика, а потом обновлять его: | ||
# Подключитесь к контроллеру по [[SSH]]. | |||
# Запустите команду: | |||
#:<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-updater update-bl /dev/ttyRS485-1 -a1 | |||
</syntaxhighlight> | |||
# Если есть новые версии загрузчика для устройств, утилита запросит подтверждение на обновление загрузчика, нужно ответить <code>y</code>. Если откажетесь, прошивка обновиться, но загрузчик останется старым. | |||
Пример: | Пример: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
wb-mcu-fw-updater update-all | wb-mcu-fw-updater update-all | ||
Строка 67: | Строка 77: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === С компьютера и других устройств === | ||
==== Установка утилиты ==== | |||
Если у вас нет контроллера Wiren Board или на нём нет интернета, можно обновить загрузчик в ручном режиме утилитой wb-mcu-fw-flasher, которую надо установить по [[wb-mcu-fw-flasher#install|инструкции]]. | |||
==== Чтение сигнатуры ==== | |||
Для начала нам нужно считать сигнатуру устройства, чтобы понимать, какие загрузчик и прошивки нужны: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r290 -c12 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g') | echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r290 -c12 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g') | ||
</syntaxhighlight> | </syntaxhighlight> | ||
В результате на экран будет выведена строка вида <code>mwac0</code> | В результате на экран будет выведена строка вида <code>mwac0</code> — это и есть сигнатура. | ||
==== Скачивание файлов ==== | |||
Чтобы скачать файл с загрузчиком, перейдите по адресу https://fw-releases.wirenboard.com/?prefix=bootloader/by-signature/ ,выберите папку с полученной выше сигнатурой, далее раздел <code>main</code> и скачайте файл <code>latest.wbfw</code>. | |||
Чтобы скачать прошивку, перейдите по адресу https://fw-releases.wirenboard.com/?prefix=fw/by-signature/. ,выберите папку с полученной выше сигнатурой, далее раздел <code>main</code> и скачайте файл <code>latest.wbfw</code>. Если вам необходима конкретная версия прошивки, можно скачать именно её. | |||
<syntaxhighlight lang="bash"> | ==== Прошивка ==== | ||
Теперь, когда файлы обновления загрузчика и прошивки скачаны, их надо зашить в устройство: | |||
# Запустите обновление загрузчика, замените порт <code>/dev/ttyRS485-1</code>, скорость <code>-b</code>, адрес <code>-a</code> и имя файла на свои: | |||
#:<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-flasher -d /dev/ttyRS485-1 -b9600 -a1 -f wb-bootloader-updater_mwac0__1.4.1_master_e676613.wbfw -j | wb-mcu-fw-flasher -d /dev/ttyRS485-1 -b9600 -a1 -f wb-bootloader-updater_mwac0__1.4.1_master_e676613.wbfw -j | ||
</syntaxhighlight> | </syntaxhighlight> | ||
#: утилита сотрёт прошивку и зашьёт новый загрузчик. | |||
# Запустите обновление прошивки, замените порт <code>/dev/ttyRS485-1</code>, скорость <code>-b</code>, адрес <code>-a</code> и имя файла на свои: | |||
#: <syntaxhighlight lang="bash"> | |||
<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-flasher -d /dev/ttyRS485-1 -b9600 -a1 -f mwac0__1.21.1_main_ac00010.wbfw | wb-mcu-fw-flasher -d /dev/ttyRS485-1 -b9600 -a1 -f mwac0__1.21.1_main_ac00010.wbfw | ||
</syntaxhighlight> | </syntaxhighlight> | ||
#: так как устройство со стёртой прошивкой находится в загрузчике, то в команде выше нет ключа <code>-j</code>. | |||
Более подробно про ручное обновление прошивки читайте в статье [[ WB_Modbus_Devices_Firmware_Update#Ручное_обновление | Обновление прошивки Modbus-устройств Wiren Board ]] | Более подробно про ручное обновление прошивки читайте в статье [[ WB_Modbus_Devices_Firmware_Update#Ручное_обновление | Обновление прошивки Modbus-устройств Wiren Board ]] |