Wiren Board 5: Recovery: различия между версиями

Материал из Wiren Board
(Подготовка страницы к переводу)
(не показаны 63 промежуточные версии 9 участников)
Строка 1: Строка 1:
== Введение ==
<languages/>
{{PeerTube
<translate>
| link= https://peertube.wirenboard.com/w/dV85byEmnfiwVq6xaAwhFT
В Wiren Board 5 прошивка хранится в напаянном на плате чипе eMMC. В случае проблем с загрузкой контроллера может потребоваться полная перепрошивка, которую можно осуществить через Micro USB, загрузив контроллер в режиме USB Mass-Storage Gadget с помощью утилиты [[Special:MyLanguage/Сборка образа для загрузки в режиме USB Mass-Storage#.D0.A1.D0.B1.D0.BE.D1.80.D0.BA.D0.B0_mxsldr|mxsldr]].
| text= Прошивка контроллера Wiren Board 5.8
}}


В Wiren Board 5 прошивка хранится в микросхеме eMMC, напаянной на плату. Чтобы заменить прошивку, контроллер нужно подключить к компьютеру с ОС Linux через порт Micro-USB как накопитель и записать на него прошивку.
'''Внимание: в разделе описывается полная перезапись содержимого внутреннего накопителя Wiren Board. Все пользовательские данные будут безвозвратно потеряны.''' Чтобы избежать потери данных, см. [[Special:MyLanguage/Пропажа_файлов_при_обновлении_прошивки|''соответствующий раздел.'']]


'''ВНИМАНИЕ''': при этом способе полностью перезаписывается внутренний накопитель Wiren Board. Все пользовательские данные будут потеряны. Если вы хотите сохранить свои файлы и настройки — сделайте их резервную копию, подключив контроллер к ПК для [[Просмотр_файлов_контроллера_с_компьютера|просмотра файлов]].


Общий принцип:
== Пошаговая инструкция для Linux ==
С помощью программы '''mxsldr''' мы загружаем непосредственно в процессор контроллера «программу» wb5_usbfw.sb, которая выполняясь на нем дает доступ к внутреннему накопителю как к флешке. То есть внутренний диск доступен целиком. И мы на него записываем «образ», прямо с таблицей разделов и содержимым.


При возникновении проблем, читайте тему [https://support.wirenboard.com/t/pri-proshivke-wb5-oshibka/7130/44 Если не получается обновить Wiren Board 5.5].
#Скачайте на компьютер файл ''wb5_usbfw.sb'' [https://github.com/contactless/wirenboard/tree/master/contrib/u-boot отсюда].
 
#Соберите на компьютере программу [[Special:MyLanguage/Сборка_образа_для_загрузки_в_режиме_USB_Mass-Storage#Сборка mxsldr|''mxsldr'']].
== Подготовка ==
#Скачайте на компьютер образ прошивки [https://github.com/contactless/wirenboard/releases отсюда] (расширение образа .img.zip. При скачивании выберите вариант для вашей версии платы контроллера).
 
#Извлеките файл img из zip-архива.
=== ПК с ОС Linux ===
#Выключите контроллер.
Восстановление прошивки мы будем производить на компьютере с операционной системой Linux:
#Определите тип процессорного модуля (обычный или industrial). Для этого посмотрите маркировку чипа памяти на плате процессорного модуля:
# Создайте в любом месте папку '''wbupdate''' и перейдите в неё — сюда мы будем сохранять все файлы.
#*Обычная версия: ''SanDisk''
# Скачайте файлы
#*Industrial версия: ''6VA18JW983''
#* [https://github.com/wirenboard/wirenboard/raw/9e8ae166e0347dcf1011b9284ed3e397e20b5f91/contrib/u-boot/wb5_usbfw.sb wb5_usbfw.sb]
#Соедините разъём Micro USB контроллера (обычно подписан как FW) с портом USB компьютера. ''Настоятельно рекомендуется также подключить контроллер и по Debug USB для отслеживания процесса прошивки.'' Для industrial версии подключение по Debug USB в процессе прошивки - '''обязательно'''.
#* mxsldr:
#Перейдите в папку с собранным [[Special:MyLanguage/Сборка_образа_для_загрузки_в_режиме_USB_Mass-Storage#Сборка mxsldr|''mxsldr'']].
#** если у вас настольный компьютер с архитектурой amd64, то скачайте [[Media:mxsldr.zip | mxsldr.zip]] и распакуйте архив.
#Затем:
#** если у вас другое Linux-устройство, например Raspberry Pi, то соберите mxsldr по [[Сборка_образа_для_загрузки_в_режиме_USB_Mass-Storage#Сборка mxsldr|инструкции]].
#* (для версии WB5.3) замкните перемычку FW рядом с разъёмом Micro USB;
#* Скачайте файл '''.img.zip''' для своей версии контроллера по ссылкам: [https://github.com/contactless/wirenboard/releases старые версии] / [http://fw-releases.wirenboard.com/ свежие версии] и распакуйте образ из архива.
#* (для версии WB5.6+) зажмите маленькую кнопку рядом с разъёмом Micro USB.
# На компьютере разрешите запуск файла <code>mxsldr</code>, для этого откройте консоль, перейдите в папку с распакованными файлами и выполните:
#Не снимая перемычку/не отпуская кнопку, подключите к контроллеру питание, подождите несколько секунд и запустите на компьютере <syntaxhighlight lang="bash">$ sudo ./mxsldr /X/XX/wb5_usbfw.sb</syntaxhighlight> Где /X/XX/wb5_usbfw.sb - это путь к скачанному файлу.
#:<syntaxhighlight lang="bash">
#При успешной загрузке образа через несколько секунд замигает зеленый светодиод, память контроллера определится на компьютере как накопитель.
sudo chmod +x ./mxsldr
#Затем:
</syntaxhighlight>
#* (для версии WB5.3) снимите пермычку FW;
 
#* (для версии WB5.6+) отпустите кнопку FW.
=== ПК с ОС Windows ===
#Поймите, как в вашей системе определился новый накопитель (например, как ''/dev/sdb''). Это можно посмотреть в выводе
Мы не рекомендуем использовать Windows для прошивки контроллера, но вы можете это сделать одним из способов:
#:<syntaxhighlight lang="bash">dmesg | tail</syntaxhighlight>
# Создайте [https://omgubuntu.ru/create-live-usb-of-ubuntu-in-windows/ загрузочную флешку с ОС Linux] и используйте её.
#:[[File:Dmesg.png |600px|thumb|center|Вид вывода команды dmesg | tail. Нужный накопитель - /dev/sdb]]
# Загрузите утилиты для Windows [[File:Mxsldr_win.7z]] и используйте инструкцию для Linux, учитывая особенности ОС Windows. Подробнее читайте на [https://support.wirenboard.com/t/pri-proshivke-wb5-oshibka/7130/39?u=brainroot форуме].
#:''Примечание:''
 
#:Если у вас '''industrial''' версия процессорного модуля и вывод команды не совпадает с указанным на скриншоте (нет устройства вида "sd*"), то нужно открыть Debug консоль контроллера и ввести в неё следующее:  
== Подключение контроллера ==
#:<syntaxhighlight lang="bash">/sbin/modprobe g_mass_storage file=/dev/mmcblk0 iManufacturer="Wiren Board" iProduct="Wiren Board"</syntaxhighlight>
[[Image: Dmesg.png|400px|thumb|right| Вид вывода команды <code>sudo dmesg <nowiki>|</nowiki> tail</code>. Нужный накопитель — '''/dev/sdb''']]
#:затем уже в терминале ПК снова ввести
В процессе прошивки у вас будет открыто два окна: окно консоли операционной системы персонального компьютера и окно Debug-консоли контроллера.
#:<syntaxhighlight lang="bash">dmesg | tail</syntaxhighlight>  
 
#:для того, чтобы узнать, как накопитель определился в системе.
# Выключите контроллер.
#:'''Внимание! Если вы ошибётесь с определением имени накопителя, и в следующем пункте подставите название, соответствующее другому вашему накопителю, его содержимое будет потеряно.'''
# Соедините оба Micro USB контроллера с компьютером и подключитесь к [[Debug UART | Debug-консоли]].
#Чтобы записать прошивку в контроллер, замените в команде ниже
# В зависимости от ревизии контроллера:
#* ''/X/XX/XXXXX_emmc_wb5.img'' на путь к заранее распакованному файлу прошивки,
#* Wiren Board 5.3 замкните перемычку FW рядом с разъёмом Micro USB.
#* ''/dev/sdX'' на название раздела, под которым накопитель определился в системе,
#* Wiren Board 5.6 выше — нажмите маленькую кнопку рядом с разъёмом Micro USB.
#: и выполните команду <syntaxhighlight lang="bash">$ sudo dd if=/X/XX/XXXXX_emmc_wb5.img of=/dev/sdX bs=1M conv=fdatasync && sync</syntaxhighlight>
# Не снимая перемычку или не размыкая кнопки, включите контроллер.
#После завершения записи отключите контроллер от USB, отключите питание от контроллера и включите снова.
 
</translate>
# Подождите пять секунд и в консоли компьютера выполните команду
#: <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 кабели.  
Прошивка контроллера завершена, после включения контроллер готов к работе.

Версия 18:36, 31 мая 2019

Другие языки:

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

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


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

  1. Скачайте на компьютер файл wb5_usbfw.sb отсюда.
  2. Соберите на компьютере программу mxsldr.
  3. Скачайте на компьютер образ прошивки отсюда (расширение образа .img.zip. При скачивании выберите вариант для вашей версии платы контроллера).
  4. Извлеките файл img из zip-архива.
  5. Выключите контроллер.
  6. Определите тип процессорного модуля (обычный или industrial). Для этого посмотрите маркировку чипа памяти на плате процессорного модуля:
    • Обычная версия: SanDisk
    • Industrial версия: 6VA18JW983
  7. Соедините разъём Micro USB контроллера (обычно подписан как FW) с портом USB компьютера. Настоятельно рекомендуется также подключить контроллер и по Debug USB для отслеживания процесса прошивки. Для industrial версии подключение по Debug USB в процессе прошивки - обязательно.
  8. Перейдите в папку с собранным mxsldr.
  9. Затем:
    • (для версии WB5.3) замкните перемычку FW рядом с разъёмом Micro USB;
    • (для версии WB5.6+) зажмите маленькую кнопку рядом с разъёмом Micro USB.
  10. Не снимая перемычку/не отпуская кнопку, подключите к контроллеру питание, подождите несколько секунд и запустите на компьютере
    $ sudo ./mxsldr /X/XX/wb5_usbfw.sb
    
    Где /X/XX/wb5_usbfw.sb - это путь к скачанному файлу.
  11. При успешной загрузке образа через несколько секунд замигает зеленый светодиод, память контроллера определится на компьютере как накопитель.
  12. Затем:
    • (для версии WB5.3) снимите пермычку FW;
    • (для версии WB5.6+) отпустите кнопку FW.
  13. Поймите, как в вашей системе определился новый накопитель (например, как /dev/sdb). Это можно посмотреть в выводе
    dmesg | tail
    
    tail. Нужный накопитель - /dev/sdb
    Примечание:
    Если у вас industrial версия процессорного модуля и вывод команды не совпадает с указанным на скриншоте (нет устройства вида "sd*"), то нужно открыть Debug консоль контроллера и ввести в неё следующее:
    /sbin/modprobe g_mass_storage file=/dev/mmcblk0 iManufacturer="Wiren Board" iProduct="Wiren Board"
    
    затем уже в терминале ПК снова ввести
    dmesg | tail
    
    для того, чтобы узнать, как накопитель определился в системе.
    Внимание! Если вы ошибётесь с определением имени накопителя, и в следующем пункте подставите название, соответствующее другому вашему накопителю, его содержимое будет потеряно.
  14. Чтобы записать прошивку в контроллер, замените в команде ниже
    • /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
    
  15. После завершения записи отключите контроллер от USB, отключите питание от контроллера и включите снова.