Wiren Board 5: Восстановление прошивки: различия между версиями

Материал из Wiren Board
м
Строка 1: Строка 1:
<languages/>
<translate>
<!--T:1-->
== Введение ==
== Введение ==
{{YouTube
{{YouTube
|link= https://youtu.be/-soDnTptHhI
|link= https://youtu.be/-soDnTptHhI
|text= Восстановление прошивки контроллера Wiren Board 5.8
|text= Восстановление прошивки контроллера Wiren Board 5.8 из ОС Linux
}}
}}
В Wiren Board 5 прошивка хранится в микросхеме eMMC, напаянной на плату. Чтобы перезалить прошивку, контроллер можно подключить к компьютеру через порт Micro-USB как накопитель и записать на него прошивку.
В Wiren Board 5 прошивка хранится в микросхеме eMMC, напаянной на плату. Чтобы заменить прошивку, контроллер нужно подключить к компьютеру с ОС Linux через порт Micro-USB как накопитель и записать на него прошивку.


'''ВНИМАНИЕ''': при этом способе полностью перезаписывается внутренний накопитель Wiren Board. Все пользовательские данные будут потеряны. Если вы хотите сохранить свои файлы и настройки — сделайте их резервную копию, подключив контроллер к ПК для [[Просмотр_файлов_контроллера_с_компьютера|просмотра файлов]].
'''ВНИМАНИЕ''': при этом способе полностью перезаписывается внутренний накопитель Wiren Board. Все пользовательские данные будут потеряны. Если вы хотите сохранить свои файлы и настройки — сделайте их резервную копию, подключив контроллер к ПК для [[Просмотр_файлов_контроллера_с_компьютера|просмотра файлов]].


Сам принцип обновления таков:
Общий принцип:
С помощью программы '''mxsldr''' мы загружаем непосредственно в процессор контроллера "программу" wb5_usbfw.sb, которая выполняясь на нем дает доступ к внутреннему накопителю как к флешке. То есть внутренний диск доступен целиком. И мы на него записываем "образ", прямо с таблицей разделов и содержимым.
С помощью программы '''mxsldr''' мы загружаем непосредственно в процессор контроллера «программу» wb5_usbfw.sb, которая выполняясь на нем дает доступ к внутреннему накопителю как к флешке. То есть внутренний диск доступен целиком. И мы на него записываем «образ», прямо с таблицей разделов и содержимым.


При возникновении проблем, читайте тему [https://support.wirenboard.com/t/pri-proshivke-wb5-oshibka/7130/44 Если не получается обновить Wiren Board 5.5]
При возникновении проблем, читайте тему [https://support.wirenboard.com/t/pri-proshivke-wb5-oshibka/7130/44 Если не получается обновить Wiren Board 5.5].


== Инструкция для компьютера с Linux == <!--T:3-->
== Подготовка ==
Восстановление прошивки мы будем производить на компьютере с операционной системой Linux, если у вас установлен Windows, то создайте [https://omgubuntu.ru/create-live-usb-of-ubuntu-in-windows/ загрузочную флешку] и используйте её.
# Создайте в любом месте папку '''wbupdate''' и перейдите в неё — сюда мы будем сохранять все файлы.
# Скачайте файлы
#* [https://github.com/wirenboard/wirenboard/raw/9e8ae166e0347dcf1011b9284ed3e397e20b5f91/contrib/u-boot/wb5_usbfw.sb wb5_usbfw.sb]
#* mxsldr:
#** если у вас настольный компьютер с архитектурой amd64, то скачайте [https://wirenboard.com/wiki/images/1/1b/Mxsldr.bin mxsldr.bin]
#** если у вас другое Linux-устрйоство, например Easpberry Pi, то соберите mxsldr по [[Сборка_образа_для_загрузки_в_режиме_USB_Mass-Storage#Сборка mxsldr|инструкции]].
#* Скачайте файл '''.img.zip''' для своей версии контроллера по ссылкам: [https://github.com/contactless/wirenboard/releases старые версии] / [http://fw-releases.wirenboard.com/ свежие версии]
# На компьютере разрешите запуск файла mxsldr.bin:
#:<syntaxhighlight lang="bash">
sudo chmod +x mxsldr
</syntaxhighlight>


<!--T:4-->
== Подключение контроллера ==
#Скачайте в одну папку:
В процессе прошивки у вас будет открыто два окна: окно консоли операционной системы персонального компьютера и окно Debug-консоли контроллера.
#*[https://github.com/wirenboard/wirenboard/raw/9e8ae166e0347dcf1011b9284ed3e397e20b5f91/contrib/u-boot/wb5_usbfw.sb wb5_usbfw.sb];
#*mxsldr:
#** если у вас настольный компьютер/ноутбук, скачайте [[Media:Mxsldr.bin|mxsldr.bin]] (архитектура amd64);
#** если у вас другое устройство с Linux (например, Raspberry Pi), соберите mxsldr по [[Special:MyLanguage/Сборка_образа_для_загрузки_в_режиме_USB_Mass-Storage#Сборка mxsldr|инструкции]].
#*:Переименуйте скачанный или собранный файл в mxsldr;
#*прошивку:
#**на странице [https://github.com/contactless/wirenboard/releases https://github.com/contactless/wirenboard/releases] найдите файл для вашей версии платы с расширением <code>.img.zip</code>, скачайте и разархивируйте.
#**все новые образы расположены [http://fw-releases.wirenboard.com/?prefix=fit_image/stable/ http://fw-releases.wirenboard.com/] найдите файл для вашей версии платы с расширением <code>.img.zip</code>, скачайте и разархивируйте.


#:Все дальнейшие команды выполняйте в этой папке.
# Выключите контроллер.
#Выключите контроллер.
# Соедините оба Micro USB контроллера с компьютером и подключитесь к [[Debug UART | Debug-консоли]].
#Определите тип процессорного модуля: обычный или индустриальный. Для этого посмотрите маркировку чипа памяти на плате процессорного модуля:
# В зависимости от ревизии контроллера:
#*обычная версия: SanDisk,
#* Wiren Board 5.3 замкните перемычку FW рядом с разъёмом Micro USB.
#*индустриальная версия: 6VA18JW983.
#* Wiren Board 5.6 выше — нажмите маленькую кнопку рядом с разъёмом Micro USB.
#Соедините разъём Micro USB контроллера (обычно подписан как FW) с портом USB компьютера. ''Настоятельно рекомендуется также подключить контроллер и по Debug USB для отслеживания процесса прошивки.'' Для industrial версии подключение по Debug USB в процессе прошивки - '''обязательно'''.
# Не снимая перемычку или не размыкая кнопки, включите контроллер.
#Выполните <syntaxhighlight lang="bash">sudo chmod +x mxsldr</syntaxhighlight>
 
#Затем:
# Подождите пять секунд и в консоли компьютера выполните команду
#* (для версии WB5.3) замкните перемычку FW рядом с разъёмом Micro USB;
#: <syntaxhighlight lang="bash">
#* (для версии WB5.6+) зажмите маленькую кнопку рядом с разъёмом Micro USB.
sudo ./mxsldr wb5_usbfw.sb
#Не снимая перемычку/не отпуская кнопку, подключите к контроллеру питание, подождите несколько секунд и запустите на компьютере <syntaxhighlight lang="bash">sudo ./mxsldr wb5_usbfw.sb</syntaxhighlight> <br> Получим при успешном выполнении программы: <br> <syntaxhighlight lang="bash"> Detected: i.MX28  
</syntaxhighlight>
#: пример успешного выполнения команды:
#:<syntaxhighlight lang="console">
$ sudo ./mxsldr wb5_usbfw.sb
Detected: i.MX28  
Chip ID:          0x2800
Chip ID:          0x2800
Chip Revision:    0x0001
Chip Revision:    0x0001
Строка 46: Строка 50:
Protocol Version: 0x0100
Protocol Version: 0x0100
</syntaxhighlight>
</syntaxhighlight>
#При успешной загрузке образа через несколько секунд замигает зеленый светодиод, память контроллера определится на компьютере как накопитель.
# Подождите ещё около 10 секунд, пока индикатор контроллера не начнёт мигать зелёным, а на компьютере не определится флеш-накопитель.
#Затем:
# Узнайте с каким именем в вашей системе определился накопитель контроллера, для этого выполните команду:
#* (для версии WB5.3) снимите пермычку FW;
#:<syntaxhighlight lang="bash">
#* (для версии WB5.6+) отпустите кнопку FW.
dmesg | tail
#Поймите, как в вашей системе определился новый накопитель (например, как ''/dev/sdb''). Это можно посмотреть в выводе
</syntaxhighlight>
#:<syntaxhighlight lang="bash">dmesg | tail</syntaxhighlight>
#: найдите в выводе команды строчку вида <code>[sd*] Write protect is off</code>, где '''sd*''' — имя накопителя контроллера. Если такой строчки нет, то выполните в Debug-консоли контроллера:
#:[[File:Dmesg.png |600px|thumb|center|Вид вывода команды dmesg | tail. Нужный накопитель - /dev/sdb]]
#:<syntaxhighlight lang="bash">
#:Также можно использовать для определения вывод <syntaxhighlight lang="bash">fdisk -l</syntaxhighlight>
/sbin/modprobe g_mass_storage file=/dev/mmcblk0 iManufacturer="Wiren Board" iProduct="Wiren Board"
#:[[File:fdisk_l.png |600px|thumb|center|Вид вывода команды fdisk -l Нужный накопитель - /dev/sdd]]
</syntaxhighlight>
#:''Примечание:''
#: и снова запустите команду <code>dmesg | tail</code>.
#:Если у вас индустриальная версия процессорного модуля и вывод команды не совпадает с указанным на скриншоте (нет устройства вида "sd*"), то нужно открыть Debug консоль контроллера и ввести в неё следующее:  
#:<syntaxhighlight lang="bash">/sbin/modprobe g_mass_storage file=/dev/mmcblk0 iManufacturer="Wiren Board" iProduct="Wiren Board"</syntaxhighlight>
#:затем уже в терминале ПК снова ввести
#:<syntaxhighlight lang="bash">dmesg | tail</syntaxhighlight>  
#:для того, чтобы узнать, как накопитель определился в системе.
#'''Важно!''' Операционная система вашего компьютера может автоматически подмонтировать разделы диска контроллера, которые появятся после выполнения команды ''mxsldr''. В этом случае запись прошивки не выполнится успешно. Перед выполнением следующих пунктов проверьте, что ни один из разделов диска контроллера не смонтирован (командой ''mount'' — в выводе не должны упоминаться диски контроллера вида /dev/sd'''b'''''N'' — как в этом примере), и отмонтируйте все такие смонитрованнные разделы командой ''umount /dev/sdbN''.
#Замените в команде ниже:
#* XXXXX_emmc_wb5.img на название файла прошивки,
#* /dev/sdX на название накопителя, под которым Wiren Board определился в системе. Это должно быть название накопителя, а не раздела - то есть без цифр;
#*: '''ВНИМАНИЕ''': если вы по ошибке подставите название, соответствующее другому вашему накопителю, его содержимое будет потеряно!
#* выполните команду <syntaxhighlight lang="bash">sudo dd if=XXXXX_emmc_wb5.img of=/dev/sdX bs=1M conv=fdatasync && sync</syntaxhighlight>
#После завершения записи отключите кабель Micro-USB от контроллера, а затем отключите и включите питание контроллера.
</translate>


== Инструкция для компьютера с Windows == <!--T:3-->
== Прошивка ==
'''в процессе редактирования'''
'''Важно!''' Операционная система вашего компьютера может автоматически примонтировать разделы диска контроллера, которые появятся после выполнения команды <code>mxsldr</code>. В этом случае запись прошивки не выполнится успешно. Перед выполнением следующих пунктов проверьте, что ни один из разделов диска контроллера не смонтирован (командой mount — в выводе не должны упоминаться диски контроллера вида <code>/dev/sdbN</code> — как в этом примере), и отмонтируйте все такие смонтированные разделы командой <code>umount /dev/sdbN</code>.


<!--T:4-->
Запишем образ прошивки с именем '''firmware.img''' на диск '''/dev/sdX''', замените имя файла и диска не свои:
#Скачайте:
<syntaxhighlight lang="bash">
#*[https://github.com/wirenboard/wirenboard/raw/9e8ae166e0347dcf1011b9284ed3e397e20b5f91/contrib/u-boot/wb5_usbfw.sb wb5_usbfw.sb];
sudo dd if=firmware.img of=/dev/sdX bs=1M conv=fdatasync && sync
#*[https://wirenboard.com/wiki/images/2/23/Mxsldr_win.7z Mxsldr_win.7z]
</syntaxhighlight>
 
После того как запись закончится, в консоли появится приглашение командной строки. Выключите контроллер и отсоедините MicroUSB кабели.  
Остальные действия - такие же.
Прошивка контроллера завершена, после включения контроллер готов к работе.
Пропускаем пункт 5
в пункте 7 Запускать следует sb_loader.exe wb5_usbfw.sb
 
[[Файл:Wb5-firmware_restore_win.png|200px|thumb|center|Запуск при неподключенном контроллере]]
Для заливки образа на контроллер (12 пункт) можно пользоваться вместо '''dd''' (версия под Win включена в архив) программой [https://sourceforge.net/projects/win32diskimager/ win32diskimager]

Версия 16:33, 20 сентября 2021

Введение

Восстановление прошивки контроллера Wiren Board 5.8 из ОС Linux

В Wiren Board 5 прошивка хранится в микросхеме eMMC, напаянной на плату. Чтобы заменить прошивку, контроллер нужно подключить к компьютеру с ОС Linux через порт Micro-USB как накопитель и записать на него прошивку.

ВНИМАНИЕ: при этом способе полностью перезаписывается внутренний накопитель Wiren Board. Все пользовательские данные будут потеряны. Если вы хотите сохранить свои файлы и настройки — сделайте их резервную копию, подключив контроллер к ПК для просмотра файлов.

Общий принцип: С помощью программы mxsldr мы загружаем непосредственно в процессор контроллера «программу» wb5_usbfw.sb, которая выполняясь на нем дает доступ к внутреннему накопителю как к флешке. То есть внутренний диск доступен целиком. И мы на него записываем «образ», прямо с таблицей разделов и содержимым.

При возникновении проблем, читайте тему Если не получается обновить Wiren Board 5.5.

Подготовка

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

  1. Создайте в любом месте папку wbupdate и перейдите в неё — сюда мы будем сохранять все файлы.
  2. Скачайте файлы
  3. На компьютере разрешите запуск файла mxsldr.bin:
    sudo chmod +x mxsldr
    

Подключение контроллера

В процессе прошивки у вас будет открыто два окна: окно консоли операционной системы персонального компьютера и окно Debug-консоли контроллера.

  1. Выключите контроллер.
  2. Соедините оба Micro USB контроллера с компьютером и подключитесь к Debug-консоли.
  3. В зависимости от ревизии контроллера:
    • Wiren Board 5.3 — замкните перемычку FW рядом с разъёмом Micro USB.
    • Wiren Board 5.6 выше — нажмите маленькую кнопку рядом с разъёмом Micro USB.
  4. Не снимая перемычку или не размыкая кнопки, включите контроллер.
  1. Подождите пять секунд и в консоли компьютера выполните команду
    sudo ./mxsldr wb5_usbfw.sb
    
    пример успешного выполнения команды:
    $ sudo ./mxsldr wb5_usbfw.sb
    Detected: i.MX28 
    Chip ID:          0x2800
    Chip Revision:    0x0001
    ROM Version:      0x0101
    Protocol Version: 0x0100
    
  2. Подождите ещё около 10 секунд, пока индикатор контроллера не начнёт мигать зелёным, а на компьютере не определится флеш-накопитель.
  3. Узнайте с каким именем в вашей системе определился накопитель контроллера, для этого выполните команду:
    dmesg | tail
    
    найдите в выводе команды строчку вида [sd*] Write protect is off, где sd* — имя накопителя контроллера. Если такой строчки нет, то выполните в Debug-консоли контроллера:
    /sbin/modprobe g_mass_storage file=/dev/mmcblk0 iManufacturer="Wiren Board" iProduct="Wiren Board"
    
    и снова запустите команду dmesg | tail.

Прошивка

Важно! Операционная система вашего компьютера может автоматически примонтировать разделы диска контроллера, которые появятся после выполнения команды mxsldr. В этом случае запись прошивки не выполнится успешно. Перед выполнением следующих пунктов проверьте, что ни один из разделов диска контроллера не смонтирован (командой mount — в выводе не должны упоминаться диски контроллера вида /dev/sdbN — как в этом примере), и отмонтируйте все такие смонтированные разделы командой umount /dev/sdbN.

Запишем образ прошивки с именем firmware.img на диск /dev/sdX, замените имя файла и диска не свои:

sudo dd if=firmware.img of=/dev/sdX bs=1M conv=fdatasync && sync

После того как запись закончится, в консоли появится приглашение командной строки. Выключите контроллер и отсоедините MicroUSB кабели. Прошивка контроллера завершена, после включения контроллер готов к работе.