|
|
(не показаны 82 промежуточные версии 11 участников) |
Строка 1: |
Строка 1: |
| == Введение ==
| | У Wiren Board 5 прошивка хранится на несъемном чипе eMMC. В случае проблем с загрузкой контроллера может потребоваться полная перепрошивка, которую можно осуществить через microUSB, загрузив контроллер в режиме USB Mass-Storage Gadget с помощью утилиты [[Сборка образа для загрузки в режиме USB Mass-Storage#.D0.A1.D0.B1.D0.BE.D1.80.D0.BA.D0.B0_mxsldr|mxsldr]]. |
| {{YouTube
| | == Пошаговая инструкция для Linux == |
| |link= https://youtu.be/-soDnTptHhI
| | #Скачайте на компьютер файл ''wb5_usbfw.sb'' [https://github.com/contactless/wirenboard/tree/master/contrib/u-boot отсюда]. |
| |text= Восстановление прошивки контроллера Wiren Board 5.8 из ОС Linux
| | #Соберите на компьютере программу [[Сборка_образа_для_загрузки_в_режиме_USB_Mass-Storage#Сборка mxsldr|''mxsldr'']]. |
| }}
| | #Скачайте на компьютер образ прошивки [https://github.com/contactless/wirenboard/releases отсюда] (расширение образа .img.zip. При скачивании выберите вариант для вашей версии платы контроллера). |
| В Wiren Board 5 прошивка хранится в микросхеме eMMC, напаянной на плату. Чтобы заменить прошивку, контроллер нужно подключить к компьютеру с ОС Linux через порт Micro-USB как накопитель и записать на него прошивку.
| | #Извлеките файл img из zip-архива. |
| | | #Выключите контроллер. |
| '''ВНИМАНИЕ''': при этом способе полностью перезаписывается внутренний накопитель Wiren Board. Все пользовательские данные будут потеряны. Если вы хотите сохранить свои файлы и настройки — сделайте их резервную копию, подключив контроллер к ПК для [[Просмотр_файлов_контроллера_с_компьютера|просмотра файлов]].
| | #Подключите контроллер кабелем microUSB к компьютеру |
| | | #Затем: |
| Общий принцип:
| | #* (для версии WB5.3) замкните перемычку FW рядом с разъёмом microUSB; |
| С помощью программы '''mxsldr''' мы загружаем непосредственно в процессор контроллера «программу» wb5_usbfw.sb, которая выполняясь на нем дает доступ к внутреннему накопителю как к флешке. То есть внутренний диск доступен целиком. И мы на него записываем «образ», прямо с таблицей разделов и содержимым.
| | #* (для версии WB5.6+) зажмите кнопку FW рядом с разъёмом microUSB. |
| | | #Запустите на компьютере <syntaxhighlight lang="bash">$ sudo mxsldr wb5_usbfw.sb</syntaxhighlight> |
| При возникновении проблем, читайте тему [https://support.wirenboard.com/t/pri-proshivke-wb5-oshibka/7130/44 Если не получается обновить Wiren Board 5.5].
| | #Включите устройство. <br> При успешной загрузке образа через несколько секунд замигает зеленый светодиод и внутренний накопитель Wiren Board должен определиться в системе. |
| | | #Затем: |
| == Подготовка == | | #* (для версии WB5.3) снимите пермычку FW; |
| | | #* (для версии WB5.6+) отпустите кнопку FW. |
| === ПК с ОС Linux ===
| | #Поймите, как в вашей системе определился новый накопитель (например, как ''/dev/sdb''). Это можно посмотреть в выводе <syntaxhighlight lang="bash">dmesg | tail</syntaxhighlight>. |
| Восстановление прошивки мы будем производить на компьютере с операционной системой Linux:
| | #Запишите в контроллер образ прошивки, выполнив команду, заменив ''/dev/sdX'' на название раздела, под которым накопитель определился в системе: <syntaxhighlight lang="bash">$ dd if=XXXXX_emmc_wb5.img of=/dev/sdX bs=1M conv=fdatasync && sync</syntaxhighlight> |
| # Создайте в любом месте папку '''wbupdate''' и перейдите в неё — сюда мы будем сохранять все файлы.
| | #После завершения записи отключите контроллер от USB, отключите питание от контроллера и включите снова. |
| # Скачайте файлы
| |
| #* [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 кабели. | |
| Прошивка контроллера завершена, после включения контроллер готов к работе.
| |