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

Материал из Wiren Board
Строка 22: Строка 22:
#* mxsldr:
#* mxsldr:
#** если у вас настольный компьютер с архитектурой amd64, то скачайте [https://wirenboard.com/wiki/images/1/1b/Mxsldr.bin mxsldr.bin]
#** если у вас настольный компьютер с архитектурой amd64, то скачайте [https://wirenboard.com/wiki/images/1/1b/Mxsldr.bin mxsldr.bin]
#** если у вас другое Linux-устрйоство, например Easpberry Pi, то соберите mxsldr по [[Сборка_образа_для_загрузки_в_режиме_USB_Mass-Storage#Сборка mxsldr|инструкции]].
#** если у вас другое Linux-устройство, например Raspberry Pi, то соберите mxsldr по [[Сборка_образа_для_загрузки_в_режиме_USB_Mass-Storage#Сборка mxsldr|инструкции]].
#* Скачайте файл '''.img.zip''' для своей версии контроллера по ссылкам: [https://github.com/contactless/wirenboard/releases старые версии] / [http://fw-releases.wirenboard.com/ свежие версии]
#* Скачайте файл '''.img.zip''' для своей версии контроллера по ссылкам: [https://github.com/contactless/wirenboard/releases старые версии] / [http://fw-releases.wirenboard.com/ свежие версии]
# На компьютере разрешите запуск файла mxsldr.bin:
# На компьютере разрешите запуск файла mxsldr.bin:

Версия 13:26, 22 сентября 2021

Введение

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

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

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

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

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

Подготовка

ПК с ОС Linux

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

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

ПК с ОС Windows

Мы не рекомендуем использовать Windows для прошивки контроллера, но вы можете это сделать одним из способов:

  1. Создайте загрузочную флешку с ОС Linux и используйте её.
  2. Загрузите утилиты для Windows Файл:Mxsldr win.7z и используйте инструкцию для Linux, учитывая особенности ОС Windows. Подробнее читайте на форуме.

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

tail. Нужный накопитель — /dev/sdb

В процессе прошивки у вас будет открыто два окна: окно консоли операционной системы персонального компьютера и окно 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 кабели. Прошивка контроллера завершена, после включения контроллер готов к работе.