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

Материал из Wiren Board
(Добавил пример вывода mxsldr wb5_usbfw.sb)
Строка 31: Строка 31:
#* (для версии WB5.3) замкните перемычку FW рядом с разъёмом Micro USB;
#* (для версии WB5.3) замкните перемычку FW рядом с разъёмом Micro USB;
#* (для версии WB5.6+) зажмите маленькую кнопку рядом с разъёмом Micro USB.
#* (для версии WB5.6+) зажмите маленькую кнопку рядом с разъёмом Micro USB.
#Не снимая перемычку/не отпуская кнопку, подключите к контроллеру питание, подождите несколько секунд и запустите на компьютере <syntaxhighlight lang="bash">sudo ./mxsldr wb5_usbfw.sb</syntaxhighlight>
#Не снимая перемычку/не отпуская кнопку, подключите к контроллеру питание, подождите несколько секунд и запустите на компьютере <syntaxhighlight lang="bash">sudo ./mxsldr wb5_usbfw.sb</syntaxhighlight> <br> Получим при успешном выполнении программы: <br> <syntaxhighlight lang="bash"> Detected: i.MX28
Chip ID:          0x2800
Chip Revision:    0x0001
ROM Version:      0x0101
Protocol Version: 0x0100
</syntaxhighlight>
#При успешной загрузке образа через несколько секунд замигает зеленый светодиод, память контроллера определится на компьютере как накопитель.
#При успешной загрузке образа через несколько секунд замигает зеленый светодиод, память контроллера определится на компьютере как накопитель.
#Затем:
#Затем:

Версия 15:13, 21 февраля 2021

Другие языки:

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

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

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

Инструкция для компьютера с Linux

  1. Скачайте в одну папку:
    • wb5_usbfw.sb;
    • mxsldr:
      • если у вас настольный компьютер/ноутбук, скачайте mxsldr.bin (архитектура amd64);
      • если у вас другое устройство с Linux (например, Raspberry Pi), соберите mxsldr по инструкции.
      Переименуйте скачанный или собранный файл в mxsldr;
    • прошивку:
    Все дальнейшие команды выполняйте в этой папке.
  2. Выключите контроллер.
  3. Определите тип процессорного модуля: обычный или индустриальный. Для этого посмотрите маркировку чипа памяти на плате процессорного модуля:
    • обычная версия: SanDisk,
    • индустриальная версия: 6VA18JW983.
  4. Соедините разъём Micro USB контроллера (обычно подписан как FW) с портом USB компьютера. Настоятельно рекомендуется также подключить контроллер и по Debug USB для отслеживания процесса прошивки. Для industrial версии подключение по Debug USB в процессе прошивки - обязательно.
  5. Выполните
    sudo chmod +x mxsldr
    
  6. Затем:
    • (для версии WB5.3) замкните перемычку FW рядом с разъёмом Micro USB;
    • (для версии WB5.6+) зажмите маленькую кнопку рядом с разъёмом Micro USB.
  7. Не снимая перемычку/не отпуская кнопку, подключите к контроллеру питание, подождите несколько секунд и запустите на компьютере
    sudo ./mxsldr wb5_usbfw.sb
    

    Получим при успешном выполнении программы:
     Detected: i.MX28 
    Chip ID:          0x2800
    Chip Revision:    0x0001
    ROM Version:      0x0101
    Protocol Version: 0x0100
    
  8. При успешной загрузке образа через несколько секунд замигает зеленый светодиод, память контроллера определится на компьютере как накопитель.
  9. Затем:
    • (для версии WB5.3) снимите пермычку FW;
    • (для версии WB5.6+) отпустите кнопку FW.
  10. Поймите, как в вашей системе определился новый накопитель (например, как /dev/sdb). Это можно посмотреть в выводе
    dmesg | tail
    
    tail. Нужный накопитель - /dev/sdb
    Примечание:
    Если у вас индустриальная версия процессорного модуля и вывод команды не совпадает с указанным на скриншоте (нет устройства вида "sd*"), то нужно открыть Debug консоль контроллера и ввести в неё следующее:
    /sbin/modprobe g_mass_storage file=/dev/mmcblk0 iManufacturer="Wiren Board" iProduct="Wiren Board"
    
    затем уже в терминале ПК снова ввести
    dmesg | tail
    
    для того, чтобы узнать, как накопитель определился в системе.
  11. Важно! Операционная система вашего компьютера может автоматически подмонтировать разделы диска контроллера, которые появятся после выполнения команды mxsldr. В этом случае запись прошивки не выполнится успешно. Перед выполнением следующих пунктов проверьте, что ни один из разделов диска контроллера не смонтирован (командой mount — в выводе не должны упоминаться диски контроллера вида /dev/sdbN — как в этом примере), и отмонтируйте все такие смонитрованнные разделы командой umount /dev/sdbN.
  12. Замените в команде ниже:
    • XXXXX_emmc_wb5.img на название файла прошивки,
    • /dev/sdX на название накопителя, под которым Wiren Board определился в системе. Это должно быть название накопителя, а не раздела - то есть без цифр;
      ВНИМАНИЕ: если вы по ошибке подставите название, соответствующее другому вашему накопителю, его содержимое будет потеряно!
    • выполните команду
      sudo dd if=XXXXX_emmc_wb5.img of=/dev/sdX bs=1M conv=fdatasync && sync
      
  13. После завершения записи отключите кабель Micro-USB от контроллера, а затем отключите и включите питание контроллера.

Инструкция для компьютера с Windows

в процессе редактирования

  1. Скачайте:

Остальные действия - такие же. Пропускаем пункт 5 в пункте 7 Запускать следует sb_loader.exe wb5_usbfw.sb

Запуск при неподключенном контроллере

Для заливки образа на контроллер (12 пункт) можно пользоваться вместо dd (версия под Win включена в архив) программой win32diskimager