|
|
(не показаны 92 промежуточные версии 12 участников) |
Строка 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]]. |
| {{PeerTube
| |
| | link= https://peertube.wirenboard.com/w/dV85byEmnfiwVq6xaAwhFT
| |
| | text= Прошивка контроллера Wiren Board 5.8 | |
| }}
| |
|
| |
|
| В Wiren Board 5 прошивка хранится в микросхеме eMMC, напаянной на плату. Чтобы заменить прошивку, контроллер нужно подключить к компьютеру с ОС Linux через порт Micro-USB как накопитель и записать на него прошивку.
| | == Пошаговая инструкция == |
|
| |
|
| '''ВНИМАНИЕ''': при этом способе полностью перезаписывается внутренний накопитель Wiren Board. Все пользовательские данные будут потеряны. Если вы хотите сохранить свои файлы и настройки — сделайте их резервную копию, подключив контроллер к ПК для [[Просмотр_файлов_контроллера_с_компьютера|просмотра файлов]]. | | * Выключить устройство |
| | * Замнуть перемычку FW рядом с microUSB-разъёмом |
| | * Подключить устройство microUSB-кабелем к компьютеру с Linux |
| | * Включить устройство |
| | * Запустить на компьютере программу ''mxsldr''. Файл ''wb5_usbfw.sb'' скачайте [https://github.com/contactless/wirenboard/tree/master/contrib/u-boot отсюда] |
| | <syntaxhighlight lang="bash"> |
| | $ mxsldr wb5_usbfw.sb |
|
| |
|
| Общий принцип:
| | * При успешной загрузке образа через несколько секунд должен замигать зеленый светодиод и внутренний накопитель Wiren Board должен определиться в системе (например, как ''/dev/sdb'') |
| С помощью программы '''mxsldr''' мы загружаем непосредственно в процессор контроллера «программу» wb5_usbfw.sb, которая выполняясь на нем дает доступ к внутреннему накопителю как к флешке. То есть внутренний диск доступен целиком. И мы на него записываем «образ», прямо с таблицей разделов и содержимым.
| | * Далее в него нужно записать образ прошивки |
| | | <syntaxhighlight lang="bash"> |
| При возникновении проблем, читайте тему [https://support.wirenboard.com/t/pri-proshivke-wb5-oshibka/7130/44 Если не получается обновить Wiren Board 5.5].
| | $ dd if=XXXXX_emmc_wb5.img of=/dev/sdX bs=1M conv=fdatasync && sync |
| | |
| == Подготовка ==
| |
| | |
| === ПК с ОС 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> | | </syntaxhighlight> |
|
| |
|
| === ПК с ОС Windows ===
| | /dev/sdX нужно заменить на название раздела, под которым внутренний накопитель определился в системе. Название можно посмотреть в |
| Мы не рекомендуем использовать Windows для прошивки контроллера, но вы можете это сделать одним из способов:
| | выводе <syntaxhighlight lang="bash">dmesg | tail</syntaxhighlight> |
| # Создайте [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 форуме].
| |
|
| |
|
| == Подключение контроллера ==
| | * После завершения записи нужно снять перемычку FW, отключить контроллер от USB и перезагрузить его по питанию. |
| [[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 кабели.
| | == Ссылки == |
| Прошивка контроллера завершена, после включения контроллер готов к работе.
| | * [https://github.com/contactless/wirenboard/raw/master/contrib/u-boot/wb5_usbfw.sb Образ для загрузки в режиме Mass-Storage] |
| | * [https://github.com/contactless/wirenboard/releases Образы прошивок] |