Установка linux на tv box вместо android

Обновлено: 18.05.2024

Все чаще и чаще персональный компьютер становится настоящим центром развлечений в доме. Причем если раньше это были игры или видео и музыка прямо на мониторе и наушниках, то сейчас в дело все чаще идет тяжелая артиллерия в виде ресиверов и панелей от 32» и выше. Damien Oh поделился своими идеями по использованию Linux для вашего удовольствия.


XBMC
Усилия программистов перенесших сие чудо на Linux, Windows и Mac OS заслуживают восхищения. Данный плеер не только выглядит чрезвычайно профессионально, он к тому же имеет фантастические возможности к расширению функциональности с помощью скриптов. Источником медиа-контента может быть как локальная сеть и uPnP устройства (в том числе и другие медиа-центры), так и большая Сеть.


Entertainer
Данная система предназначена для дистрибутивов с Gnome и XFce, и позволяет как просматривать фильмы и слушать музыку, так и читать RSS и прогнозы погоды. Впрочем, это вполне нормально. Damien жалуется лишь на не особо простой процесс установки и конфигурации. Но для Linux-бойцов это не станет препятствием, мне кажется.


Elisa
Данный медиа-центр как и XBMC работает не только в Linux но и в других системах. Отличительной чертой является тесная интеграция с Сетью, что позволяет смотреть фото с Flickr, слушать SSHOUTcast и смотреть Youtube.


MythTV
Данная программа начиналась как DVR, но сейчас превратилась в полноценное решение для построения домашнего центра развлечений. Я не готов судить, что появилось раньше — популярность, или дистрибутивы, включающие эту систему по-умолчанию, а то и целиком посвященные ей, вроде Mythbuntu, KnoppMyth и Mythdora.


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


GeeXboX
Это целый дистрибутив, посвященный воспроизведению всевозможных форматов ауди- и видео-файлов. Они могут быть где угодно — на CD/DVD, на винчестере или в Сети. Дистрибутив занимает всего 9 Мб и может работать даже на машине без винчестера. Это прекрасный способ утилизации своего старого компьютера.

Список, приведенный Дэмианом, наверняка не полон, и я прошу вас поделиться своими вариантами медиа-центров на базе Linux — ведь это чудесный способ использовать старый компьютер при апгрейде.


Добрый день, коллеги!
В очередной раз наткнулся на споры в комментариях в отношении ТВ-бокса на Amlogic s905. Большинство комментаторов призывают дать инструкции, что нужно сделать, чтобы из китайской коробочки сделать производительный (медиа)сервер. Скажу сразу: покурить мануалы все же придется, все само не заработает. Однако, у вас будет стимул, вы будете знать что можно в итоге получить.

Данная статья призвана обобщить довольно значительный опыт в рамках бытовой автоматизации и использования медиаплееров. Цель всего опуса описать неочевидные возможности устройств и ПО, примеры того, как можно из булки хлеба сделать троллейбус при помощи python и нескольких десятков пар костылей. Интересующихся прошу под кат.

Введение.

Итак, начнем с головного устройства. На картинке к данному обзору представлен довольно типичный тв-бкс z69 на базе 4х ядерного чипа Amlogic s905x. Многие (и я тоже) привыкли использовать данные устройства для просмотра сериалов и iptv. Я в своей медиа системе использую аналогичный бокс с 2/32гб на андройде в связке с проектором. Устройство не блещет стабильностью, часто на задачах просмотра веб контента случаются зависания и прочие неприятные, но разрешимые ситуации. Но это не цель данного обзора.
В этой части хотел бы раскрыть неочевидные многим возможности данного чипа и сравнить его с неформальным лидером рынка iot устройств — raspberry pi3. Бонусом, или даже основной частью, будут мои юзер-кейсы, о которых все время спрашивают в каментах.
Итак, покопавшись в интернете, можно узнать, что многие тв-боксы при помощи (черной) магии можно превратить в неттопы с полноценным Linux на борту. Это касается большинства чипов amlogic, rockchip и прочих платформ. Конкретно наш экземпляр — s905x — поддерживает загрузку Debian\Ubuntu подобной системы с SD карты или USB. Огромная благодарность в проработке вопроса загрузки linux на чипах amlogic сразу уходит к нашему соотечественнику balbes150.
Там же у balbes150 можно найти образ для загрузки LibreElec.

Это дистрибутив для нативного запуска Kodi/XBMC — медиаплеера с кучей дополительных плагинов. Если ваша цель состоит в сохранении медийных свойств приставки с одновременным повышением производительности и стабильности — рекомендую. Процесс установки аналогичен описанному ниже. Ссылка на дистрибутивы для s905x вот.
Кроме того, для семейства amlogic s9xxxx, собран дистрибутив признанного фаворита в русском мире дистрибутивов *Elec — AlexElec.

Ссылка на загрузку вот. Инструкция по запуску — аналогичная.
При запуске полноценного Linux дистрибутива сразу обозначим факт: в рамках эксперимента, мы потеряем “медиа” возможности приставки (точнее, отключим на время опытов — android то с приставки никуда не денется).
Но что мы имеем? А имеем мы мини-компьютер, который потребляет максимум 8 вт и который будем в дальнейшем пытаться применять для типовых задач домашней автоматизации.

Сравнение.

Чтобы не возвращаться потом, опишем сразу железные и софтовые профиты и минусы, по сравнению с аналогами.
Принято считать хорошим примером в мире устройств домашней автоматизации — raspberry pi (малинка). Эта плата, а конкретно модель pi3 b+, работает на базе 4х ядерного чипа BCM2837 с 1гб ОЗУ.

Плата имеет огромное комьюнити и почти любой вопрос, которым вы можете задаться в рамках работы с ней, скорее всего, уже решен до вас. Это ее неоспоримый плюс: поддержка. За это можно и иногда нужно переплатить(цена вопроса 30-35$). Если вы решите прошивать тв-бокс и устанавливать на него софт, будьте готовы: вы с этим(вероятно) один на один.
Также у малинки на борту разведена гребенка GPIO и других разъемов, которыми можно беспроблемно управлять хоть из ОС, хоть из уровня ПО(python\domoticz etc).

Если ваши задачи связаны с управлением датчиками или низкоуровневыми протоколами 1-wire \ i2c \ GPIO релешками и прочим прямо с платы: тв-бокс с linux тоже не про это.
В чем же плюс? А плюс в наличии готового устройства.

У вас за те же или меньшие, по сравнению с raspberry pi3, деньги будет: достаточно мощный процессор, нормальный корпус!, хороший блок питания, охлаждение(но это не точно), интерфейсы hdmi\ethernet\usb\av\audio, bt\wifi, ir (многие из них не запустятся в линуксе без танцев с бубном), антенны, внутренний накопитель. У вас будет более высокая производительность процессора и больше (в данном примере) оперативной памяти.
Сравнение производительности:

— Benchmark Run: Tue Mar 27 2018 16:22:44 — 16:50:50
0 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 7436510.3 lps (10.0 s, 7 samples)
Double-Precision Whetstone 1312.0 MWIPS (10.1 s, 7 samples)
Execl Throughput 871.6 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 180951.1 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 56264.8 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 428546.6 KBps (30.0 s, 2 samples)
Pipe Throughput 437935.7 lps (10.0 s, 7 samples)
Pipe-based Context Switching 93731.8 lps (10.0 s, 7 samples)
Process Creation 3236.2 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 2428.7 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 714.0 lpm (60.1 s, 2 samples)
System Call Overhead 929656.2 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 7436510.3 637.2
Double-Precision Whetstone 55.0 1312.0 238.6
Execl Throughput 43.0 871.6 202.7
File Copy 1024 bufsize 2000 maxblocks 3960.0 180951.1 456.9
File Copy 256 bufsize 500 maxblocks 1655.0 56264.8 340.0
File Copy 4096 bufsize 8000 maxblocks 5800.0 428546.6 738.9
Pipe Throughput 12440.0 437935.7 352.0
Pipe-based Context Switching 4000.0 93731.8 234.3
Process Creation 126.0 3236.2 256.8
Shell Scripts (1 concurrent) 42.4 2428.7 572.8
Shell Scripts (8 concurrent) 6.0 714.0 1190.0
System Call Overhead 15000.0 929656.2 619.8
========
System Benchmarks Index Score 421.7

CPU 1: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

CPU 2: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

CPU 3: ARMv7 Processor rev 4 (v7l) (0.0 bogomips)

16:26:55 up 20:47, 1 user, load average: 0.77, 0.98, 0.57; runlevel 3

— Benchmark Run: Tue Mar 27 2018 16:26:55 — 16:56:17
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 2179181.5 lps (10.0 s, 7 samples)
Double-Precision Whetstone 368.3 MWIPS (9.9 s, 7 samples)
Execl Throughput 463.0 lps (29.6 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 73545.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 20941.9 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 194029.5 KBps (30.0 s, 2 samples)
Pipe Throughput 155045.4 lps (10.0 s, 7 samples)
Pipe-based Context Switching 27361.7 lps (10.0 s, 7 samples)
Process Creation 1177.1 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 1176.1 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 317.4 lpm (60.1 s, 2 samples)
System Call Overhead 333399.9 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 2179181.5 186.7
Double-Precision Whetstone 55.0 368.3 67.0
Execl Throughput 43.0 463.0 107.7
File Copy 1024 bufsize 2000 maxblocks 3960.0 73545.4 185.7
File Copy 256 bufsize 500 maxblocks 1655.0 20941.9 126.5
File Copy 4096 bufsize 8000 maxblocks 5800.0 194029.5 334.5
Pipe Throughput 12440.0 155045.4 124.6
Pipe-based Context Switching 4000.0 27361.7 68.4
Process Creation 126.0 1177.1 93.4
Shell Scripts (1 concurrent) 42.4 1176.1 277.4
Shell Scripts (8 concurrent) 6.0 317.4 529.0
System Call Overhead 15000.0 333399.9 222.3
========
System Benchmarks Index Score 159.7

— Benchmark Run: Tue Mar 27 2018 16:56:17 — 17:25:34
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables 8690198.1 lps (10.0 s, 7 samples)
Double-Precision Whetstone 1470.5 MWIPS (10.0 s, 7 samples)
Execl Throughput 1266.4 lps (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 113576.7 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 31186.4 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 332597.5 KBps (30.0 s, 2 samples)
Pipe Throughput 616170.2 lps (10.0 s, 7 samples)
Pipe-based Context Switching 95804.8 lps (10.0 s, 7 samples)
Process Creation 2793.2 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 2657.3 lpm (60.1 s, 2 samples)
Shell Scripts (8 concurrent) 341.1 lpm (60.2 s, 2 samples)
System Call Overhead 1277095.6 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 8690198.1 744.7
Double-Precision Whetstone 55.0 1470.5 267.4
Execl Throughput 43.0 1266.4 294.5
File Copy 1024 bufsize 2000 maxblocks 3960.0 113576.7 286.8
File Copy 256 bufsize 500 maxblocks 1655.0 31186.4 188.4
File Copy 4096 bufsize 8000 maxblocks 5800.0 332597.5 573.4
Pipe Throughput 12440.0 616170.2 495.3
Pipe-based Context Switching 4000.0 95804.8 239.5
Process Creation 126.0 2793.2 221.7
Shell Scripts (1 concurrent) 42.4 2657.3 626.7
Shell Scripts (8 concurrent) 6.0 341.1 568.6
System Call Overhead 15000.0 1277095.6 851.4
========
System Benchmarks Index Score 395.2

Есть смысл заморочиться? Ну, я заморочился :)

Установка ОС.

Пример №0: Тривиальный. Настройка торентокачалок, файлохранилок.

Что тут можно посоветовать. Любое ПО на ваш вкус.
Для торренов могу порекомендовать transmission
Для общих папок с windows: samba.
Самбу, кстати, можно использовать для автоматического резервного копирования видео с популярных камер Xiaomi Dafang по вот этой инструкции.
Для монтирования яндекс диска используем dav2fs — чтобы превратить ваш бокс в облачное хранилище, например, для тех же видеозаписей с камеры.

Пример №1: Установка системы домашней автоматизации на примере Domoticz (или majordomo\OpenHAB по вкусу).

Про использование домотикза читайте на муське тут.
Последнее время я им не особо доволен, он стал тормозить при взаимодействии с xiaomi шлюзом. Но пока разбираться лень.
Устанавливается система с помощью скрипта:

После нескольких простых вопросов у вас на порту 8080 будет запущен интерфейс Domoticz. Далее подключение и настройка устройств осуществляется через этот веб интерфейс.
Без труда можно интегрировать с умным домом xiaomi и выключателями sonoff, избавив их от гнета Китая :)
Выглядит в сборе примерно так:


Пример №2: Видеонаблюдение на базе motion+motionEye.

Кто не знает, motion это видеорегистратор с открытым исходным кодом. А motionEye это веб-интерфейс для настройки камер и управления архивами.
Устанавливается по инструкции (со 2го шага)
Выглядит так:

Кстати, он умеет работать с непосредственно подключенными USB web камерами. Ну, это понятно, что для любителей приключений…
RTSP потоки сильно грузят процессор, поэтому больше 2-х потоков в разрешении 720р amlogic s905x вряд ли вытянет.
У меня дома, кстати, стоят камеры Xiaomi Xiaofang с хаком. С помощью motionEye и хака можно просматривать видео (rtsp) с камер и получать изображения без помощи родного приложения MiHome. Я считаю это очень важным, т.к. стабильность и защищенность китайского облака оставляет желать лучшего.
Мой вариант использования: при открытии входной двери, датчик открытия отправляет запрос на сервер автоматизации, там python скрипт, запущенный linux лезет к камерам и получает с них фото, после чего направляет их мне через pushover по ftp или telegram.
Далее совмещайте с Яндекс-Диском и получайте облако для записей.

Сама плата 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-карты, когда она вставлена.

Favorite

В закладки

Как превратить старый компьютер в ТВ-приставку на Android TV

Популярность умных телевизоров и специализированных приставок продолжает расти. Мы уже писали, как собрать ТВ-приставку своими руками или превратить старый компьютер в аналог Apple TV с поддержкой AirPlay и Siri.

Сейчас расскажем, как можно установить популярную платформу Android TV практически на любой старый компьютер и превратить его в умный ТВ-бокс для просмотра YouTube, фильмов и сериалов.

Зачем устанавливать Android TV на компьютер


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

В случае со сборкой приставки на полноценной операционной системе MacOS или Windows вы получите долгое время запуска, неприспособленный для большого экрана телевизора интерфейс и необходимость периодически использовать клавиатуру и мышь. Специальный пульт ДУ может частично решить последнюю проблему.

А еще для запуска полноценной настольной операционной системы понадобится более мощный компьютер, чем для работы на Android TV. Данная система разрабатывалась специально под маломощные устройства на мобильных процессорах с минимальным объемом ОЗУ (1-2 ГБ) и небольшим накопителем (от 8 ГБ).

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

С недавнего времени данную операционную систему можно установить и на обычный компьютер.

Какой компьютер подойдет для Android TV



Настолько старый компьютер точно не подойдет 😁

В прошлом году разработчики с форума xda-developers выпустили базовую сборку Android TV x86, которую можно запустить на любом устройстве с совместимой архитектурой процессора. Это адаптированная версия ОС специально для многоядерных x86 чипов Intel или AMD.

Базируется система на не самой свежей, но довольно распространенной версии Android 9, под управлением которой трудится большинство телевизионных приставок с AliExpress.

Системные требования у данной сборки Android следующие:

Процессор: двухъядерный с частотой 1,2 ГГц и более мощный
Оперативная память: минимальный объем 1 ГБ, рекомендованный объем 2 ГБ и больше
Накопитель: минимальный объем 8 ГБ, рекомендованный объем 16 ГБ и более для загрузки приложений и контента
Графика: минимальный объем видеопамяти 64 МБ, поддерживаются Intel Iris/HD/GMA, Nvidia GeForce или AMD Radeon/FirePro
Дисплей: экран с минимальным разрешением 1280×720 пикселей и соотношением сторон 16:9, 16:10 или 17:9.

Кроме этого потребуется флешка на 4 Гб или больше.

Как видите, требования очень демократичный и практически любой компьютер потянет такую операционную систему. Откровенно старое железо использовать не рекомендуем. Удовлетворяющий лишь минимальным требованиям Android TV x86 вряд ли справится с воспроизведением видео в разрешении 720p и выше.

Лучше всего использовать 4-ядерный процессор с достаточно производительной видеокартой и 4 ГБ оперативной памяти. Подойдет большинство стареньких PC, устаревшие модели Mac mini или iMac.

Как установить Android TV x86


1. Загрузите образ Android TV x86. В ветке форума разработчиков ссылку уже не найдете, но всем известный отечественный форум вам поможет.

2. Установите утилиту Rufus, если готовите флешку для Windows-компьютера или подготовьте съемный диск со специальным загрузчиком, если будете устанавливать систему на Mac.



Такие настройки рекомендуется выбрать в утилите Rufus на Windows

3. Выберите нужные параметры для записи флешки, как на скриншоте выше.

4. Запустите процесс записи накопителя и дождитесь его завершения.

5. Запустите старый компьютер с подготовленной флешки и произведите установку Android TV на накопитель.

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

Для удобного управления можете подключить специальный пульт ДУ. Кроме этого компьютером можно управлять при помощи приложения со смартфона.


В итоге получите практически полный аналог Android-TV приставки с небольшим набором недостатков, о которых поговорим ниже.

Какие проблемы могут возникнуть


▻ На компьютере с Android TV x86 не получится запустить Netflix. Изначально утилита работает лишь на официально сертифицированных ТВ-боксах, а для запуска на остальных устройствах используются взломанные или модифицированные версии приложения.

Данный случай не является исключением и нормально смотреть Netflix, к сожалению, не получится.

▻ Встроенная система Chromecast не будет работать в большинстве случаев. Это связано с отличающимся железом в мобильных устройствах и полноценных компьютерах. К счастью, есть множество сторонних утилит, которые смогут заполнить данный пробел.

Придется проверить с десяток приложений и найти рабочее, если вам так необходима возможность транслировать экран Android-гаджетов на телевизор.

▻ В сборке отсутствует поддержка сертификата Widevine L1. Он необходим для получения доступа к защищенному DRM контенту. Это значит, что некоторые сервисы, которые работают по подписке и требуют наличие сертификата, не будут передавать на ТВ-бокс видео в HD-разрешении и выше.

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

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

Если вы готовы мириться с указанными недостатками, искать способы их решения и обходные пути, можете смело пробовать Android TV x86.

(20 голосов, общий рейтинг: 4.45 из 5)

Favorite

В закладки

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