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


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

Запись прошивки на ТВ-бокс

В оболочке (командном интерфейсе) U-Boot для записи прошивки предусмотрено две команды, в зависимости от типа носителя с образом:

  • 1. Носитель - SD-карта:
    команда в оболочке U-Boot: sdc_burn
    sc2_ah212# help sdc_burn
    sdc_burn - Burning with amlogic format package in sdmmc
    
    Usage:
    sdc_burn argv: [sdc_burn_cfg_file]
        -aml_sdc_burn.ini is usually used configure file
    

  • 2. Носитель - любой USB-накопитель (флешка, диск, кардридер с картой и т.п.):
    команда команда в оболочке U-Boot: usb_burn
    # help usb_burn
    usb_burn - Burning with amlogic format package in usb
    
    Usage:
    usb_burn argv: [sdc_burn_cfg_file]
        -aml_sdc_burn.ini is usually used configure file
    

    Проверка доступности USB-накопителя

    В случае использования в качестве носителя USB-накопителя рекомендуется прежде всего проверить его доступность и читабельность, это можно сделать командой fatls, которая должна показать папки и файлы, лежащие в корне этого накопителя:
    # fatls usb 0:1
                System Volume Information/
      3248640   aml_sdc_burn.UBOOT
          609   aml_sdc_burn.ini
     1660103516   S905X4_X4_ATV_2024.03.16.11.58.img
                LOST.DIR/
                Music/
                Android/
                Podcasts/
                Ringtones/
                Alarms/
                Notifications/
                Pictures/
                Movies/
                Download/
                DCIM/
                Documents/
                Audiobooks/
    
    3 file(s), 14 dir(s)
    

    Если эта команда не показывает содержимое флешки, или сообщает о какой-либо ошибке, то необходимо предварительно дать команду инициализации USB-порта usb reset:

    
    sc2_ah212# usb reset
    resetting USB...
    USB0:   No ----gpio-vbus-power
    Register 3000140 NbrPorts 2
    Starting the controller
    USB XHCI 1.10
    scanning bus 0 for devices... 2 USB Device(s) found
           scanning usb for storage devices... 1 Storage Device(s) found
    
    
    И для проверки usb dev:
    sc2_ah212# usb dev
    
    IDE device 0: Vendor: MXT-USB Rev: 1501 Prod: Storage Device
                Type: Removable Hard Disk
                Capacity: 30436.5 MB = 29.7 GB (62333952 x 512)
    

    Затем ещё раз повторить fatls usb 0:1. Если содержимое USB-носителя читается нормально, то можно запускать команду записи по USB.


    Таким образом, после ввода одной из команд (sdc_burn или usb_burn) начнется процесс записи прошивки, который будет сопровождаться выводом в окно терминала большого количества сообщений. Весь этот текст сообщений лога можно (и даже нужно)по завершению процесса (с любым результатом) сохранить в виде текстового файла для последующего анализа.

    Полностью команда записи прошивки выглядит так:

     sdc_burn aml_sdc_burn.ini
    
    или
     usb_burn aml_sdc_burn.ini
    

    Здесь aml_sdc_burn.ini - это имя конфигурационного файла, скопированного в корень носителя

    В конфигурационном файле установлен параметр reboot =1, поэтому сразу после записи обновленной прошивки произойдет перезагрузка и система загрузится уже с этой новой прошивкой.

    По ссылкам ниже приведены примеры лог-файла для двух ситуаций:

    • amlsdcburn.log - Запись прошивки с SD-карты без замены загрузчика
      (с параметром erase_bootloader =0)

    • amlusbburn.log - Запись прошивки с USB-накопителя с заменой загрузчика
      (с параметром erase_bootloader =1)

    • amlbadburn.log - Ошибка при запись прошивки с без замены загрузчика
      (с параметром erase_bootloader =0)

    Примечание. В текстах первых двух логов удалены строки сообщений, относящихся к процессу перезагрузки системы, оставлены только сообщения о проессе записи прошивки (т.е. реальный лог будет существенно больше по объему).




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