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

Материал из Wiren Board

В Wiren Board 5 прошивка хранится в напаянном на плате чипе eMMC. В случае проблем с загрузкой контроллера может потребоваться полная перепрошивка, которую можно осуществить через microUSB, загрузив контроллер в режиме USB Mass-Storage Gadget с помощью утилиты mxsldr.

Внимание: в разделе описывается полная перезапись содержимого внутреннего накопителя Wiren Board. Все пользовательские данные будут безвозвратно потеряны. Чтобы избежать потери данных, см. соответствующий раздел.

Пошаговая инструкция для Linux

  1. Скачайте на компьютер файл wb5_usbfw.sb отсюда.
  2. Соберите на компьютере программу mxsldr.
  3. Скачайте на компьютер образ прошивки отсюда (расширение образа .img.zip. При скачивании выберите вариант для вашей версии платы контроллера).
  4. Извлеките файл img из zip-архива.
  5. Выключите контроллер.
  6. Соедините разъём microUSB контроллера (обычно подписан как FW) с портом USB компьютера. Настоятельно рекомендуется также подключить контроллер и по debug-usb для отслеживания процесса прошивки.
  7. Перейдите в папку с собранным mxsldr.
  8. Затем:
    • (для версии WB5.3) замкните перемычку FW рядом с разъёмом microUSB;
    • (для версии WB5.6+) зажмите маленькую кнопку рядом с разъёмом microUSB.
  9. Не снимая перемычку/не отпуская кнопку, подключите к контроллеру питание и сразу запустите на компьютере
    $ sudo ./mxsldr /X/XX/wb5_usbfw.sb
    
    Где /X/XX/wb5_usbfw.sb - это путь к скачанному файлу.
  10. Включите устройство.
    При успешной загрузке образа через несколько секунд замигает зеленый светодиод, память контроллера определится на компьютере как накопитель.
  11. Затем:
    • (для версии WB5.3) снимите пермычку FW;
    • (для версии WB5.6+) отпустите кнопку FW.
  12. Поймите, как в вашей системе определился новый накопитель (например, как /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

для того, чтобы определить, как в системе определился накопитель.

  1. Внимание! Если вы ошибётесь с определением имени накопителя, и в следующем пункте подставите название, соответствующее другому вашему накопителю, его содержимое будет потеряно.
  2. Чтобы записать прошивку в контроллер, замените в команде ниже
    • /X/XX/XXXXX_emmc_wb5.img на путь к заранее распакованному файлу прошивки,
    • /dev/sdX на название раздела, под которым накопитель определился в системе,
    и выполните команду
    $ sudo dd if=/X/XX/XXXXX_emmc_wb5.img of=/dev/sdX bs=1M conv=fdatasync && sync
    
  3. После завершения записи отключите контроллер от USB, отключите питание от контроллера и включите снова.