Файл u boot bin андроид тв бокс

Обновлено: 28.04.2024

Решение собрать прошивку родилось из за отсутствия в свободном доступе образа для этой платы (Olimex A13-Olinuxino). А производитель предлагал преобрести SD карту с образом и стоило что то около 10 евро на тот момент, что очень не устроило, к тому же она была рассчитана на наличие монитора.

Конфигурирование загрузчика будем формировать для загрузки с SD карты. Поскольку NAND памяти на плате нету а все остальные варианты загрузки слегка кривоваты (у кого получиться собрать uboot для загрузки с USB носителя, пусть сделает два шага вперед и поделится). Алгоритм загрузки процессора allwinner a13 можно найти на сайте производителя. Или вот вырезка из даташита.



Из алгоритма хорошо видно что сначала идет проверка загрузчика на SD карте, потом все остальные и только в конце проверяется наличие загрузчика на USB. Поэтому планшеты и смартфоны вполне можно сделать с Ubuntu если им подсунуть SD карту с соответствующим образом. И судя по всему примерно такой алгоритм будет если не у всех, то у многих производителей arm процессоров.

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

Сборка UBOOT

Остановимся по подробней на загрузчике, а в качестве оного выбираем UBOOT выкачиваем версию u-boot-2018.05, последнюю на тот момент.

Предполагается что уже стоит весь необходимый софт для сборки. И начнем сборку с конфигурирования загрузчика.

Для запуска конфигурирования необходимо зайти в папку с UBOOT и из неё выполнить команду:


В результате выполнения получим такое окно.


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

А дальше если у вас много времени или вам себя не жалко, можно самим с нуля сконфигурировать загрузчик. Однако лучше через меню файл загрузить готовую конфигурацию этой платы. В папке с исходником загрузчика по адресу /u-boot-2018.05/configs/ выбираем файл A13-OlinuXino_defconfig это и есть наша конфигурация, где все уже установлено. Дальше нажимаем сохранить и закрываем окно, ибо менять тут ничего не нужно.

Остаётся запустить команду сборки:


В этой команде элементы все те же самые что и в предыдущей, только без параметра xconfig, что и означает конфигурирование. Вот собственно и все, загрузчик собран.

После окончания сборки, в папке указанной в команде, нам нужно найти этот файл “u-boot-sunxi-with-spl.bin” это и есть нужный загрузчик.

Дальше для заливки загрузчика на SD карту воспользуемся командой:


Загрузчик что только что записали после загрузки укажет на следующий раздел SD карты /dev/sdb1, и там будет искать скрипт файл с переменными окружения в котором содержаться инструкции по дальнейшей загрузке.

Этот файл должен иметь имя boot.scr, файл с этим названием ищет uboot после своей загрузки. Название файла конечно можно изменить как и метод загрузки если влезть в конфигурацию UBOOT, но остановимся на этом варианте.

Также следует за одно скомпилировать devicetree файлы, они лежат в исходниках с загрузчиком по адресу /u-boot-2018.05/arch/arm/dts/ нас интересует файл sun5i-a13-olinuxino.dts. Он представляет собой конфигруацию регистров и переферии процессора. Этакий универсальный файл конфигурации, поэтому вполне возможен вариант когда один загрузчик uboot используется для разных процессоров но при этом используются разные файлы dts. Такие же файлы dts есть и в исходниках ядра линукса, они в принципе одинаковы только написанны немного по разному и откуда брать собранное дерево устройств это уже выбирать вам. В общем для сборки dts файлов нужно запустить эту команду:


Скомпилированный файл будет лежать по адресу ../olimex-uboot/arch/arm/dts/.
Рассмотрим подробней получение файла boot.scr.
Для начала создадим файл boot.cmd с содержимым:


Но для того чтоб uboot понял инструкции, этот файл должен быть в виде скрипта и для этого нужно запустить команду:


Где boot.scr необходимый файл.

Первая строка load mmc 0 0x43000000 sun5i-a13-olinuxino.dtb загружает файл дерева устройств по указанному адресу в оперативной памяти. load mmc 0 указывает что загружать нужно файл с первого раздела SD карты, при этом нумерация для uboot происходит нуля а не единицы.

Вторая строка load mmc 0 0x42000000 uImage загружает по указанному адресу собранное ядро линукса.

Для нашего варианта переменная setenv video-mode которая обычно дальше используется, нам не нужна так как монитор использовать не планируется.


Ну и последняя команда bootm загружает ядро с раннее загруженного в памяти.

В следующей статье будет последняя часть что должна размещаться на первом разделе SD карты, это формирование ядра линукса kernel.


Представляем руководство по обновлению или восстановлению ТВ-боксов, работающих на базе процессоров Amlogic S802, S805, S812, S905, S905, S905, S905, S905X, S905X, S905X2, S905X2, S905Y2 и S922X. Всего существует три метода, которые используют в зависимости от типов инсталляционных файлов. Наиболее распространённым является метод с использованием утилиты AMLogic USB Burning Tool.

Выбор метода прошивки

В зависимости от типов инсталляционных файлов:

    • Метод 1 = есть один файл с расширением .img, (тут два варианта: с ПК или с SD-карты)
    • Метод 2 = есть несколько файлов file.ini, file.img или zip, file.aml и .bin (без ПК)
    • Метод 3 = есть несколько файлов «u-boot.bin» (раскирпичивание)

    Есть два варианта этого метода, в обоих случаях содержимое памяти ТВ-бокса будет полностью стерто:

    1. С помощью SD-карты или USB диска с прошивкой, которые записываются на ПК.
    2. Для прошивки ТВ-бокс подключается непосредственно к ПК.

    USB-USB

    Процесс перепрошивки:


    1. После установки новой прошивки мы рекомендуем восстановить заводские настройки ТВ-приставки.

    С помощью этого метода мы будем выполнять обновление, также называемое OTA, оно всегда поставляется в файле с расширением ZIP, которое мы не должны разархивировать, потому что подпись файла будет повреждена и его будет невозможно применить.

      1. Скопируйте файл обновления ZIP на USB-накопитель или SD-карту
      2. Запустите приложение ОБНОВЛЕНИЕ & ВОССТАНОВЛЕНИЕ на ТВ-приставке. Найти её можно в меню настроек или среди установленных приложений.


        1. Для этой процедуры нам понадобится карта MicroSD, которую мы отформатируем с помощью инструмента Amlogic BootcardMaker для большей безопасности (хотя мы можем выполнить форматирование на ПК), которую мы загружаем ЗДЕСЬ.
        2. Устанавливаем Amlogic BootcardMaker на нашем ПК и запускаем его, выбрав букву устройства, на котором у нас есть карта MicroSD, и файл u-boot.bin, который мы скачали. После выбора нажимаем «Создать» для форматирования MicroSD.


        1. В корень MicroSD карты скопировать все файлы, для обновления прошивки (один archivo.zip, factory_update_param.aml, recovery.img и U-boot.bin). Файл u-boot.bin является необязательным или может также называться bootloader.img. Вставляем карту в слот ТВ-приставки.
        2. Теперь нажмите кнопку RESET, расположенную внизу или внутри разъёма A / V, и одновременно подключаем питание к ТВ-приставке. Если все сделано правильно, вы увидите, что Android начал обновление с процентной шкалой. Когда он достигнет 100%, TV-Box перезапустится с новой установленной прошивкой.
        3. После установки новой прошивки рекомендуется восстановить заводские настройки.

        15 thoughts on “ Руководство по прошивке Android TV-Box с SoC Amlogic ”

        Привет ! У меня тв приставка tronsmart draco aw80 meta не могу прошить , скачиваю прошивку распаковываю вообщем все делаю по инструкции . Дохожу до пункта (((нажмите кнопку Image и выберите файл прошивки *.img ))) дальше не знаю что делать ? где взять этот файл img .Помогите ! Если можно напишите на эл . почту Спасибо

        Файл должен быть с расширением .img и находиться там куда вы его закачали.

        Здравствуйте, у меня приставка x96 max 4/64 погасла и не реагирует ни на что . При подключении к компьютеру через кабель выскакивает неизвестное устройство и ошибка 43. Не знаю куда копать дальше

        На beelink gt1 mini первой ревизии станет прошивка от ugoos x2 cube?

        Доброго дня.Есть Vmade S905D 1GB hybrid OTT DVB-T2 также есть съемный тюнер от одноименного DVB-T2/S2 .Поставил его и Т2 заработал а S2 я пытался активировать родной прошивкой от DVB-T2/S2 (платы одинаковы). Но в DTV не появляются настройки DVB S2. Значит бокс определяет что из прошивки брать .Подскажите пожалуйста. как это поменять

        Привет! У меня такое дело, не могу прошить Tronsmart Draco AW80 Meta, скачиваю программу PhoenixUSBProV334_EN и драйверы, разархивирую, устанавливаю приложение, открываю,нажимаю на кнопку Key File и не могу выбрать файл AW_LCTOOLS.rey так как его нету))) ПОМОГИТЕ

        Здравствуйте,скажите пожалуйста что делать,при прошивке выскакивает ошибка [0х10103003] Romcode/Initialize DDR/Download buffer/USB transfer стоит прошивка PROSTO TV

        Здравствуйте, подскажите пожалуйста прошивку для X96mini с поддержкой DRM-защиты(Widevine CDM)

        Подскажите а где скачать саму прошивку для S905 Amlogic

        Привет, не могу найти прошивку для X96mini дайте ссылочку пожалуйста. Спасибо
        И это офицевлтная прошивка?

        файл u-boot.bin, который мы скачали
        где взять archivo.zip, factory_update_param.aml, recovery.img ?
        Спасибо

        Ничего не работает с вашего сайта. зачем людей обманывать. еще и топорный софт нужно качать для прошивки.

        Руководство по перепрошивке Android TV-Box с SoC Amlogic

        Представляем руководство по обновлению или восстановлению ТВ-боксов, работающих на базе процессоров Amlogic S802, S805, S812, S905, S905, S905, S905, S905X, S905X, S905X2, S905X2, S905Y2 и S922X. Всего существует три метода, которые используют в зависимости от типов инсталляционных файлов. Наиболее распространенным является метод с использованием утилиты AMLogic USB Burning Tool.

        • Если TV-Box работает хорошо, не нужно его перепрошивать.
        • Если Вы не знаете что делаете или не уверены в своих действиях – не прошивайте устройство.
        • Есть много ТВ-боксов, особенно дешевых, которые являются копиями то есть клонами оригиналов, которые несовместимы с официальными образами ПО оригинальных моделей и могут сделать нашу ТВ-приставку непригодной для использования или, например, сделать не рабочим WIFI. Определить клон или нет, не разбирая устройство и не сравнивая его с оригиналом, очень тяжело.
        • Мы рекомендуем покупать устройства в официальных магазинах, которые мы рекомендуем, и по возможности, только известные модели.

        Выбор метода прошивки

        В зависимости от типов инсталляционных файлов:

          • Метод 1 = есть один файл с расширением .img, (тут два варианта: с ПК или с SD-карты)
          • Метод 2 = есть несколько файлов file.ini, file.img или zip, file.aml и .bin (без ПК)
          • Метод 3 = есть несколько файлов «u-boot.bin» (раскирпичивание)

          Метод 1 – перепрошивка с одним .img файлом

          Есть два варианта этого метода, в обоих случаях содержимое памяти ТВ-бокса будет полностью стерто:

          1. С помощью SD-карты или USB диска с прошивкой, которые записываются на ПК.
          2. Для прошивки ТВ-бокс подключается непосредственно к ПК.

          A – перепрошивка с помощью файла .img и внешнего диска или карты памяти

          B – перепрошивка с помощью ПК

          Руководство по перепрошивке Android TV-Box с SoC Amlogic

          • Нам понадобится кабель (или переходник) USB A (папа) – USB A (папа), типа такого – ссылка на Aliexpress. Желательно чем по-короче.
          • В большинстве случаем необходимо использовать разъем USB 2.0.
          • Подготовьте саму приставку – отключите ее от питания, выньте кабель HDMI, карты памяти, флешки, донглы от пультов
          • Для Windows 10 – возможно потребуется отключить использование подписанных драйверов.

          Процесс перепрошивки:

            1. Скачайте утилиту прошивки Amlogic USB Burning Tool, распакуйте ее и запустите файл. Сначала попробуйте самую свежую версию, если она не работает, попробуйте другую, более старую версию.
            2. AMLogic USB Burning Tool v2.1.7.0 – последняя версия.
              AMLogic USB Burning Tool 2.1.6.8 – добавлена ​​поддержка SoC Amlogic S905X2.
              AMLogic USB Burning Tool 2.1.6
              AMLogic USB Burning Tool 2.0.9
            3. Во время установки будут установлены соответствующие драйверы.
            4. Перезагрузите ПК.
            5. Для прошивки с помощью данного метода, нам не нужно ничего видеть на экране ТВ или подключать его к ТВ, только к ПК.
            6. Запускаем Amlogic USB Burning Tool (один конец кабеля, не забываем, уже должен быть воткнут в ПК). Нельзя ставить галочку на против Reset after success и Overwirte. В верхнем меню выбираем открыть файл, выбираем файл (образ) прошивки и нажимаете кнопку “Старт” и только после этого (. ) вставляем второй конец кабеля в саму приставку. Компьютер должен “булькнуть” (определяет подключение USB) и начинается процесс прошивки, мы можем прогресс ее видеть в окне утилиты. Если этого не произошло и выдало ошибку, ничего страшного, вынимаем кабель из бокса на несколько секунд и пробуем снова, должно получиться. Нажимать кнопку сброса устройства требуется не всегда.
              Наблюдаем процесс прошивки, как правило на это уходит буквально несколько минут, но бывает что процесс останавливается на некоторое время, спокойно, без паники, такое возможно, через некоторое время он продолжается и должен дойти до 100% и написать что процесс завершен, внизу окна прошивки статус должен быть “ОК” и “ошибки” – пустое поле.

            Руководство по перепрошивке Android TV-Box с SoC Amlogic

            1. После установки новой прошивки мы рекомендуем восстановить заводские настройки ТВ-приставки.

            Метод 2 – перепрошивка с одним ZIP-файлом

            С помощью этого метода мы будем выполнять обновление, также называемое OTA, оно всегда поставляется в файле с расширением ZIP, которое мы не должны разархивировать, потому что подпись файла будет повреждена и его будет невозможно применить.

            Я рассматривал Rikomagic MK22 TV Box около двух недель назад, тогда же я сделал онлайн обновление прошивки. Компания выпустила новую прошивку .IMG для Amlogic USB Burning Tool , под управлением Windows и Burning tool, которые не очень хорошо работают.

            Метод для Linux

            Во- первых , нам нужно иметь инструмент для извлечения некоторых файлов из прошивки. Создание AML-ТПиР-pack-extract.c при помощи кода, который я нашел на Freaktab и слегка модифицировал его для файла прошивки:

            return ntohl ( ( test [ loc ] << 24 ) | ( test [ loc + 1 ] << 16 ) | ( test [ loc + 2 ] << 8 ) | test [ loc + 3 ] ) ; buffer = ( uint8_t * ) malloc ( ( filelen + 1 ) * sizeof ( uint8_t ) ) ; for ( record = 0 ; record < ( uint8_t ) buffer [ 0x18 ] ; record = record + 1 ) < sprintf ( filename , "%s.%s" , ( char * ) & buffer [ record_loc + 0x120 ] , ( char * ) & buffer [ record_loc + 0x20 ] ) ; fwrite ( & ( buffer [ file_loc ] ) , sizeof ( uint8_t ) , ( size_t ) file_size , f ) ; gcc aml - upgrade - package - extract . c - o aml - upgrade - package - extract

            и запускаем файл прошивки:

            . / aml - upgrade - package - extract aml_s912_q6330 - R - BOX - PRO - 3gddr - mac - 20161015.img

            будет извлекаться куча файлов:

            / edev / amlogic / s912 $ ls

            aml_s912_q6330 - R - BOX - PRO - 3gddr - mac - 20161015.img logo . PARTITION

            Вам нужен aml_sdc_burn.ini и aml_sdc_burn.UBOOT , плюс сам файл IMG для создания загрузочного устройства.

            Теперь нужно найти вашу микро SD карту (отформатированную с файловой системой FAT32) с lsblk:

            └─ sdc1 8 : 33 0 931.5G 0 part / media / jaufranc / SEAGATE EXTENSION └─ sdd1 8 : 49 1 3.8G 0 part / media / jaufranc / 6106 - E11B sr0 11 : 0 1 630M 0 rom / media / jaufranc / CanonEOS285W loop1 7 : 1 0 4.3M 0 loop / snap / canonical - livepatch / 17 loop2 7 : 2 0 4.3M 0 loop / snap / canonical - livepatch / 15

            В моем случае это / DEV / SDD, но я буду использовать / Dev / SDX в инструкции ниже:

            sudo dd if = aml_sdc_burn . UBOOT of = / dev / sdX seek = 1 skip = 1 bs = 512 cp aml_sdc_burn . ini aml_sdc_burn . UBOOT [ device - mount - point ] cp aml_s912_q6330 - R - BOX - PRO - 3gddr - mac - 20161015.img [ device - mount - point ] / aml_upgrade_package . img

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



            Удалите карту микро SD, выключите и снова включите плату, чтобы завершить обновление, и в течение одной или двух минут запустится Android. Если вместо этого, прошивка заканчивается логотипом с красным крестом, проверьте MD5 прошивки (например, с помощью md5sum в Linux), чтобы убедиться, что он не поврежден. Если поврежден, то повторно загрузите файл и / или повторно скопируйте файл на микро SD карту.

            Метод для Windows

            Если вы являетесь пользователем Windows , то это намного проще , так как вам просто нужно использовать Burn_Card_Marker инструмент, который вы можете скачать здесь.


            Но после запуска программы в Windows 7, и изменении языка в верхнем меню программа остаётся на китайском языке и была похожа на скриншот ниже





            Теперь вы можете вставить карту микро SD в свой ТВ-бокс, войти в меню восстановления или с помощью какого-нибудь другого способа подходящего для вашего телевизора, и обновление прошивки запустится автоматически.

            Сама плата HK1 естественно не поддерживается дистрибутивом, но построена на поддерживаемой платформе Amlogic S905X3 (meson-sm1).
            Чип на моей платформе обозначается как meson-sm1. Чтобы собрать образ под этот чип над найти наиболее похожую плату из списка имеющихся. Для этого в директории, куда скачали репозиторий armbian выполняем:

            На данный момент наиболее похоже на то что мне нужно выглядит файл odroidc4.conf.
            Собираю Ubuntu 20.10:

            Внезапно - она не нашла встроенный NAND-flash, но нашла опреативку, SD-карту и сначала загрузилась старым бутлоадером:

            Затем прошло что-то похожее на тестирование RAM, а потом - я увидел загрузку нового U-Boot:

            Эксперименты показали, что держать замкнутыми контакты нужно до момента появления строк:

            А прд ними будет счетчик.
            Затем - я извлек карту памяти и выключил-включил коробку - пошла загрузка с новым U-Boot со встроенной флеш-памяти и далее при включении коробки (без карты памяти) стабильно запускался новый U-Boot (что уже неплохо).
            Дальше - я залил на карту пямяти собранный образ Armbian:

            и дальше пусто. В конфиге build/config/bootscripts/boot-odroid-c4.ini указано устройство консоли ttyS0, а должно быть наверное ttyAML0 Но, судя по тому что моргание светодиодов у коробки стало другим было похоже, что что-то там загружалось и через некоторое время увидел вот такое:

            Как прошить Armbian на HK1BOX

            В итоге порядок установки Armbian на HK1BOX вышел такой:

            Подключился к консоли коробки, загрузил андроид и забекапил образы встроенной флехи целиком и разделов поотдельности. Нужен будет раздел bootloader. Собрал образ и скопировал файл образа (именно как файл) на SD-карту. Загрузился в дефолтный андроид, вставил SD-карту и залил файл образа с помощью dd на строенную флешку. Вытащил SD-карту и перезагрузил коробку - она загрузилась с новым U-Boot и ушла в boot loop с ошибками инициализации памяти. Залил на SD-карту старый U-Boot bootloader, вставил карту в коробку и замкнул контактики под встроенной флешкой. Система стартанула с SD-карты со старым U-Boot и прописала во встроенную флеху (на которой уже новый U-Boot) параметры для инициализации памяти. Теперь система нормально стартует с новым U-Boot со встроенной флешки и способна загрузиться.

            Немного осмелев и поняв, что убить коробку совсем не так уж просто я залил всю внутреннюю флеху нулями и повторил установку. Всё заработало.

            Проблемы

            не загружается при отсоединенной последовательной консоли

            U-Boot не загружает систему, если отключена консоль (кабель физически не подключен).
            При подключении кабеля rs-232 в момент “зависания” там видно приглашение консоли U-Boot. Всё выглядит так, как если бы загрузка прервалась по нажатию клавиши.
            При нажатии Enter в консоли U-Boot должна выполниться последняя команда, но там в последней команде обычно бывал какой-то мусор, причем довольно часто разный.
            Я сделал вывод, что скорее всего консоль не притянута к +3.3 и “шумит” - то есть самопроизвольно льет всякий мусор в RX. Выход - в коробке между выводом V (3.3V) и RX припаять резистор 47-100кОм.
            И это помогло. Теперь всё нормально загружается.

            Не смог загрузить образ

            Не смог загрузить образ, собранный вот так:

            Хотя вот такой вариант грузился норм:

            Хотя имеет проблемы с работой systemd и других программ. Веротяно - дело в версии glibc или других библиотек. В итоге сейчас нормально заработал такой:

            Загрузка с sd-карты для переустановки системы

            В скриптах загрузки U-Boot из Armbian обнаружил, что можно переключать загрузочные устройства - практически как в BIOS ПК.
            Для того, чтобы стартануть с SD-карты нужно в консоли U-Boot выполнить:

            Убедиться, что под номером 0 видна SD-карта. И затем загрузиться с нее:

            Предполагается, что на SD-карте будет образ, совместимый с текущими скриптами U-Boot.

            fdt задан в U-Boot

            В параметрах U-Boot жестко приписан путь к dtb

            И на девайссе HK1BOX с этим dtb не заработал Wi-Fi. Я просто скопировал под этим именем dtb, с которым все работает, перезагрузился и Wi-Fi появился:

            Раскирпичивание

            Специально ради эксперимента я залил нулями весь внутренний флеш.
            Восстановить коробку удалось так:

            Заливаем на SD-карту старый бутлоадер. В самое начало. Это 4 Мб (8192 секторов). Вставляем карту и включаем коробку - она будет пытаться загрузиться со встроенного флеша, но не сможет. На ходу замыкаю контакты под встроенным флешем - он отключается и начинается загрузка U-Boot. Жму пробелы, чтобы попасть в консоль U-Boot. После того, как залит универсальный образ для Arm64, нужно отредактировать его параметры загрузки в файлике uEnv.txt. В моем случае они должны быть такие: Вставляем SD-карту в коробку и в консоли выполняем шаги, необходимые для загрузки системы (задаем смещения по которым будут загружены ядро, initrd и файл fdt, загружаем их и стартуем ядро):

            То есть фактически грузим систему с SD-карты.

            Дальше я просто брал USB-флеху (нормальную отформатированную), копировал на нее файл img с образом только что собранной системы и заливал этот образ (вернее можно залить первые 4Мб, в которых лежит U-Boot) на внутренний флеш. Теперь уже занакомая ситуация. На внутреннем флеше есть новый U-Boot, но он не может инициализировать DDR-память. Я заливаю свежесобранный образ снова на SD-карту и следом заливаю на него U-Boot на стоковый. Вставляю карту, стартую коробку - она уходит в bootloop, замыкаю флеш - она грузится с SD-карты, инициализирует память, настройки DDR попадают на внутренний флеш и загружается новый Armbian с SD-карты. Новый Armbian сам заливает себя на внутренний флеш.

            Всё что написано ниже - заметки о моих первых попытках что-то залить в TV-Box HK1. Оно не очень уже актуально, но может кому-то поможет.

            Открываем файлик uEnv.txt. В нем по-дефолту незакомментирвоаны строки rk-3399 - комментируем их и раскомментируем строки aml s9xxx. APPEND - оставляем как есть, а FDT - прописываем

            В итоге файлик получается такой (если убрать все закоментированные строки:

            Подключаем отладочную консоль. Запускаем железку и в моменты загрузки - жмем пробелыыыы - консоль выдаст приглашение для ввода команд uBoot. ЗАгружемся с SD командой

            На самом деле это скрипт. Фактически, если отбрсить всякие if-then он делает следующее:

            разобратьэто все, можно если выполнить команду

            и начать копать.
            Загрузка начинается с выпонения того, что написано в bootcmd. Чтобы printenv выводил длинные строки целиком необходимо в терминале включить wrapping в minicom это можно сделать нажав Ctrl-A, затем Z и затем W.

            Нормально подошел meson-sm1-khadas-vim3l.dtb с образа Armbian_19.11.5_Arm-64_eoan_current_5.5.0-rc6_20200127.img
            А вот результаты тестирования некоторых других dtb:

            Чтобы после установки на emmc логи systemd сыпались в консоль нужно дописать в строку запуска ядра в файлике /boot/uEnv.txt параметр systemd.log_target=console:

            Отказалась загружаться с образа Armbian_19.11.3_Aml-g12_eoan_legacy_5.3.0_20191126.img как с SD-карты, так и с двух портов USB. Это значит, что для того, чтобы загрузить ее с внешнего носителя нужно изменить настройки загрузчика U-Boot.

            Этот скрипт должен был скорректировать параметры загрузки U-Boot и позволить загрузиться с sd-карты, однако, судя по всему, установка неподписанных обновлений запрещена, поэтому нужно подключиться к консоли.

            Для того, чтобы прервать загрузку и скорректировать параметры загрузки нужно понажимать пробел и появится приглашение консоли U-Boot:

            Теперь можно поглядеть текущие параметры загрузки. Чтоы длинные строки можно было увиждеть целиком - включаем перенос (Ctrl+a w).

            Если при вставленной SD-карте выполнить:

            то успешно загружается в память ядро - файлик zImage с первго раздела вставленной SD-карточки:

            В данном случае 1080000 - это значение переменной loadaddr из вывода printenv.

            С работающего андроида

            Подключаем к девайсу флешку и с помощью консоли монтируем ее (или если она (ext)FAT - она смонтируется сама в /mnt/media_rw/xxxx): И создаем образ раздела recovery (или boot): Отмонтируем флеху, переносим файлик на комп и распаковываем:

            Кстати, извлечь этот файлик с помощью стандартных утилит android_bootimg_tools не удалось. RamDisk и kernel извлекаются, а вот третий файлик - нет!

            Нужный нам файлик - recovery.img-second.gz
            Убедиться, что полученный файлик - это dtb можно, декомпилировав его. Как это сделать - написано ниже.

            Изменение аппаратных настроек в файле dtb с помощью DTC

            Установим DTC (если он не установлен): Преобразуем двоичный файл dtb в редактируемый текстовый файл dts: Редактируем то, что нам нужно в файле dts: Преобразуем отредактированный файл dts в двоичный формат dtb:

            Изменение объема памяти, выделенной видеоадаптеру

            Вот в таком кусочке кода (параметр size):

            Задается объем памяти, выделенной видяхе. В данном случае выдляется 32Mb.

            Изменение доступного объема RAM

            Настройки (bootargs и dtb) лежат в файлике uEnv.txt

            В оригинале загружается содержимое раздела boot и хапускается, а там указан androidboot.dtbo_idx.

            Значит нужно задать переменную androidboot.dtbo_idx:

            Значение которой видно при распаковке boot.img:

            Запустить скрипт путем update не удалось (т.к. он не подписан), однако, после пристального изучения вывода printenv оказалось, что его успешно запускает команда recovery_from_sdcard, прописанная в env U-Boot. То есть - готовим флеху, в консоли RS-232 жмем пробелы и в ответ на приглашение U-Boot вводим такое:

            В результате приставка перейдет в режим дуалбута и будет грузиться с SD-карты, когда она вставлена.

            Читайте также: