Обновление прошивки TV-бокса Amlogic X4 с помощью UART


  Подключение к UART       Носитель с прошивкой       Запись прошивки  

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

На самом деле, эта операция очень простая (проще не бывает): достаточно скопировать на носитель два файла.

Теперь подробности. Носитель - это или любая микроSD-карта или любая USB-флешка (да-да, можно и с флешки, и даже с SSD или HDD). Емкость карты или флешки не имеет значение, форматирование - FAT32. То есть это обычная карта (флешка), которая используется на приставке в качестве внешнего хранилища. На ней даже могут быть какие-то полезные или нужные (или не очень) файлы, которые можно не трогать, с ними ничего не случится, т.к. карта форматироваться не будет.

1-й файл. Любым способом и на любое устройстве (ПК, телефон, приставка и т.д.) скачать откуда-то (и при необходимости - разархивировать) файл с выбранным образом прошивки, например, S905X4_X4_ATV_2024.03.16.11.58.img Затем переименовать его в aml.img и скопировать (опять же любым способом и на любом устройстве) в корень карты или USB-флешки. Если ваша приставка работоспособна, то можно скчивание и копирование непосредственно на ней. Это - первый файл. Половина дела сделана.

Примечание. Переименование файла образа в более короткое имя делается для удобства и во избежание ошибки в имени. В принципе, оно может быть другим или оставлено без изменений, но тогда нужно отредактировать это имя в строке package файла aml_sdc_durn.ini (см. ниже).

2-й файл имеет имя aml_sdc_durn.ini. Это простой текстовый файл конфигурации из блокнота.
Его содержимое:

[common]
erase_bootloader    =0
erase_flash         =1
reboot              =1

[burn_ex]
package     =aml.img

Примечание. Первые три параметра означают, что eMMC-память (кроме загрузчика) будет предварительно очищена, а по завершении записи прошивки приставка будет перезагружена. Параметр package - это имя img-файла, скопированное в корень носителя.

ВНИМАНИЕ. Готовый файл aml_sdc_durn.ini можно скачать прямо отсюда (после скачивания извлечь из ZIP-архива):
aml_sdc_burn.ini


Если есть желание или необходимость проверить работу нескольких разных прошивок, то можно все их файлы скопировать в корень носителя, но для выбора прошивки, которая будет записана в память приставки, потребуется указать (заменить) имя её файла в строке package =<имя файла> конфигурационного файла aml_sdc_burn.ini.

Или проделать такой трюк: в конфигурционном файле поместить несколько строк
package =<имя файла>
с разными именами файла прошивки, но все их закомментировать символом ';' (точка с запятой), оставив раскомментированным только одну строку. Т.е при выборе желаемой прошивки нужно убрать символ комментария в строке с её именем, закомментировав остальные. Тогда редактировать нужно будет только файл конфигурации, не переименовывая сами файлы прошивок.

Например:

[burn_ex]

;package     =ah212.HK1RBOX-X4_1000M_11.2022.03.05.13.49.img
;package     =ah218.VONTAR_X4_1000M_11.2023.01.05.02.55.img
;package     =ah218.VONTAR_X4_1000M_11.2023.03.12.21.20.img
;package     =ah214.TranSpeed_X4_1000M_11.2022.06.20.23.40.img
;package     =ah224.TranSpeed_X4S_100M_11.2022.03.05.22.56.img
;package     =2ATV_ah218.VONTAR_X4_1000M_11.2021.12.22.04.48.img
package      =S905X4_X4_ATV_2024.03.16.11.58.img


ВНИМАНИЕ !

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

Однако не исключена ситуация, что при записи какого-то образа прошивки из-за её несовместимости с загрузчиком процесс завершится с ошибкой, поэтому потребуется также и замена загрузчика U-Boot. В этом случае в файле конфигурации параметр должен быть изменен на erase_bootloader =1, а в корень носителя нужно будет дополнительно записать бинарный файл нового U-Boot, который должен иметь имя aml_sdc_burn.UBOOT.

Содержимое этого файла U-Boot может быть извлечено из образа новой прошивки под Linux утилитой getuboot ( Скачать: Утилита для извлечения U-Boot из прошивки Amlogic X4 ).

Утилита скомпилирована под ARM, поэтому её можно запустить прямо на самой приставке, извлекая загрузчик из img-файла образа прошивки, который имеется на флешке. Для этого достаточно вставить в приставку загрузочную карточку с CoreElec, загрузить этот Linux, скопировать на карточку эту утилиту по SSH в любую папку, дать разрешения и запустить. При этом файл с образом прошивки может находиться на USB-флешке (или карте в USB-переходнике), которая в CoreElec при вставлении в порт USB автоматически монтируется в папку c именем, похожим на "/var/media/sda1-usb-XXX-USB_Storage_/" (точное имя зависит от типа флешки). В этом случае копировать образ не понадобится, а извлеченный файл UBOOT сразу окажется на флешке.
Запуск утилиты на извлечение файла UBOOT:

   ./getuboot /var/media/sda1-usb-XXX-USB_Storage_/имя файла образа

Ещё раз уточним, что все эти манипуляции по извлечению из прошивки файла UBOOT необходимо делать только в том случае, когда процесс записи прошивки в eMMC (с параметром erase_bootloader =0) завершается с ошибкой.


  Подключение к UART       Носитель с прошивкой       Запись прошивки