Продолжая тему «что можно сделать из обычной ТВ‑приставки» — можно сделать, например, очень экономичный и компактный десктоп.
В обычной жизни такое может быть никогда и не понадобится, но всякое в жизни бывает...
Питание такого компьютера — всего 5в, его можно подключить к аккумулятору через обычную USB‑автозарядку, в сочетании с 12-вольтовым монитором получится этакий «компьютер для автономщика», если конечно вы дружите с Линуксом.
В общем, идея была собрать максимально недорогой и компактный десктоп, с возможностью питания от аккумулятора.
За основу взят TV‑box на Андроиде, под названием Z8 — внутри него 64-битный ARM процессор, 4 Гб ОЗУ и 32 Гб «диск». Цена этого девайса на тот момент была в районе 1300 рублей.

К нему подошла прошивка Armbian‑unofficial_24.5.0-trunk_Transpeed-8k618-t_bookworm_edge_6.7.12_xfce_desktop.img, это основанная на Дебиане ОС, в данном случае с поддержкой Xfce.
Я сейчас специально не уточняю где именно ее можно скачать, потому что китайские ТВ‑приставки известны своей непредсказуемостью, и то, что подошло у меня — может не подойти у кого‑то другого, тут нужно только понимать направление поисков, а искать все равно придется самому.
Для других моделей, например X88mini13 — соотвественнно, нужна будет другая прошивка, например со словами «Hinlink‑h28k» в названии — но принцип все тот же, внутри АРМ 64-битный с 4 Гб ОЗУ.
Компьютеру нужна клавиатура и мышь. Как оказалось, удобно использовать беспроводную.
У меня когда‑то был старый комплект, Genius, с коробочкой‑ресивером на проводе, где клавиатура постоянно отваливалась, не хотела работать дальше метра от ресивера, терялись нажатия и т. д., в общем, всё плохо.
Но сейчас появились новые модели, где ресивер — небольшая «заглушка» в USB‑порт, дальность до 10 метров, все стабильно и хорошо.
Есть полноразмерные, но поскольку цель «максимально недорого и компактно» — взял вот такую (пульт для сравнения размеров):

Стоимость этой клавиатуры менее 400 р. Работает прекрасно, имеет подсветку кнопок, тачпад, без которого мне уже сложно представить комфортную работу, USB‑зарядку.
Хотя, конечно, мелкая — но так и было задумано.
Остается монитор. Вот тут, к сожалению, у меня ничего подходящего, кроме телевизора, не нашлось. Разрешение экрана 1920×1080, FullHD, вход HDMI.
Пожалуй, в заданной концепции монитор — самая дорогая и самая энергоёмкая деталь, 12-вольтовые модели есть, но их надо будет еще купить.
Ок, устанавливаем прошивку, точнее даже — создаем LiveSD, записывать на внутреннюю память необязательно, флеш‑карты на 64Гб сейчас недороги.
И вот на экране — графическая оболочка, Xfce, браузер, можно установить Gimp, Office — в общем всё работает, весь привычный софт. Можно смотреть фильмы — звук идет через HDMI на телевизор, именно поэтому ТВ удобнее. Даже в игры через DOSBOX играть можно.
В целом цель почти достигнута (осталось найти монитор с динамиками или мини‑ТВ с хорошим экраном).
А вот дальше — некоторые особенности настройки Xwindow
Дело в том, что по умолчанию размер экрана, на который настроены там Иксы — 1024×768.
Точнее даже так, они НЕ настроены, этот режим у них идет по умолчанию. А телевизор, как я уже говорил, 1920×1080.
Причем телевизор с претензией на «умность», поэтому пытается адаптироваться, подстраивая свое разрешение, но не всегда — слетает при переключении источников ввода.
По этой причине картинка в разное время то занимает весь экран, то уменьшается и располагается по центру, ну и вообще маловато как‑то 1024×768.
Есть как минимум два способа настроить большее разрешение:
Можно использовать команду xrandr.
Если запустить ее без аргументов — она выведет на экран список доступных режимов, можно выбрать нужный, например так:
xrandr -s "1024х768"
Но нам нужен 1920х1080, а его нет. Добавляем, для этого надо доустановить еще одну программу:
apt install xcvt
cvt 1920 1080
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
Мыполучили строку Modeline, в данном случае «1920×1080_60.00» это название режима, а остальное — описание параметров. Название можно сократить до «1920×1080» для удобства.
Теперь нужно посмотреть, какие устройства вывода есть:
xrandr --listmonitors
0: +HDMI-1 1920/508x1080/286+0+0 HDMI-1
Есть монитор HDMI-1. Запомним, и добавим режим:
xrandr --newmode "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode HDMI-1 "1920x1080"
xrandr -s 1920x1080
Создали новый режим, добавили его к монитору HDMI-1 и переключились на него. Всё хорошо, теперь эти команды можно куда‑нибудь записать, чтобы они выполнялись при запуске Xwindow.
Например, есть такой каталог /etc/X11/Xsession.d, в нем лежат скрипты, которые выполняются при запуске X‑сессии. Если создать там свой скрипт с этими тремя командами — после логина в систему они будут выполняться, создавая нужный режим и переключаясь в него.
Но это не совсем правильно, потому что, во‑первых, они будут выполняться при каждом входе в систему, каждый раз создавая режим заново даже если он только что был создан, а во‑вторых потому, что есть еще «графический логин», процесс который стартует раньше и выводит окно запроса пароля, display manager — он ничего не знает о новом режиме, и вот тогда‑то и будет показывать то на весь экран, то в центре прямоугольником.
В данном случае display manager — lightdm. Это можно увидеть, посмотрев скрипты запуска в /etc/init.d/
Он сам запускает Xorg, который еще ничего не знает про новые режимы и по прежнему работает «по умолчанию».
Поэтому правильный вариант — использование xorg.conf
Файлы конфигураций xorg.conf содержат секции, описывающие устройства ввода‑вывода, с которыми работает X‑сервер, обычно они лежат где‑то в /etc/X11/ или /usr/share/X11/, в данном же случае есть специальные каталоги /etc/X11/xorg.conf.d/, в которых лежат отдельные файлы конфигурации — но нужного нам там нет, и его надо создать.
Для начала нужно зайти по сети, чтобы спокойно работать, независимо от работы X‑сервера.
Затем убить процесс display manager:
/etc/init.d/lightdm stop
При этом выключится X-сервер, на экране будет пустота, а мы будем создавать конфигурационный файл.
Для начала можно попробовать команду:
X -configure :0
В идеале она должна создать в текущем каталоге файл-заготовку, которую затем можно скопировать в /etc/X11/xorg.conf.d/, но в нашем случае оно ругается на ошибку:
List of video drivers:
modesetting
fbdev
No devices to configure. Configuration failed
Это не плохо. Мы получили названия двух имеющихся видеодрайверов, и можем создать конфигурацию вручную:
Section "Device"
Identifier "dev1"
Driver "modesetting"
#Driver "fbdev"
EndSection
Section "Monitor"
Identifier "mon1"
Modeline "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
#Modeline "1024x768" 60.80 1024 1056 1128 1272 768 768 770 796
#Modeline "800x600" 38.21 800 832 976 1008 600 612 618 631
#Modeline "640x480" 24.11 640 672 760 792 480 490 495 50
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "mon1"
Device "dev1"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1920x1080"
#Modes "1024x768" "800x600" "640x480"
EndSubsection
EndSection
Что здесь происходит:
Создаются три секции:
Device — описание видеовыхода, в данном случае два возможных варианта драйверов, один из них закомментирован, и идентификатор.
Monitor — описание монитора. Это именно монитор, с указанием режимов работы которые он поддерживает. Исторически, для CRT‑мониторов тут можно было выставлять настройки синхронизации развертки, точно настраивать позицию на экране и прочее — сейчас нам это все не нужно, просто вставляем строку Modeline, полученную ранее (остальные чисто для примера, закомментированы)
Screen — экран, тут указывается, с какой видеокартой и каким монитором он работает, глубина цветности, доступные режимы и т. д.
Нам нужен единственный выдеовыход, единственный монитор и один режим.
Теперь этот файл нужно сохранить в /etc/X11/xorg.conf.d/, и можно проверять.
От рута запускаем:
X :0
Программа запускается, не вылетает, ошибок не пишет, но на экране пустота — так и должно быть.
Вот теперь можно запустить обратно display manager — он должен работать уже в режиме 1920×1080.
Можно перезагружаться — всё должно работать.
Остается последняя проверка: зайти юзером через графический интерфейс и написать:
xrandr
Эта команда должна вывести список доступных режимов, и среди них «1920×1080», отмеченный как текущий.
Кстати, если попробовать выбрать другой драйвер, fbdev — будет доступен единственный режим «1024×768», то есть тот драйвер здесь не подходит.
Ах да, остался русский язык ввода. Это просто — нужно выполнить под юзером команду:
setxkbmap -layout us,ru -option grp:caps_toggle
Теперь Caps_lock переключает клавиатуру Рус/Лат.
А обычное поведение Caps_lock, фиксация БОЛЬШИХ БУКВ — Shift+Caps_lock
Ну, или кто предпочитает другие сочетания — alt_shift_toggle, ctrl_shift_toggle...
Поместить эту команду можно хоть в ~/.profile, хоть в /etc/X11/Xsession.d/xxx
Работает независимо от используемого DE.
Но зачем? Есть же ноутбук!
Конечно есть. Причем работающий от тех же 12 вольт, которые, предположительно, есть от аккумулятора, и с тем же Линуксом.
Просто потому что так — тоже можно. Для чего‑то же десктопы используют до сих пор...
Комментарии (42)
4chemist
21.01.2025 18:16Была идея сделать из андроид приставки подобие AirPlay. Подключал оптический выход приставки к оптическому входу ресивера с акустикой. Дебиан запускал с microSD и настраивал там PulseAudio для получения аудиопотока из сети и трансляцию его на оптический выход. Трансляция аудио с другой линукс машины без вопросов. С windows куча приседаний начиная от виртуальной звуковой карты, либо портированного PulseAudio, еще какой-то софт с гитхаба пробовал, всё не понравилось. Преследовали щелчки если буферизацию маленькую ставил, отставание звука от видео, отваливались клиенты если транслировал с двух источников, приставка не справлялась с передискретизацией аудио, и другие "прелести". Тогда отложил эту идею в долгий ящик, даже не опробовав трансляцию со смартфона. Ваша статья пробудила воспоминания, надо будет опять изучить вопрос.
YegorP
21.01.2025 18:16Если бесполезной аудиофилией не страдать (не отрицаю сушествование полезной), то обычный адаптер блютус>оптика закрывает все эти юзкейсы, стоит копейки и стабильно работает.
Сжатие блютус можно выслушать только в наушниках. На колонках любого класса крайне сложно.
Grey83
21.01.2025 18:16Я сейчас специально не уточняю где именно ее можно скачать
Да в принципе особо без разницы откуда armbian качать: там основная проблема – работающий dtb-файл, с которым всё железо определяется.
Мне, например, пришлось под свой бокс из 2 файлов собирать, чтобы и фронтальный дисплей с синезубом, и wi-fi работали.Для начала нужно зайти по сети, чтобы спокойно работать, независимо от работы X‑сервера.
Затем убить процесс display manager:А можно просто открыть консоль и вбить в ней
sudo thunar
, затем перейти в нём в нужный каталог, открыть файл конфигурации и отредактировать его в текстовом редакторе, а потом сохранить.JBFW Автор
21.01.2025 18:16Не всё так просто: конкретно у Z8 используется DDR3, для инициализации которой нужен правильный SPL, то есть еще до того как вы подберете dtb. Иначе у нее просто памяти не будет, не определится RAM.
Ну и смотря что нужно - тут вот тоже фронтальный дисплей не определился, да и "не нужОн!".А можно просто открыть консоль и вбить в ней
sudo thunar
, затем перейти в нём в нужный каталог, открыть файл конфигурации и отредактировать его в текстовом редактореЭто если вы уже знаете что именно там редактировать. Предположим что не знаете - потому что "старого" нет, какой драйвер - неизвестно, и любой косяк приведет к тому что вместо "sudo thunar" получим тот самый черный экран нестартовавших Иксов, и все равно придется лезть по сети разбираться. Ну или к serial консоли припаивать проводки.
Grey83
21.01.2025 18:16Не всё так просто: конкретно у Z8 используется DDR3, для инициализации которой нужен правильный SPL, то есть еще до того как вы подберете dtb.
Что neofetch показывает, кстати? Он в армбиан идёт в комплекте (как и MC).
TOX1 4/32 на Amlogic s905x3 (запускал с флешки 20.12.2024) JBFW Автор
21.01.2025 18:16Кстати, я бы ему особо не верил. Вот вывод с машинки X88mini13:
Host: Rockchip RK3528 X88PRO DDR4 V10 Board
Вот это неправда, точнее, там DDR3, и SPL с поддержкой DDR3, а вот сама ОС с dtb - от другого образа, с SPL без поддержки DDR3, поэтому тут оно пишет про DDR4....
Тому, что писало в консоли, всё-таки больше верю, из-за этих DDR пришлось выпаивать чип памяти с некорректным загрузчиком
kenomimi
21.01.2025 18:16нужен правильный SPL
А зачем родной затирать? Меняем только ядро (если что-то не так в родном) и корневую, профит - ничего не ломается. Причем обязательно до всех манипуляций слить дамп, и разобрать его - как минимум dts/fex и spl нам будет обязательно нужен.
JBFW Автор
21.01.2025 18:16С Z8 там всё своеобразно: родной Uboot не дает загрузить ничего кроме родного же Андроида, заменить Uboot можно - но родной SPL не запустит чужой Uboot, а полностью чужой SPL с Uboot должны поддерживать инициализацию DDR3.
С другими да, можно извращаться вплоть до того что запустить ядро Андроида с корневой ФС Дебиана, не говоря уже о переразбивке памяти и замене ядра, но не в этом случае.
Самые беспроблемные - на базе Rockchip-процессоров...
Grey83
21.01.2025 18:16Вообще, как оказалось, основная проблема устройств на arm с линухом на борту - малое количество доступного софта под эту архитектуру.
И box86/64 тут не всегда поможет: у меня, например, не стартуют клиенты телеги из-за отсутствия необходимых инструкций (их там с десяток таких), хотя котатограм из флэтпака запускал как-то.Ну и в качестве браузера Thorium из deb-пакета нормально работает (Min, Falkon и Dillo так себе юзать оказалось, потому попробовал и снёс).
Grey83
21.01.2025 18:16Ну и ещё можно поставить Manjaro ARM как на флешку, так и на eMMC.
Но опять же нужно найти рабочий dtb под свой бокс. Этот файл должен подойти как к armbian, так и к Manjaro, главное его в стартовый конфиг прописать.
Ну и можно в этом конфиге менять строчку с этим dtb, пока не найдёшь наиболее подходящий. Если его на форуме 4pda/armbian/etc сразу не узнаешь, конечно.
economist75
21.01.2025 18:16Подход автора одобряю, взять "на всякий" в отпуск, в кармане куртки, тв-бокс с Линуксом, чтобы затупить/заадминить/поправить пару строк в VSCodium прямо в гостинице, как показывает жизнь, невероятно прозорливо.
Слегка преувеличено что можно на ARM rk3318-box и т.п. "около 1ГГц-вых CPU" смотреть в Armbian видео или Ютьуб. Можно но только скачанное, в плеере mpс, запущенном с нужными GPU-флагами, с дропами в FPS, на пределе возможностей коробочки CPU-загрузкой 80-100% и негуманной для пассивного охлада температурой 75-85С. Впрочем, цена невелика, года три прослужит.
JBFW Автор
21.01.2025 18:16Слегка преувеличено что можно на ARM rk3318-box и т.п. "около 1ГГц-вых CPU" смотреть в Armbian видео или Ютьуб
Как это? )
А я что с ним делаю, подключив к ТВ, по-вашему?Ютуб, клип, загрузка ядер по 26% в среднем. Это, вообще говоря, TV-бокс, он показывает видео даже под Андроидом (а уж там-то всякого г.... одновременно в фоне много крутится)
NutsUnderline
21.01.2025 18:16как правило не "даже" а "только". аппаратного декодирования на armbian почти не завезли, софтовое декодирование
JBFW Автор
21.01.2025 18:16Вы не поверите: смотреть mp4-фильмы можно было спокойно на Pentuim-166 Мгц, одноядерном...
Хотя, зачем мне спорить? Вон оно у меня перед глазами, работает...
Grey83
21.01.2025 18:16смотреть mp4-фильмы можно было спокойно на Pentuim-166 Мгц, одноядерном...
сильно зависит от используемого кодека в этом контейнере
если там окажется h.265, то будет отличным результатом пропуск 9 кадров из 10JBFW Автор
21.01.2025 18:16Ну вот не поленился, скачал файл с видеорегистратора, там как раз h.265, 1920x1080, mplayer, full screen mode.
Загрузка одного ядра - около 63%. Нет пропусков....Grey83
21.01.2025 18:16На первом пне?
И можно ещё метаданные видеофайла?JBFW Автор
21.01.2025 18:16Нет конечно, на этой приставке, сейчас. Мы же вроде про Armbian говорили, а про Пентиум - что даже тогда видео смотрели люди.
В те времена никаких h.265 еще не существовало, он только лет через пять появился...
VIDEO: [HEVC] 1920x1080 24bpp 12.000 fps 656.2 kbps (80.1 kbyte/s)
Selected video codec: [ffhevc] vfm: ffmpeg (FFmpeg HEVC / H.265)
NutsUnderline
21.01.2025 18:16я помню 486 с видео на 320x240 специально перекодированном
и видел много владельцев одноплатников у которых "почему то" не тянет, крики, слезы..
JBFW Автор
21.01.2025 18:16Специально проверил несколько тормозных видеофайлов - без проблем
Что я не так делаю? )Вот, "Марсианина" поставил...
NutsUnderline
21.01.2025 18:16да все так, rk более менее научились использовать видео, похоже хорошая сборка получилась.
НО "около 1ГГц-вых CPU" от Alwinner это не точно не касается, поэтому не стоит обобщать
longtolik
21.01.2025 18:16Ждём компьютер в умных часах :)
Grey83
21.01.2025 18:16JBFW Автор
21.01.2025 18:16Вот вы смеетесь, а несколько лет назад гламурный журнал Vogue выпустил номер, на одной из страниц которого был вклеен плоский экран с живой рекламой чего-то.
https://habr.com/ru/companies/timeweb/articles/855134/До сих пор не пойму, куда он делся из дома, похоже кто-то выкинул...
pr1k0l
21.01.2025 18:16В качестве монитора можно использовать Android-смартфон с платой видеозахвата HDMI->Type-C. И недорого (если конечно телефон, поддерживающий такое подключение, уже в наличии), и автономно.
NutsUnderline
21.01.2025 18:16да, так и делают, остается только разобраться зачем здесь бокс на слабом проце если на телефон можно поставить termux/anlinux а проц на нем скорее всего гораздо мощнее
Grey83
21.01.2025 18:16М/б то, что бокс может быть на порядок дешевле смарта с usb 3.x в котором видеовыход реализован (а не передача по Wi-Fi). Ну и помимо HDMI-видеовыхода (через который как правило и звук передаётся) имеется 2 и более USB-гнезда для подключения переферии и rj45 для Ethernet (100MB или 1GB, в зависимости от бокса). Для смарта чтобы реализовать такое ещё нужно будет хаб докупать, который по стоимости выйдет как тот бокс.
Тогда уж проще и удобнее купить микро-ПК на каком-нибудь n100, который по габаритам не намного от бокса ушёл.NutsUnderline
21.01.2025 18:16нет-нет, тут все наоборот. для смартов есть универсальные штуки видозахвата, т.е. это видео-вход. а уж к нему можно подключить и бокс, и мини пк (и так делают, видел примеры). Выход видео получить внезапно даже сложнее, оно как бы для подключения телеков-мониторов-проекторов
Grey83
21.01.2025 18:16вот сейчас ничего не понял
В смарте в порте usb реализован видеовход?И что за видеозахват, если экран смарт может транслировать по Wi-Fi. Может не видеозахват, а что-то типа устройств Chromecast?
NutsUnderline
21.01.2025 18:16В смарте в порте usb реализован видеовход?
теплее, но не горячо. В смарте обычный usb. которые поддреживает стандарт uvc, помимо прочего, так же по протоколу usb uvc можно и вебкамеру подключить.. Cпециальный переходник (ну там микросхема вобщемто), преобразует подаваемый на него видео сигнал c hdmi в вот этот самый usb uvc. И специальная программка отображает получаемую картинку на экране смартфона.
всякие ][ромкасты и wifi обычно служат для того чтобы картинку со смартфона отображать на экране внешнего телека
Grey83
21.01.2025 18:16Нафига на экран смарта выводить картинку?
Тут статья как с устройства вывести картинку на монитор/телевизор и использовать в качестве десктопа.
Так-то можно просто на ведроиде софт запускать виндовый через wine (я запускал).А какой смысл в таком мелком экране? Чтобы что?
Мне и на 15" экране ноута работать было всегда некомфортно из-за малой диагонали, а тут диагональ 6–7". Можно конечно купить китайскую подставку с увеличивающей линзой или гарнитуру для 3d. В первом случае диагональ картинки увеличится на пару дюймов, во втором нужно ещё решить как реализовать вывод в стереорежиме (можно конечно задействовать что-то типа VRidge, но там нужен ПК и смысл в таком «экране» во многих случаях пропадает).NutsUnderline
21.01.2025 18:16все это да, но есть вот и такие желающие, @pr1k0l например
Grey83
21.01.2025 18:16Ну то разве что в плане использовать бокс автономно от аккумуляторного ИП где-то вдалеке от розетки, про что в статье мельком упоминалось.
Но ведь есть автомобильные мониторы чуток большей диагональю и разрешением как в бюджетных смартах (HD и ниже), правда видеовход там RCA (aka тюльпаны). Питание от бортсети авто. Обычно для камер заднего вида используются (в магнитолах с ведроидом обычно свой экран есть, куда и видео с камеры вывести можно).
Galileosky
21.01.2025 18:16Импонирует такой подход: минимум затрат, максимум эффективности. Превращать доступные устройства в рабочие инструменты — настоящий инженерный подход. Зачем? Просто потому что так тоже можно
Worky
Не, проще Хром\Бук-Бокс купить и обычный х86-64 иметь со всеми вытекающими.
JBFW Автор
Это неспортивно )
serega404
Согласен, я вот ещё из спортивного интереса поставил proxmox на ТВ приставку (rk3318 1.1ghz)... А после чего вернул android и избавился от устройства, поняв то что такой процессор не подойдёт даже для каких либо серверных нужд.
JBFW Автор
Ну и напрасно. Подобные у меня сейчас:
- универсальный гейт (прокси и прочее) - ок
- мини-вебсервер для "умного дома" (просто не HA - тот тормоз конечно) - ок
- детектор объектов для видеонаблюдения - ок
- сервер автоматизации - ок
А вот такое:
ну это как бы немного перебор )