- Tv box прошивка linux
- О чем тут написано
- Сборка образа Armbian для TV-Box HK1
- Проблемы
- не загружается при отсоединенной последовательной консоли
- Не смог загрузить образ
- Загрузка с sd-карты для переустановки системы
- fdt задан в U-Boot
- Раскирпичивание
- НЕАКТУАЛЬНОЕ
- Как загружаться
- HK1 Box
- Подключение к отладочной консоли RS-232
- Извлечение dtb (DeviceTreeBlob)
- Изменение аппаратных настроек в файле dtb с помощью DTC
- Изменение объема памяти, выделенной видеоадаптеру
- Изменение доступного объема RAM
- Загрузка
- Последние эксперименты
- Ошибки
- УДАЛОСЬ ЗАГРУЗИТЬСЯ
- Прошивка нового загрузчика на TV box, запуск Debian с Флешки и перенос на eMMC вместо Android
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-карту, подал питание и замкнул контактные площадки на обратной от чипа флехи стороне платы отверткой.
Вместо таких сообщений в начале лога:
Внезапно — она не нашла встроенный 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 или других библиотек. В итоге сейчас нормально заработал такой:
Загрузка с 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, кликаю UpdateLocale — Select, выбираю 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.
Для этого:
Кстати, извлечь этот файлик с помощью стандартных утилит 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 канал . Подписываемся чтобы не пропускать новые обновления.
Источник