К сожалению в тех событиях которые происходят сейчас очень сильно замешано телевиденье и средства СМИ. Мы не в силах повлиять на то что пишут СМИ и показывает телевизор. Однако у нас есть еще возможность выбирать что смотреть, и что читать хоть и с каждым днем все сложнее и сложнее. Цель данной статьи показать, что есть альтернативы телевидению на данный момент.
После определенных событий, произошедших за последние несколько месяцев, начал задумываться о замене телевидения себе и своим близким. Очевидно самый простой вариант это покупка ТВ приставки с Android на борту, однако взглянув на цены и предлагаемое железо, идея отпала.
Активация смарт-тв не актуальна ибо в моей модели телевизора смарт-тв просто нет. Остается последний вариант, это мини-пк который будет подключен к телевизору и показывать ютуб , или видосы с семейной библиотеки.
В качестве компьютера для воспроизведения мультимедии был выбран тонкий клиент, это был один из самых недорогих вариантов.
Получив клиент не стал церемониться и полез к нему под капот. Под капотом все стандартно, SATA для подключения штатного накопителя и еще один для подключения внешнего. Брусок алюминия на процессоре для охлаждения и ноутбучная DDR3 память.
Так как в планах было еще скачивать различный контент с торрентов штатного диска на 16GB, было мало и он был заменён на Kingston A400 120GB.
В планах было добавить винчестер на 500GB для хранения домашней видео библиотеки и прочих видео.
В результате мы получаем очень неплохой ПК, с 4GB оперативки 120GB SSD и 500GB винтом. Для ТВ-приставки то что нужно.
Подключил клиент к монитору и запустился. Убедился что не убил своими руками клиент.
На этом я закончил работу с железом и начал подготовку программной части. Перехожу на основную машину с VirtualBox именно там я подготовил систему для установки на клиента. Думаю что на подобные клиенты просится какой-нибудь Linux,следовательно за основу был выбран популярный дистрибутив Debian. Выкачав оригинальный образ я поставил базовую консольную версию.
Супер. После перезагрузки я увидел консоль и скачал htop и посмотрел на процессы в системе.
Но так как телевизор это все таки про удобный GUI, нужно накатить какой-нибудь DE. Я выбрал OpenBox за его легковесность и возможности кастомизации. Впрочем, не забываю про sddm, нам нужен еще и дисплейный менеджер. И еще установил эмулятор терминала я лично выбрал kitty мне он кажется самым удобным, он нам пригодится. Устанавливается все командой: apt install openbox sddm kitty
Перезагружаемся и вижу черный экран. Отлично, то что нужно, у нас на руках максимально чистая система. Так и должно быть.
Далее открываю терминал и устанавливаю, файловый менеджер, чтобы можно было управлять файлами на нашем клиенте, выбор пал на thunar, ибо у меня был опыт его использования.
Отлично, я могу теперь с клиента посмотреть контент с диска. Но надо вложить главный функционал, а именно возможность смотреть Youtube, читать BBC или загуглить что-то с телевизора. А это значит что нужен браузер, и тут выбор к сожалению один - Google Chrome.
Едем дальше, скорее всего нужно будет удаленно управлять телевизором, считаю необходимым накатить дашборд как например cockpit.
Ставим по инструкции с офф.сайта:
. /etc/os-release
echo "deb http://deb.debian.org/debian ${VERSION_CODENAME}-backports main" >
/etc/apt/sources.list.d/backports.list
apt update
apt install -t ${VERSION_CODENAME}-backports cockpit
Так как у нас не 16GB, а чуть больше я могу скачивать торренты и смотреть прямо на телевизоре (не агитирую пираство, можно найти и то что раздается свободно.) и в качестве торрент качалки будет использоваться qbittorrent. И самое главное в настройках не забыть включить веб-интерфейс.
.
Проверим в браузере. Если что-то не работает, вы точно задали пароль не меньше чем 6 знаков?
Следующий вопрос который встал это чем смотреть торренты, очевидно используя kodi.
Для просмотра Youtube на телевизоре был выбран проект под названием Nativefier-YouTube-on-TV-for-Desktop. Он с открытым исходным кодом и выложен на GitHub. Так как проект не имеет ни репозитория ни пакета для установки, просто распакуем папку в /opt/youtube-app и напишу скрипт однострочник в /usr/bin который по команде youtube будет поднимать наш бинарник. Но думаю лучшим вариантом это создать символическую ссылку на бинарник.
Дальше дело за малым, а именно создать BBC веб клиента. Так как хотелось создать самое легковесное решение этим решением стал wry. Исходный код взят из документации из wry смысла приводить его не вижу, если есть желание можете посмотреть в репозитории проекта. Скачиваю бинарник из релизов, и просто копирую его в /usr/bin. Теперь по команде bbc
в консоли он будет открываться. Согласен не лучшее решение так как по-хорошему надо было использовать символические ссылки Однако он потребует немного зависимостей и нам надо будет их установить. apt install libwebkit2gtk-4.0-dev libayatana-appindicator3-dev
И было бы отлично настроить лаунчер для всего этого дела. Из последнего релиза выкачиваю .deb пакет и скачиваем его. Далее устанавливаем, и введя в терминал команду launcher
наблюдаем запуск лаунчера. Пару слов теперь об лаунчере, лаунчер создан на языке программирование Rust, при помощи библиотеки tauri. В качестве фронтенда использовался Svelte, в качестве бекенда просто пару функций которые через std::process::Command просто вызывают нужные команды для запуска программ. К сожалению из-за дефицита времени я захардкодил названия команд, что не есть хорошо. Думаю в скором обновлении я это поправлю, как и добавлю запуск браузера. Если есть интерес взглянуть на исходный код проекта, то он доступен в репозитории.
Осталось сделать удаленное управление. Здесь думаю наилучшим решением будет мини-трекпад и клавиатура со свистком USB.
Однако можно и обойтись и смартфоном с сенсорным экраном, однако для этого оба устройства должны быть в одной локальной сети. Впрочем функция полезная будущем неплохо было бы добавить.
А теперь неплохо бы настроить автологин. Вводить пароль для входа в телевизор, такое себе. Так как у нас установлен тут sddm, надо создать конфиг по пути /usr/lib/sddm/sddm.conf.d/autologin с содержанием:
[Autologin]
User=user
Session=openbox
Где user это имя учетки в которую логинимся, а session это название нашего установленного DE.
Осталось дело за малым. Добавить лаунчер в автозагрузку чтобы после запуска системы открывался именно он. Так как в качестве DE у нас выбран openbox лезу в .config и создаю папку openbox , куда положим файлик autostart. В файл укажем полный путь до лаунчера : /usr/bin/launcher
Перезагружаемся, и видим лаунчер перед глазами. Отлично, мы почти у цели.
Возможно вы заметили, все операции были сделаны в VirtualBox. И не случайно! Теперь у нас есть файлы виртуальной машины. И теперь из .vdi мы сделаем .img образ при помощи которого будем заливать систему на тонкие клиенты. Воспользуемся штатным VBoxManage и командой :
VBoxManage clonemedium --format RAW Debian.vdi debian.img
На выходе получаем .img файл. Теперь его нужно сжать, 55 ГБ никуда не годится.
Гружусь с livecd, и сожму основной раздел до 10GB.
Заодно, удалю штатный swap, и создам новый.
Перезагружусь, и увидим кучу ошибок в консоле. Не паникую, нам просто надо указать системе где искать swap. Лезу в консоль и командой lsblk -f
узнаем новые UUID разделов. Дальше заходим в /etc/fstab и корректирую значения там новые которые я только что узнал. Ошибки ушли.Отлично повторяем шаг с созданием .img образа, и видим опять 55 GB. Неужели не помогло? Помогло, только надо подрезать сам образ.
sudo truncate --size=$[(22978559+1)*512] 'debian.img'
И на выходе у нас .img образ весом 11GB.
Отлично! Есть образ на 11GB, но его еще как-то надо накатить на клиента. Я решил пойти по пути наименьшего сопротивления, используя две флешки! На одну накатил live-cd, а на другую образ с системой. Загрузился в систему, подкинул флешку, примонтировал используя обычным mount, а далее используя dd, залил образ на диск.
Возможно описанный мной метод выше не идеален, и содержит ошибки и неточности, однако цель данной статьи не сделать конечный продукт, а дать пищи для размышления, может настало время списать со счетов телевиденье и переключится на другие источники информации? Возможно, имея браузер и полноценный Linux подтянутый к телевизору появляется возможность выбирать что смотреть ? Заодно можно объединить приятное с полезным, например изучать английский или программирование? Возможно настало время что-то менять ?
Если кого-то заинтересовала получившаяся система она доступна для скачивания в репозитории.