Устанавливаем Linux (Armbian) на ТВ бокс
Если вести речь о энергоэффективных устройствах, то ARM64 архитектура себя отлично зарекомендовала. На рынке существует огромное предложение устройств на данной архитектуре. Но ценник при запросе определенных параметром стремительно растет вверх. Озвучим наши требования: ARM64, 1Gb ОЗУ и 8GB SSD или NAND. Естественно увеличение параметров в большую сторону приветствуется. Обратившись к рынку ТВ приставок — я вижу предложения от 1000р, что в 2-4 раза дешевле плат для разработчиков. Выбор пал на Х96 приставку
За 1000р я получил ужасный ТВ бокс, но отличный конструктор. Блок питания и клавиатура, а также HDMI кабель шли в комплекте. Прикладываю подтверждение, так как никто не поверит иначе.
Получив включил, посмотрел на тупящий андроид, выключил. Разобрал.
В профильной теме Armbian на ТВ бокс находим нужны йобраз и скачиваем. Я скачал Armbian_20.11_Arm-64_buster_current_5.9.9.img.xz
Заглянув по адресу https://www.debian.org/releases/ я вначале купился на bullseye релиз, не прочитав фразу:
This release started as a copy of buster, and is currently in a state called testing . This means that things should not break as badly as in unstable or experimental distributions, because packages are allowed to enter this distribution only after a certain period of time has passed, and when they don’t have any release-critical bugs filed against them. Please note that security updates for testing distribution are not yet managed by the security team. Hence, testing does not get security updates in a timely manner. You are encouraged to switch your sources.list entries from testing to buster for the time being if you need security support. See also the entry in the Security Team’s FAQ for the testing distribution.
Позже я поплотился за это и позже решил выделять отдельное время для игр с тестовыми образами. Для более менее стабильных систем я выбрал стабильный образ от debian. Позже мы устанавливаем образ на диск и читаем инструкцию:
How to run these images on the Amlogic platform .
Now all images Armbian and LE has all the files for activate the multi-boot. Anything addition to download and copy to media is not required.
1. Download the image for your device
2. Unpack
3. Burn the image on the medium
4. Configure in the file (uEnv.txt) launch parameters for the desired platform and model (uncomment the desired lines and comment out or delete unused ones)
If universal multi-upload has not yet been activated on this device, you need to activate it once. There are several options for activating multi-loading.
— Connect the prepared media to the device and turn on the power, boot into Android
— Open the app «Update&Backup»
— Click on «Select» local update and chose the file on the removable media aml_autoscript.zip
— Start «Update»
— System will reboot twice and start running the system from external media.
На последних образах изменились правила:
Pay attention. Starting from version 20.08 (20200814), the configuration order for the used DTB changes.
Please note that the algorithm for initial configuration of the system for startup has changed. Instead of a file «uEnv.txt», the file «/extlinux/extlinux.conf » is now used. The rules for editing a file remain the same.
All Amlogic models now need the «u-boot.ext» file.
Before launching on Amlogic, you must copy or rename one of the existing files «u-boot-*» to «u-boot.ext».
For s905 (not X) — used u-boot-s905
For s905x and s912 — used u-boot-s905x-s912
For s905x2 and s922 — used u-boot-s905x2-s922
— Теперь устанавливаем образ на SD карту.
— Открываем BOOT раздел на SD карте и переименовываем файл u-boot-s905x-s912 в файл u-boot.ext(на старых версиях этого делать не требовалось), затем в папке extlinux редактируем файл extlinux.conf (убираем ненужное и раскомментируем нужное). Для своей приставки я использововал meson-gxl-s905x-nexbox-a95x.dtb
— Вставляем SD карту в приставку.
-У меня загрузка начинается сразу, но я использую старый образ. Если загрузчик на приставке не обновлен, то заходим в обновление и выбираем обновление на флешке. После его установки первичная загрузка становится с флешки. Но в новых инструкциях рекомендуют зажать кнопку сброса, которая находится внутри разъема AV и включить питание приставки. После того, как на HDMI пойдет сигнал, отпустить кнопку сброса.
При желании можно установить Linux в приставку и затереть Android, что я успешно и сделал. Если что-то пошло не так, то:
Прошивка нового загрузчика на TV box, запуск Debian с Флешки и перенос на eMMC вместо Android
В статье пойдет речь о том, как из приставки x96 на чипе s905x сделать полноценный мини ПК на Linux.
Translation to English is here . Также основной канал в telegram
Т.к. статья была написана в 2020, то проверяйте актуальность информации. В 2022 вышло обновление — ссылка в конце.
Восстановив прошивку на ТВ боксе по этой инструкции↓, мы получаем слегка глючащий андроид, что, конечно, нас не устраивает и не радует.
В этой статье↓ я рассказал, как запустить Linux, но не обмолвился как перейти от шага 1 к шагу 2. Итак, исправляемся.
Скачиваем по этой ссылке образ или у меня в облаке . Можно прошить через Etcher, например. У меня же по двойному клику запускается 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, затем создаем пользователя и выполняем команды:
Выполнится скрипт и медленно, но уверенно скопирует все в 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 ( RU , EN , DE ), Medium , LiveJournal , YouTube .
UPD1: Данная статья не потеряла актуальности, однако получила обновление:
Linux (Armbian) на ТВ приставку S905X спустя 2 года [2022]
Прошло много времени с времени покупки ТВ приставки и 2 года с момента написания последней статьи. Решил пройти все заново и рассказать, что изменилось.
Translation to English is here . Также основной канал в telegram .
В своих прошлых статьях я устанавливал Armbian 20.05.6 и Armbian 20.10. В обоих случаях это был buster, версии были 5.7.2 и 5.9.0 соответственно. Обе версии запускались и работали, но только 5.7.2 устанавливалась на EMMC. Вот связанные публикации:
Переходим по ссылке прошивок для ARM-64 и с сожалением замечаем, что тема остановлена и новых прошивок/сборок/образов не выходило.
С одной стороны — это хорошо, ведь моя инструкция остается актуальной, а с другой стороны — плохо, ведь сегодня на дворе Armbian 22 и возможно за 2 года произошло что-то полезное. Я начал свои поиски и нашел ophub проект. На их страничке для нас просто рай, есть проекты Armbian , OpenWRT и пара проектов касательно ядра и Luci.
Этот момент для моей приставки стал новым витком экспериментов. Релизы Armbian лежат в соответствующем месте . Образы, которые я скачал — лежат на моем зеркале. На момент написания этой статьи мне подходили 4 образа:
Armbian_22.05.0_Aml_s905x_jammy_5.15.38_2022.05.11.2301.img.gz
Armbian_22.05.0_Aml_s905x_jammy_5.10.114_2022.05.11.2303.img.gz
Armbian_22.05.0_Aml_s905x_bullseye_5.10.114_2022.05.10.2024.img.gz
Armbian_22.05.0_Aml_s905x_bullseye_5.15.38_2022.05.10.2022.img.gz
Я скачал все версии, но пробовал(пока) только jammy. Выбор объясняется просто тем фактом, что у меня s905x чип, Jammy выбрал — потому что что-то новое, возможно позже перейду на bullseye. Образы нужно конечно же разархивировать и прошить на флешку. Я использовал 4GB диск, т.к. образ занимает после разворачивания именно столько. Второй момент — я использовал USB-диск. Записать образ очень просто, и я даже делал соответствующую инструкцию:
Начал я с ядра 5.15.38 и там меня ждал провал, инструкцию по его установке будет немного ниже. Как бы я не пытался запустить это образ — меня все время ждала неудача, я даже решил откатиться старой флешкой на образ 2-х летней давности, чтобы убедится в том, что все работает и все работало☺. Решил закончить с этим и попробовать для начала 5.10.114. Все заработало, поэтому инструкцию именно по этой версии я и пишу ниже:
1. Как я уже говорил, скачиваем наш необходимый образ. Внимание! То, что мне подошел Armb. 5.10.114. img.gz образ еще ни о чем не говорит. Мы с другом купили одну и ту же приставку у одного и того же продавца и внутри они — правильно, разные. На моей приставке написано «X96» и сдается мне, что от нее мне прислали только корпус, поэтому версию чипа и ревизию платы смотреть обязательно . Если вам не подошла та или иная версия, то нужно или форумы читать или перебирать версии пока вы не найдете ваш чип. Если радиатор с чипа съемный, то лучше прямо на чипе прочитать.
2. Разархивируем образ на диск. Нам нужен файл с расширением img
3. Как я уже говорил выше, записываем образ на диск при помощи Balena Etcher, хотя можно использовать и другие методы
4. Диск после успешной верификации определится и Windows нам выдаст много ошибок его чтения и пожелает форматировать. Шлем его в пень и ждем пока откроется диск Boot. Если этого не произошло, то открываем его сами. Вообще, после прошивки диск выглядит в Windows так:
6. У нас будет много файлов, с расширением bin, название которых начинается с u-boot. Находим тот, который соответствует вашему чипу. В моем случае — это s905x, и я использовал файл u-boot-s905x-s912.bin , но не все так просто, есть табличка , которая подсказывает, что есть как минимум одна приставка с чипом s905x, которой нужен файл u-boot-p212.bin. Я надеюсь, что это просто шутка и кто-то ошибся при оформлении. Итак, файл u-boot-s905x-s912.bin переименовываем в u-boot.ext . Если все успешно и с файлом вы угадали, то приставка не будет циклично перезагружаться или висеть долгое время. Однако, как даже если файл выбран на 100% верный — приставка все равно может виснуть или перезагружаться.
7. Переходим в папку extlinux и там находим файл с названием extlinux.conf . Открываем его блокнотом и находим в нем строчку типа:
fdt /dtb/amlogic/meson-gxl-s905x-nexbox-a95x.dtb
Вот тут начинается вторая лотерея — найти правильный файл с конфигурацией. Тут только Гугл поможет вам. В моем случае я искал по ключевым словам s905x и nexbox-a95x , притом если с чипом мы определилась раньше, то факт того что моя x96 на самом деле nexbox-a95x — я узнал, когда искал на 4pda прошивку для его восстановления. Если вы покупаете что-то не NoName на Ali, то это нормально, тут нечему удивляться. Еще один вариант — просто перебирать файлы из папки \dtb\amlogic. Некоторые из них сразу можно откинуть по чипу или имени.