Tv box прошивка linux

Tv box прошивка linux

  • Tanix TX9S – Android TV Box – Amlogic S912 – 2GB RAM / 8GB Storage
  • OS: Android 7.1
  • CPU: Amlogic S912, Octa core ARM Cortex-A53 2.0GHz,
  • GPU: Mali T820MP3
  • RAM: 2GB DDR3 Storage: 8GB eMMC
  • Wifi: 802.11 b/g/n
  • LAN: Gibabit Ethernet 10/100/1000
  • USB: 2 x USB 2.0 + SD Card
  • Официальная страница

Сообщение отредактировал Silver8025 — 08.10.21, 06:55

Сообщение отредактировал oleg1810 — 10.01.20, 11:36

oleg1810, Я сделал точно так же, как на картинке — не работает. У меня есть телевизор Samsung Tizen.

Сообщение отредактировал smsliverpool — 10.01.20, 17:39

smsliverpool, Это же не перестановка стока, а установка кастома Frankenstein Evolution 3.0. Я бы не рисковал, пока не дождёмся бэкап стока для AmLogic USB Burning Tool от Таникса. Вдруг что-то пойдёт не так, а вернуться не на что будет. тем более не понятно откуда взяты файлы для загрузчика для нашей коробки, если нет стока бэкапа под бокс. Конечно, возможно, что вляли какие-то совместимые файлы от других коробок, да и кастомы некоторые уже сущeствуют для нашей коробки, но у них проблема с wifi модулем :unsure:

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

Как портировать прошивку.img для коробки с lpddr3.
Наверное не стоило эту мелочь расписывать, все элементарно.

Суть: взять прошивку для коробок с DDR3(4) и пересобрать с загрузчиками для LPDDR3 памяти.
Просто так не получится запустить прошивку от ddr3(4). В лучшем случае в ubt будет ошибка, в худшем будет кирпич. А в случаи прошивки для microSD(я про обновления в zip архиве), то с большой вероятностью будет кирпич.

Сообщение отредактировал TechByte — 10.01.20, 20:50

Источник

О чем тут написано

Сборка образа Armbian для TV-Box HK1

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

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

На моем ноуте с процессором Ryzen 4800H сборка в докере идет 47 минут (с учетом выкачивания всех зависимостей, канал 100Мбит/с), а после выкачивания зависимостей — 8 минут.
После того, как я подключился к консоли, дождался загрузки android’а, подключил флешку с файлом образа и выполнил:

Бокс ожидаемо окрипичился :))) с таким сообщением (среди прочих):

Судя по всему это значит, что параметры инициализации памяти, которые есть в новом загрузчике не подошли к моей железке. Вот тут: https://github.com/3F/aml_s905_uboot я нашел как можно их взять из старого загрузчика и добавить в новый. План был такой — с помощью Amlogic USB Burning Tool я прошью старую прошивку, а дальше — выдеру старого бутлоадера параметры для инциализации памяти. НО это не понадобилось!!
Оказалось, кнопка Reset на моей коробке не работает (она в разъеме 3,5мм) и воспользоваться Amlogic USB Burning Tool я не смогу. После подключения коробки USB-шнурком A-A к ноуту и подаче питания при зажатой (предполагаемой) кнопкой Reset в настольной системе новое USB-устройство не появлялось, а в консоли всё тот же boot loop.
Я внимательно изучил печатную плату возле чипа флешки, а также на обратную исторону и увидел пару контактных площадок.
Терять было нечего — с помощью dd я залил на SD-карту в самое начало карты старый bootloader (слава богу я сохранил все разделы со старой прошивкой), вставил в коробку SD-карту, подал питание и замкнул контактные площадки на обратной от чипа флехи стороне платы отверткой.
Вместо таких сообщений в начале лога:

Читайте также:  Google drive для linux mint

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

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

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

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

вставил карту в коробку и включил. Началась загрузка с карты памяти. Сначала мне показалось, что ядро пока не стартует я видел только сообщение:

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

и дальше — приглашение ввести новый пароль!! Система смогла нормально загрузиться с SD-карты. Потом я выключил бокс, вытащил карту и система уже нормально загрузилась с внутреннего накопителя. Armbian сам себя установил. А отсутствие сообщений при загрузке ядра — это сокрее всего некорректные параметры запуска ядра.
К сожалению, в системе оказался не виден беспроводной модуль (наверное загружается не подходящий dtb).

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

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

Проблемы

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

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

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

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

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

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

Читайте также:  Подготовка windows не выключайте компьютер что это означает

Загрузка с 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-карты.

НЕАКТУАЛЬНОЕ

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

Как загружаться

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

На самом деле это скрипт. Фактически, если отбрсить всякие 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:

HK1 Box

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

Поэтому — следуем мануалам armbian. Вставляю карточку с armbian, загружаюсь в Android , иду в Apps, нахожу там Update, кликаю UpdateLocaleSelect, выбираю BOOT/aml_autoscript.zip, и кликаю Update. Система перезагружается и я вижу меню bootloader‘а и ошибку:

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

Подключение к отладочной консоли RS-232

На плате оказались “пятачки” с обозначениями ‘V R T G‘ — видимо консоль. Я откопал старинный провод USB-COM на базе pl2303, с помощью которого я когда-то подключал Siemens ME45 к компу для выхода в интернет, припаял к плате TV-Box‘а три проводочка — G (земля), R и T (прием и передача) и запустил minicom:

При включении TV-Box‘а в консоли minicom побежали сообщения.

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

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

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

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

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

Для того, чтоб запустить какое-либо cтороннее ядро нам нужен образ ядра и файл dtb (DeviceTreeBlob). Ядро у нас есть (на карте памяти), а dtb нужно либо скомпилировать, либо — извлечь.
Вот # cat /proc/cmdline

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

Извлечение dtb (DeviceTreeBlob)

https://www.cnx-software.com/2014/05/12/how-to-extract-a-device-tree-file-from-android-firmware-files/
Чтобы извлечь dtb из текущей прошивки нужно сделать образ раздела boot или recovery и распаковать его с помощью утилиты split_bootimg.pl. У меня не получилось распаковать образ раздела boot (распаковывался неполностью), но нормально распаковался образ раздела recovery.
Для этого:

Читайте также:  Как связаться с техподдержкой windows

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

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

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

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

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

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

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

Загрузка

Последние эксперименты

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

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

Вероятно, можно просто перепаковать. boot.img — https://www.whitewinterwolf.com/posts/2016/08/11/how-to-unpack-and-edit-android-boot-img/
Или просто добавить этот параметр к строке запуска ядра как тут:

Ошибки

Если появляется сообщение:

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

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

УДАЛОСЬ ЗАГРУЗИТЬСЯ

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

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

Источник

Прошивка нового загрузчика на TV box, запуск Debian с Флешки и перенос на eMMC вместо Android

Восстановив прошивку на ТВ боксе по этой инструкции мы получаем слегка глючащий андроид, что конечно нас не устраивает и не радует.

В этой статье я рассказал как запустить Linux, но не обмолвился как перейти от шага 1 к шагу 2. Итак, исправляемся.

Скачиваем по этой ссылке образ или у меня в облаке . Теперь не нужно прожигать его через этчер. У меня по двойному клику запускается Pi imager и прошивает. Круто это тем, что образ в сжатом состоянии в 10-15 раз меньше весит и прошивать его нераспаковывая здорово экономит место.

Перетыкаем флешку и правим название файла u-boot-s905x-s912 по инструкции в u-boot.ext. В этой статье я кажется все описывал. Убеждаемся в наличии файла aml_autoscript.zip и в папке Boot правим файл extlinux.conf. Мой выглядит так
LABEL Armbian
LINUX /zImage
INITRD /uInitrd
FDT /dtb/amlogic/meson-gxl-s905x-nexbox-a95x.dtb
APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0

На этом впринципе все. Вставляем флешку в приставку, заходим в обновления и выбираем единственный файл aml_autoscript.zip. После перезагрузки приставка уже загрузится в Linux с флешки. Создаем пароль root, затем создаем пользователя и выполняем команды
cd /root
sudo bash install-aml.sh

Выполнится скрипт и медленно, но уверенно скопирует все в eMMC, тщательно затерев Android. Извлекаем флешку и перезагружаемся. Убеждаемся, что все работает.

Образ выложил тут ,
Armbian_20.05.6_Arm-64_buster_current_5.7.2_20200612.img.7z — его я пробовал. С USB флешки он у меня даже не запустился. с SD запустился и успешно установился на eMMC.
Armbian_20.10_Arm-64_buster_current_5.9.0.img.xz — его я пробовал. С USB флешки он у меня успешно запустился. Но после установки циклично не видет eMMC и пытается загрузить еще откуда-нибудь. Возможно стоит пробовать устанавливать с SD

У Вас могут быть отличия, но принцип примерно одинаковый.

Также не забываем про instagram канал и telegram канал . Подписываемся чтобы не пропускать новые обновления.

Источник

Оцените статью