- Linux на X96 или какой же этот ваш ARM овно
- Linux вместо android tv box
- Устанавливаем Linux (Armbian) на ТВ бокс
- Прошивка нового загрузчика на TV box, запуск Debian с Флешки и перенос на eMMC вместо Android
- Запуск дистрибутива Manjaro ARM Linux 21.04 с SD-карты на ТВ-боксах Ugoos серии AM6
- Что нужно для установки:
- Ссылки для скачивания и установка
Linux на X96 или какой же этот ваш ARM овно
Подогрел мне кум неудачно прошитую андроид-приставку X96-mini. Он вообще любитель «обновляться» без нужды, вот и этот девайс окирпичил.
Беззащитная машинка умещается на ладошке, и содержит в себе с понтом четырехядерный Amlogic S905w, два гига ОЗУ, и 16 Г флешку.
Что вам сказать, мужчины и женщины. Во время раскирпичивания девайса, я познал всю боль устройств на базе ARM и на меня снизошло просветление, почему ARM никогда не будет на десктопах, по крайней мере в том исполнении, котором он теперь.
Итак, начнем с того, что готового образа НЭД (уже молчу о том, что его сперва нужно создать). Нет, образы конечно есть. Только вот они под другие модификации. Образ под устройство с 1Гб отличается от образа под устройство с 2Гб. Они все отличаются от образа сделанного под устройство на базе памяти Samsung, а этот образ отличается от образа сделанного на базе памяти Hynix.
Визуально это видно как либо ОС не запускается вовсе, либо ядро падает в overflow и kernel panic, потому что не совпадают пару байтов откуда это ядро читать.
Ладно, готового образа нет, попробуем сделать свой. Но не тут-то было. Сначала нужно записать загрузчик. Но это загрузчик НЕ ПОД ARM, и даже не загрузчик под этот процессор. Это загрузчик под конкретное устройство.
Вот нагуглился аналогичный по процессору девайс Khadas VIM1. Вроде все красиво, u-boot стянулся, флешка стартонула. Но нет, это еще не все. Нужен DTB-файл. Это описание дерева устройств. У нас в X86 вроде такое тоже есть, но оно вшито производителем. Ладно, с горем пополам накопали в базе CoreElec такой вот DTB, переименовали в dtb.img, поскольку это имя файла захардкожено. И ничего. Потому что нужен еще файл с командами сраному u-boot’у. Мы не можем просто передать управление ядру под данную архитектуру (или хотя бы загрузчику который загрузит ядро), нет. Мы должны сначала определить откуда идет запуск, скопировать оттуда ядро в память по определенному адресу, а уже потом передать управление в начало этого адреса. Ладно. Так я и сделал.
Kernel panic, stack overflow. Сцука. И тут я присмотрелся: оказывается эта система считает себя Khadas VIM1 с одним гигом ОЗУ. Ну да, на месте ядра я бы тоже зафейлился, но на месте гребанной архитектуры, я бы разрешил ядру самому определить сколько в компьютере ОЗУ, а не основываться на каком-то левом файле.
Разумеется готовых u-boot в сети я не нашел, хотя нашел маны как конпельнуть. Жаль только в этом мане нету defconfig’а под это устройство, посему конпеляция увенчалась неуспехом. Более того, под Дебианом компилятор выдал какую-то ошибку шото типа duplicate или already defined, не помню. Поставил Арч. Скомпильнулось нормально, но не запустилось. Предсказуемо.
Нашел прошивку Андроида мало-мальски предназначенную под похожее устройство. Конечно же она тоже не завелась, но благодаря полутора утилитам, удалось с нее вытащить u-boot.
Но этот u-boot грузит по умолчанию recovery.img — андроидный рекавери. Окай, в порядке эксперимента качаю TWRP, переименовываю его в recovery.img, перезагружаюсь — вуаля, работает. При чем даже радиоклава с радиомышкой и видит подключенную USB-флешку. Хотя и изображение на мониторе раздваивается. Ну да ладно, напуркуа мне эти рекавери. Записываю файл с командами u-boot’а, который собственно копирует ядро в память и его оттуда запускает, записываю ядро (у меня их два, с armbian и с manjaro) — болт тебе. booti: command not found. И таки да, через UART удалось вызвать консоль сраного u-boot’a (чем-то напоминает наш grub, лал), там такой команды нет. Пояндексив, нагуглил что команда booti загружает линуксовое ядро, команда bootm андроидное, и эта команда у меня есть. Окей, поменял. Но нет, не тот формат ядра. Конечно нет, ведь Андроид это ж не Линукс.
Подменив ядра на CoreElec (видимо с андроидной базой) — CoreElec таки запустился. Ура.
Я бы оторвал руки изобретателям подобной архитектуры. Или производителю железки. Или хоть кому-нибудь.
Если уж хочется дроч с загрузчиками — почему не выделить в процессоре область ? Это ж гребанный SoC. Этот загрузчик занимает полмегабайта. И может быть readonly. Ну как на один и тот же процессор могут использоваться разные загрузчики, в зависимости от которых у вас либо стартонет система либо нет ? Вы хоть представляете себе установочный образ Винды заточенный на работу под 8Гб ОЗУ и вылетающий если стоит 16Гб ? Вот и я нет. А представляете чтобы вы в grub прописали шота типа «RAM=2G» и ваш Линукс думал что у вас 2 Гб ? Более того, стал вылетать если вы его запустили на 4 Гб ?
Повторюсь, сей звиздец с прошивками и Линуксами творится в пределах нескольких девайсов с идентичным именем, на идентичной архитектуре, а зачастую даже на совершенно идентичных процессорах.
Короче ARM не светит на десктоп. И как мне кажется именно по причине прибитости гвоздями загрузчика к железу, железа к реализации в загрузчике. Если ваш девайс по каким-то причинам теряет свою ОС — он превращается в кирпич, по крайней мере пока вы не вкатите туда ОС с точно такого же девайса.
И да, если у кого-то есть дельные предложения по запуску Linux на этом девайсе — буду премного благодарен, пушо пока на нем работает только две ОС — CoreElec (андроид) и Khadas recovery (который хоть и Linux, но покоцанный дюже), впрочем видящий только гиг ОЗУ. X96 2G на Amlogic S905W.
Источник
Linux вместо android tv box
- 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
Источник
Устанавливаем 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
Восстановив прошивку на ТВ боксе по этой инструкции мы получаем слегка глючащий андроид, что конечно нас не устраивает и не радует.
В этой статье я рассказал как запустить 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 канал . Подписываемся чтобы не пропускать новые обновления.
Источник
Запуск дистрибутива Manjaro ARM Linux 21.04 с SD-карты на ТВ-боксах Ugoos серии AM6
В середине прошлого года в кратком обзоре было показано как превратить Android ТВ-бокс Ugoos семейства AM6 в настольный компьютер Linux с помощью дистрибутива Armbian.
Сегодня в обзоре мы расскажем как запустить дистрибутив Manjaro ARM Linux 21.04 с SD-карты / USB накопителя на ТВ-боксе Ugoos AM6 Plus.
Что нужно для установки:
-
- Скачать архив *.img.xz содержащий файл образа. Убедитесь, что загрузка завершилась успешно.
- Скачать и установить программу Etcher и записать образ на SD-карту или USB накопитель (8 ГБ или больше).
- ТВ-бокс Ugoos семейства AM6.
Ссылки для скачивания и установка
Сначала нужно скачать архив с образом: Manjaro ARM 21.04 – XFCE или Manjaro ARM 21.04 – KDE Plasma и распаковывать его. В данном случае будет использоваться образ Manjaro ARM XFCE 21.04 (Manjaro-ARM-xfce-am6-plus-21.04.img).
Дальше нужно скачать программу balenaEtcher для записи образа (можно использовать и другую, например Win32 Disk Imager).
Установите программу balenaEtcher.
Теперь запустите программу balenaEtcher, выберите образ, SD-карту (как уже говорилось ранее, можно использовать USB-накопитель) и нажмите Flash.
Обычно после записи образа, нужно изменить параметры запуска в файле extlinux.conf, который находится в папке extlinux, но в данном случае, это делать не надо, поскольку по умолчанию уже выбрана dtb для Ugoos AM6 Plus:
Теперь вставьте SD-карту / USB накопитель в устройство, подключите питание и чтобы начать загрузку с флешки, удерживайте кнопку «Recovery» в течении 5-6 секунд.
Первый запуск занимает много времени, поэтому наберитесь терпения и следуйте следующим командам на экране, когда они появятся:
-
- Раскладка клавиатуры
- Имя пользователя
- Дополнительная группа пользователей (необязательно)
- Полное имя
- Пароль для этого имени пользователя
- Пароль для root
- Часовой пояс
- Локализация
- Имя хоста
Затем система установит все эти параметры. Дождитесь появления экрана входа в систему.
Далее вам необходимо ввести пароль пользователя и немного подождать, пока загрузится рабочий стол XFCE.
Нажмите, чтобы увеличить
Как видно в скриншотах ниже, в данной версии работает WiFi, как 5 ГГц, так и 2.4 ГГц, а также Ethernet подключение.
Bluetooth также работает и удалось без проблем найти и подключится к другому ТВ-боксу.
Вот некоторые другие подробности, после запуска дистрибутива XFCE на Ugoos AM6 Plus:
Источник