16 578
правок
Vdromanov (обсуждение | вклад) |
|||
(не показано 65 промежуточных версий 10 участников) | |||
Строка 1: | Строка 1: | ||
В Wiren Board 5 прошивка хранится в | == Введение == | ||
{{YouTube | |||
|link= https://youtu.be/-soDnTptHhI | |||
|text= Восстановление прошивки контроллера Wiren Board 5.8 из ОС Linux | |||
}} | |||
В Wiren Board 5 прошивка хранится в микросхеме eMMC, напаянной на плату. Чтобы заменить прошивку, контроллер нужно подключить к компьютеру с ОС Linux через порт Micro-USB как накопитель и записать на него прошивку. | |||
''' | '''ВНИМАНИЕ''': при этом способе полностью перезаписывается внутренний накопитель Wiren Board. Все пользовательские данные будут потеряны. Если вы хотите сохранить свои файлы и настройки — сделайте их резервную копию, подключив контроллер к ПК для [[Просмотр_файлов_контроллера_с_компьютера|просмотра файлов]]. | ||
Общий принцип: | |||
С помощью программы '''mxsldr''' мы загружаем непосредственно в процессор контроллера «программу» wb5_usbfw.sb, которая выполняясь на нем дает доступ к внутреннему накопителю как к флешке. То есть внутренний диск доступен целиком. И мы на него записываем «образ», прямо с таблицей разделов и содержимым. | |||
# | При возникновении проблем, читайте тему [https://support.wirenboard.com/t/pri-proshivke-wb5-oshibka/7130/44 Если не получается обновить Wiren Board 5.5]. | ||
# | |||
#* ''/ | == Подготовка == | ||
=== ПК с ОС Linux === | |||
Восстановление прошивки мы будем производить на компьютере с операционной системой Linux: | |||
# Создайте в любом месте папку '''wbupdate''' и перейдите в неё — сюда мы будем сохранять все файлы. | |||
# Скачайте файлы | |||
#* [https://github.com/wirenboard/wirenboard/raw/9e8ae166e0347dcf1011b9284ed3e397e20b5f91/contrib/u-boot/wb5_usbfw.sb wb5_usbfw.sb] | |||
#* mxsldr: | |||
#** если у вас настольный компьютер с архитектурой amd64, то скачайте [[Media:mxsldr.zip | mxsldr.zip]] и распакуйте архив. | |||
#** если у вас другое Linux-устройство, например Raspberry Pi, то соберите mxsldr по [[Сборка_образа_для_загрузки_в_режиме_USB_Mass-Storage#Сборка mxsldr|инструкции]]. | |||
#* Скачайте файл '''.img.zip''' для своей версии контроллера по ссылкам: [https://github.com/contactless/wirenboard/releases старые версии] / [http://fw-releases.wirenboard.com/ свежие версии] и распакуйте образ из архива. | |||
# На компьютере разрешите запуск файла <code>mxsldr</code>, для этого откройте консоль, перейдите в папку с распакованными файлами и выполните: | |||
#:<syntaxhighlight lang="bash"> | |||
sudo chmod +x ./mxsldr | |||
</syntaxhighlight> | |||
=== ПК с ОС Windows === | |||
Мы не рекомендуем использовать Windows для прошивки контроллера, но вы можете это сделать одним из способов: | |||
# Создайте [https://omgubuntu.ru/create-live-usb-of-ubuntu-in-windows/ загрузочную флешку с ОС Linux] и используйте её. | |||
# Загрузите утилиты для Windows [[File:Mxsldr_win.7z]] и используйте инструкцию для Linux, учитывая особенности ОС Windows. Подробнее читайте на [https://support.wirenboard.com/t/pri-proshivke-wb5-oshibka/7130/39?u=brainroot форуме]. | |||
== Подключение контроллера == | |||
[[Image: Dmesg.png|400px|thumb|right| Вид вывода команды <code>sudo dmesg <nowiki>|</nowiki> tail</code>. Нужный накопитель — '''/dev/sdb''']] | |||
В процессе прошивки у вас будет открыто два окна: окно консоли операционной системы персонального компьютера и окно Debug-консоли контроллера. | |||
# Выключите контроллер. | |||
# Соедините оба Micro USB контроллера с компьютером и подключитесь к [[Debug UART | Debug-консоли]]. | |||
# В зависимости от ревизии контроллера: | |||
#* Wiren Board 5.3 — замкните перемычку FW рядом с разъёмом Micro USB. | |||
#* Wiren Board 5.6 выше — нажмите маленькую кнопку рядом с разъёмом Micro USB. | |||
# Не снимая перемычку или не размыкая кнопки, включите контроллер. | |||
# Подождите пять секунд и в консоли компьютера выполните команду | |||
#: <syntaxhighlight lang="bash"> | |||
sudo ./mxsldr wb5_usbfw.sb | |||
</syntaxhighlight> | |||
#: пример успешного выполнения команды: | |||
#:<syntaxhighlight lang="console"> | |||
$ sudo ./mxsldr wb5_usbfw.sb | |||
Detected: i.MX28 | |||
Chip ID: 0x2800 | |||
Chip Revision: 0x0001 | |||
ROM Version: 0x0101 | |||
Protocol Version: 0x0100 | |||
</syntaxhighlight> | |||
# Подождите ещё около 10 секунд, пока индикатор контроллера не начнёт мигать зелёным, а на компьютере не определится флеш-накопитель. | |||
# Узнайте с каким именем в вашей системе определился накопитель контроллера, для этого выполните команду: | |||
#:<syntaxhighlight lang="bash"> | |||
sudo dmesg | tail | |||
</syntaxhighlight> | |||
#: найдите в выводе команды строчку вида <code>[sd*] Write protect is off</code>, где '''sd*''' — имя накопителя контроллера. Если такой строчки нет, то выполните в Debug-консоли контроллера: | |||
#:<syntaxhighlight lang="bash"> | |||
/sbin/modprobe g_mass_storage file=/dev/mmcblk0 iManufacturer="Wiren Board" iProduct="Wiren Board" | |||
</syntaxhighlight> | |||
#: и снова запустите команду <code>dmesg | tail</code>. | |||
== Прошивка == | |||
{{note|warn|Команды ниже работают только на Wiren Board 5! Попытка их выполнить на другой версии контроллера гарантированного его сломает и случай будет негарантийным.}} | |||
'''Важно!''' Операционная система вашего компьютера может автоматически примонтировать разделы диска контроллера, которые появятся после выполнения команды <code>mxsldr</code>. В этом случае запись прошивки не выполнится успешно. Перед выполнением следующих пунктов проверьте, что ни один из разделов диска контроллера не смонтирован (командой mount — в выводе не должны упоминаться диски контроллера вида <code>/dev/sdbN</code> — как в этом примере), и отмонтируйте все такие смонтированные разделы командой <code>umount /dev/sdbN</code>. | |||
Запишем образ прошивки с именем '''firmware.img''' на диск '''/dev/sdX''', замените имя файла и диска не свои: | |||
<syntaxhighlight lang="bash"> | |||
sudo dd if=firmware.img of=/dev/sdX bs=1M conv=fdatasync && sync | |||
</syntaxhighlight> | |||
Пример успешной прошивки: | |||
<syntaxhighlight lang="console"> | |||
$ sudo dd if=201906131405_emmc_wb58.img of=/dev/sdc bs=1M conv=fdatasync && sync | |||
615+0 записей получено | |||
615+0 записей отправлено | |||
644874240 байт (645 MB, 615 MiB) скопирован, 42,8601 s, 15,0 MB/s | |||
</syntaxhighlight> | |||
После того как запись закончится, в консоли появится приглашение командной строки. Выключите контроллер и отсоедините MicroUSB кабели. | |||
Прошивка контроллера завершена, после включения контроллер готов к работе. |