Modem a76xx flashing: различия между версиями

Материал из Wiren Board
(не показано 12 промежуточных версий 4 участников)
Строка 2: Строка 2:


== Технология ==
== Технология ==
Обновление прошивки производится при помощи утилиты <code>fbdownloader</code>, скомпилированной под Wiren Board и загружающей в модем образ с диска контроллера и скриптов, автоматизирующих процесс включения и отключения модема.


Обновление прошивки производится при помощи утилиты <code>fbfdownloader</code>, скомпилированной под Wiren Board и загружающей в модем образ с диска контроллера и скриптов, автоматизирующих процесс включения и отключения модема.
== Подготовка образа прошивки из архива производителя ==


== Загрузка образа прошивки ==
Чтобы подготовить прошивку, нужен компьютер с windows (wine в *nix тоже годится) и утилитой FBFMake от Simcom.
Изначально прошивка распространяется в виде zip-архива с именем, соответствующим версии ПО.
[[Image: 7600_Flash_zip.png |600px| Архив с прошивкой ]]


Подготовленные образы прошивок можно скачать из [https://drive.google.com/drive/folders/1QWGRZ9npttYUA915eIe-pJ_L9Msn5bHX папки на google drive], выбрав прошивку, соответствующую версии модема. Обратите внимание на то, что модемы A7600E-H имеют две аппаратные версии: A7600E-HNVW и A7600E-H-LNSE. Прошивки для них не совместимы.
Подготовка прошивки:
 
# Распакуйте архив в корень диска.
== Определение текущей версии прошивки в Debian Stretch ==
# Скопируйте в папку с распакованной прошивкой утилиту FBFMake.exe.
 
#:[[Image: 7600_Flash_unpacked.png |600px| Распакованная прошивка ]]
Узнать версию модема можно AT командой <code>at+cgmr</code>, которая возвращает строку с номером, символы с 6 по 8 будут версией прошивки чипа. [[GSM/GPRS#Отправка AT-команд| Как отправить AT команду]].
# Выполните (подставив нужное имя прошивки) в этой папке:
 
#:<syntaxhighlight lang="batch">
Например, в примере ниже версия прошивки B05:
FBFMake.exe -r A7600E-HNVW_NOR.blf -f output
<syntaxhighlight lang="at">
at+cgmr
+CGMR: A39C4B05A7600M7
</syntaxhighlight>
</syntaxhighlight>
 
#:[[Image: 7600_Flash_cmd_fbfmake.png |600px| Процесс перепаковки ]]
== Определение текущей версии прошивки в Debian Bullseye ==
#:[[Image: 7600_Flash_cmd_fbfmake_success.png |400px| Успех перепаковки ]]
 
# В папке <code>output</code> файл <code>BinFile.bin</code> — это и есть нужный нам образ.
Сервис ModemManager позволяет получить информацию о модеме и прошивке с помощью команды <code>mmcli -m any</code>
#: [[Image: 7600_Flash_output_binfile.png |600px| Файл прошивки ]]
 
[[Image: 7600_mmcli.png |600px| mmcli ]]


== Процесс обновления прошивки модема ==
== Процесс обновления прошивки модема ==


# Подключитесь к контроллеру Wiren Board по [[SSH]] дважды, чтобы у вас было открыто два терминала.
# Подключитесь к контроллеру Wiren Board по [[SSH]] дважды, чтобы у вас было открыто два терминала.
# Установите на контроллер пакет <code>flash-simcom-a76xx</code>.
# Загрузите на контроллер скрипты <code>flash_simcom.sh</code> и <code>blink.sh</code>, утилиту <code>fbdownloader_arm7l</code>.
# <syntaxhighlight lang="bash">apt update && apt install flash-simcom-a76xx
# Назначьте файлы исполняемыми.
</syntaxhighlight>
# Загрузите в ту же директорию прошивку, в итоге должно получиться так:
# Загрузите прошивку, в итоге должно получиться так:
#:[[Image: 7600_Flash_prepare.png |400px| Файлы в контроллере ]]
#:[[Image: 7600_Flash_prepare.png |400px| Файл с прошивкой в контроллере ]]
# Запустите в одном терминале скрипт <code>flash_simcom.sh</code>:
# Запустите в одном терминале скрипт <code>flash_simcom.sh</code>:
#:<syntaxhighlight lang="bash">flash_simcom.sh
#:<syntaxhighlight lang="bash">./flash_simcom.sh
</syntaxhighlight>
</syntaxhighlight>
#:[[Image: 7600_flash_simcom_sh.png |400px| Запустите скрипт flash_simcom.sh]]
#:[[Image: 7600_flash_simcom_sh.png |500px| Запустите скрипт flash_simcom.sh]]
# Теперь во втором терминале запустите утилиту обновления:
# Теперь во втором терминале запустите утилиту обновления:
#:<syntaxhighlight lang="bash">fbfdownloader_arm7l -b BinFile.bin
#:<syntaxhighlight lang="bash">./fbdownloader_arm7l -b BinFile.bin
</syntaxhighlight>
</syntaxhighlight>
# Дождитесь запроса '''connect USB interface''':
# Дождитесь запроса '''connect USB interface''':
#:[[Image: 7600_Flash_connect_USB.png |600px| Запрос подключения устройства ]]
#:[[Image: 7600_Flash_connect_usb.png |600px| Запрос подключения устройства ]]
# В первом терминале с <code>flash_simcom.sh</code> подтвердите запуск прошивки:
# В первом терминале с <code>flash_simcom.sh</code> подтвердите запуск прошивки:
#:[[Image: 7600_Flash_simcom_output.png |600px| Процесс прошивки ]]
#:[[Image: 7600_Flash_simcom_output.png |400px| Процесс прошивки ]]
# Во втором терминале с <code>fbfdownloader</code> можно пронаблюдать процесс:
# Во втором терминале с <code>fbfdownloader</code> можно пронаблюдать процесс:
#:[[Image: 7600_Flash_Process.png |600px| Процесс прошивки ]]
#:[[Image: 7600_Flash_process.png |600px| Процесс прошивки ]]
# Дождитесь отчета об успехе процедуры прошивки:
# Дождитесь отчета об успехе процедуры прошивки:
#:[[Image: 7600_Flash_success.png |600px| Окончание прошивки ]]
#:[[Image: 7600_Flash_success.png |600px| Окончание прошивки ]]
Строка 51: Строка 48:
#:<syntaxhighlight lang="bash">reboot
#:<syntaxhighlight lang="bash">reboot
</syntaxhighlight>
</syntaxhighlight>
# После загрузки контроллера, снова подключитесь к SSH. В Debian Bullseye модем включится автоматически, в Debian Stretch включите модем командой <code>wb-gsm on</code>
# После загрузки контроллера, снова подключитесь к SSH и включите модем:
# Когда модем запустится, можно проверить версию прошивки описанным ранее способом
#:<syntaxhighlight lang="bash">wb-gsm on
</syntaxhighlight>
# Когда модем запустится, можно проверить версию прошивки AT-командами через [[minicom]] <code>AT+CGMR и AT+CSUB</code>:
#:[[Image: 7600_minicom_check.png |400px| Проверка прошивки ]]


== Возможные проблемы в процессе ==
== Возможные проблемы в процессе ==
Прерывание прошивки. В этом случае модем при подаче питания будет запускать бутлодер, но это всё, что он будет делать. Лечится повторной прошивкой по обычной процедуре.
Прерывание прошивки. В этом случае модем при подаче питания будет запускать бутлодер, но это всё, что он будет делать. Лечится повторной прошивкой по обычной процедуре.
== Подготовка образа прошивки из архива производителя ==
Чтобы подготовить прошивку, нужен компьютер с windows (wine в *nix тоже годится) и утилитой FBFMake от Simcom.
Изначально прошивка распространяется в виде zip-архива с именем, соответствующим версии ПО.
[[Image: 7600_Flash_zip.png |600px| Архив с прошивкой ]]
Подготовка прошивки:
# Распакуйте архив в корень диска.
# Скопируйте в папку с распакованной прошивкой утилиту FBFMake.exe.
#:[[Image: 7600_Flash_unpacked.png |600px| Распакованная прошивка ]]
# Выполните (подставив нужное имя прошивки) в этой папке:
#:<syntaxhighlight lang="batch">
FBFMake.exe -r A7600E-HNVW_NOR.blf -f output
</syntaxhighlight>
#:[[Image: 7600_Flash_cmd_fbfmake.png |600px| Процесс перепаковки ]]
#:[[Image: 7600_Flash_cmd_fbfmake_success.png |400px| Успех перепаковки ]]
# В папке <code>output</code> файл <code>BinFile.bin</code> — это и есть нужный нам образ.
#: [[Image: 7600_Flash_output_binfile.png |600px| Файл прошивки ]]

Версия 11:52, 13 декабря 2022


Технология

Обновление прошивки производится при помощи утилиты fbdownloader, скомпилированной под Wiren Board и загружающей в модем образ с диска контроллера и скриптов, автоматизирующих процесс включения и отключения модема.

Подготовка образа прошивки из архива производителя

Чтобы подготовить прошивку, нужен компьютер с windows (wine в *nix тоже годится) и утилитой FBFMake от Simcom. Изначально прошивка распространяется в виде zip-архива с именем, соответствующим версии ПО. Архив с прошивкой

Подготовка прошивки:

  1. Распакуйте архив в корень диска.
  2. Скопируйте в папку с распакованной прошивкой утилиту FBFMake.exe.
    Распакованная прошивка
  3. Выполните (подставив нужное имя прошивки) в этой папке:
    FBFMake.exe -r A7600E-HNVW_NOR.blf -f output
    
    Процесс перепаковки
    Успех перепаковки
  4. В папке output файл BinFile.bin — это и есть нужный нам образ.
    Файл прошивки

Процесс обновления прошивки модема

  1. Подключитесь к контроллеру Wiren Board по SSH дважды, чтобы у вас было открыто два терминала.
  2. Загрузите на контроллер скрипты flash_simcom.sh и blink.sh, утилиту fbdownloader_arm7l.
  3. Назначьте файлы исполняемыми.
  4. Загрузите в ту же директорию прошивку, в итоге должно получиться так:
    Файлы в контроллере
  5. Запустите в одном терминале скрипт flash_simcom.sh:
    ./flash_simcom.sh
    
    Запустите скрипт flash_simcom.sh
  6. Теперь во втором терминале запустите утилиту обновления:
    ./fbdownloader_arm7l -b BinFile.bin
    
  7. Дождитесь запроса connect USB interface:
    Запрос подключения устройства
  8. В первом терминале с flash_simcom.sh подтвердите запуск прошивки:
    Процесс прошивки
  9. Во втором терминале с fbfdownloader можно пронаблюдать процесс:
    Процесс прошивки
  10. Дождитесь отчета об успехе процедуры прошивки:
    Окончание прошивки
  11. Перезагрузите контроллер:
    reboot
    
  12. После загрузки контроллера, снова подключитесь к SSH и включите модем:
    wb-gsm on
    
  13. Когда модем запустится, можно проверить версию прошивки AT-командами через minicom AT+CGMR и AT+CSUB:
    Проверка прошивки

Возможные проблемы в процессе

Прерывание прошивки. В этом случае модем при подаче питания будет запускать бутлодер, но это всё, что он будет делать. Лечится повторной прошивкой по обычной процедуре.