Wiren Board 5: Восстановление прошивки

Материал из Wiren Board
Другие языки:

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

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

Инструкция для компьютера с 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
    
  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 от контроллера, а затем отключите и включите питание контроллера.