Wiren Board 5: Recovery: различия между версиями
м (→ПК с ОС Linux) |
|||
(не показано 7 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
== Введение == | == Введение == | ||
{{ | {{YouTube | ||
| link= https:// | |link= https://youtu.be/-soDnTptHhI | ||
| text= | |text= Восстановление прошивки контроллера Wiren Board 5.8 из ОС Linux | ||
}} | }} | ||
В Wiren Board 5 прошивка хранится в микросхеме eMMC, напаянной на плату. Чтобы заменить прошивку, контроллер нужно подключить к компьютеру с ОС Linux через порт Micro-USB как накопитель и записать на него прошивку. | В Wiren Board 5 прошивка хранится в микросхеме eMMC, напаянной на плату. Чтобы заменить прошивку, контроллер нужно подключить к компьютеру с ОС Linux через порт Micro-USB как накопитель и записать на него прошивку. | ||
Строка 25: | Строка 24: | ||
#** если у вас другое Linux-устройство, например Raspberry 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/ свежие версии] и распакуйте образ из архива. | ||
# На компьютере разрешите запуск файла <code> | # На компьютере разрешите запуск файла <code>Mxsldr.bin</code>, для этого откройте консоль, перейдите в папку со скачанными файлами и выполните: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
sudo chmod +x ./mxsldr | sudo chmod +x ./mxsldr | ||
Строка 36: | Строка 35: | ||
== Подключение контроллера == | == Подключение контроллера == | ||
[[Image: Dmesg.png|400px|thumb|right| Вид вывода команды <code> | [[Image: Dmesg.png|400px|thumb|right| Вид вывода команды <code>dmesg | tail</code>. Нужный накопитель — '''/dev/sdb''']] | ||
В процессе прошивки у вас будет открыто два окна: окно консоли операционной системы персонального компьютера и окно Debug-консоли контроллера. | В процессе прошивки у вас будет открыто два окна: окно консоли операционной системы персонального компьютера и окно Debug-консоли контроллера. | ||
Строка 62: | Строка 61: | ||
# Узнайте с каким именем в вашей системе определился накопитель контроллера, для этого выполните команду: | # Узнайте с каким именем в вашей системе определился накопитель контроллера, для этого выполните команду: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
dmesg | tail | |||
</syntaxhighlight> | </syntaxhighlight> | ||
#: найдите в выводе команды строчку вида <code>[sd*] Write protect is off</code>, где '''sd*''' — имя накопителя контроллера. Если такой строчки нет, то выполните в Debug-консоли контроллера: | #: найдите в выводе команды строчку вида <code>[sd*] Write protect is off</code>, где '''sd*''' — имя накопителя контроллера. Если такой строчки нет, то выполните в Debug-консоли контроллера: | ||
Строка 71: | Строка 70: | ||
== Прошивка == | == Прошивка == | ||
'''Важно!''' Операционная система вашего компьютера может автоматически примонтировать разделы диска контроллера, которые появятся после выполнения команды <code>mxsldr</code>. В этом случае запись прошивки не выполнится успешно. Перед выполнением следующих пунктов проверьте, что ни один из разделов диска контроллера не смонтирован (командой mount — в выводе не должны упоминаться диски контроллера вида <code>/dev/sdbN</code> — как в этом примере), и отмонтируйте все такие смонтированные разделы командой <code>umount /dev/sdbN</code>. | '''Важно!''' Операционная система вашего компьютера может автоматически примонтировать разделы диска контроллера, которые появятся после выполнения команды <code>mxsldr</code>. В этом случае запись прошивки не выполнится успешно. Перед выполнением следующих пунктов проверьте, что ни один из разделов диска контроллера не смонтирован (командой mount — в выводе не должны упоминаться диски контроллера вида <code>/dev/sdbN</code> — как в этом примере), и отмонтируйте все такие смонтированные разделы командой <code>umount /dev/sdbN</code>. | ||
Строка 78: | Строка 76: | ||
sudo dd if=firmware.img of=/dev/sdX bs=1M conv=fdatasync && sync | sudo dd if=firmware.img of=/dev/sdX bs=1M conv=fdatasync && sync | ||
</syntaxhighlight> | </syntaxhighlight> | ||
После того как запись закончится, в консоли появится приглашение командной строки. Выключите контроллер и отсоедините MicroUSB кабели. | После того как запись закончится, в консоли появится приглашение командной строки. Выключите контроллер и отсоедините MicroUSB кабели. | ||
Прошивка контроллера завершена, после включения контроллер готов к работе. | Прошивка контроллера завершена, после включения контроллер готов к работе. |
Версия 13:37, 22 сентября 2021
Введение
В Wiren Board 5 прошивка хранится в микросхеме eMMC, напаянной на плату. Чтобы заменить прошивку, контроллер нужно подключить к компьютеру с ОС Linux через порт Micro-USB как накопитель и записать на него прошивку.
ВНИМАНИЕ: при этом способе полностью перезаписывается внутренний накопитель Wiren Board. Все пользовательские данные будут потеряны. Если вы хотите сохранить свои файлы и настройки — сделайте их резервную копию, подключив контроллер к ПК для просмотра файлов.
Общий принцип: С помощью программы mxsldr мы загружаем непосредственно в процессор контроллера «программу» wb5_usbfw.sb, которая выполняясь на нем дает доступ к внутреннему накопителю как к флешке. То есть внутренний диск доступен целиком. И мы на него записываем «образ», прямо с таблицей разделов и содержимым.
При возникновении проблем, читайте тему Если не получается обновить Wiren Board 5.5.
Подготовка
ПК с ОС Linux
Восстановление прошивки мы будем производить на компьютере с операционной системой Linux:
- Создайте в любом месте папку wbupdate и перейдите в неё — сюда мы будем сохранять все файлы.
- Скачайте файлы
- wb5_usbfw.sb
- mxsldr:
- если у вас настольный компьютер с архитектурой amd64, то скачайте mxsldr.zip и распакуйте архив.
- если у вас другое Linux-устройство, например Raspberry Pi, то соберите mxsldr по инструкции.
- Скачайте файл .img.zip для своей версии контроллера по ссылкам: старые версии / свежие версии и распакуйте образ из архива.
- На компьютере разрешите запуск файла
Mxsldr.bin
, для этого откройте консоль, перейдите в папку со скачанными файлами и выполните:sudo chmod +x ./mxsldr
ПК с ОС Windows
Мы не рекомендуем использовать Windows для прошивки контроллера, но вы можете это сделать одним из способов:
- Создайте загрузочную флешку с ОС Linux и используйте её.
- Загрузите утилиты для Windows Файл:Mxsldr win.7z и используйте инструкцию для Linux, учитывая особенности ОС Windows. Подробнее читайте на форуме.
Подключение контроллера
В процессе прошивки у вас будет открыто два окна: окно консоли операционной системы персонального компьютера и окно Debug-консоли контроллера.
- Выключите контроллер.
- Соедините оба Micro USB контроллера с компьютером и подключитесь к Debug-консоли.
- В зависимости от ревизии контроллера:
- Wiren Board 5.3 — замкните перемычку FW рядом с разъёмом Micro USB.
- Wiren Board 5.6 выше — нажмите маленькую кнопку рядом с разъёмом Micro USB.
- Не снимая перемычку или не размыкая кнопки, включите контроллер.
- Подождите пять секунд и в консоли компьютера выполните команду
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
- Подождите ещё около 10 секунд, пока индикатор контроллера не начнёт мигать зелёным, а на компьютере не определится флеш-накопитель.
- Узнайте с каким именем в вашей системе определился накопитель контроллера, для этого выполните команду:
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 кабели. Прошивка контроллера завершена, после включения контроллер готов к работе.