Чем заменить телевизор

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

После определенных событий, произошедших за последние несколько месяцев, начал задумываться о замене телевидения себе и своим близким. Очевидно самый простой вариант это покупка ТВ приставки с Android на борту, однако взглянув на цены и предлагаемое железо, идея отпала.

Активация смарт-тв не актуальна ибо в моей модели телевизора смарт-тв просто нет. Остается последний вариант, это мини-пк который будет подключен к телевизору и показывать ютуб , или видосы с семейной библиотеки.

В качестве компьютера для воспроизведения мультимедии был выбран тонкий клиент, это был один из самых недорогих вариантов.

Приобретенный тонкий клиент.
Приобретенный тонкий клиент.

Получив клиент не стал церемониться и полез к нему под капот. Под капотом все стандартно, SATA для подключения штатного накопителя и еще один для подключения внешнего. Брусок алюминия на процессоре для охлаждения и ноутбучная DDR3 память.


Внутренности тонкого клиента.
Внутренности тонкого клиента.

Так как в планах было еще скачивать различный контент с торрентов штатного диска на 16GB, было мало и он был заменён на Kingston A400 120GB.

SSD диски. Сверху на 16GB штатный , снизу 120GB Kingston.
SSD диски. Сверху на 16GB штатный , снизу 120GB Kingston.

В планах было добавить винчестер на 500GB для хранения домашней видео библиотеки и прочих видео.

Винт на 500ГБ от toshiba
Винт на 500ГБ от toshiba

В результате мы получаем очень неплохой ПК, с 4GB оперативки 120GB SSD и 500GB винтом. Для ТВ-приставки то что нужно.

Подключил клиент к монитору и запустился. Убедился что не убил своими руками клиент.

На экране появился загруженый BIOS,значит клинет остался жив.
На экране появился загруженый BIOS,значит клинет остался жив.

На этом я закончил работу с железом и начал подготовку программной части. Перехожу на основную машину с VirtualBox именно там я подготовил систему для установки на клиента. Думаю что на подобные клиенты просится какой-нибудь Linux,следовательно за основу был выбран популярный дистрибутив Debian. Выкачав оригинальный образ я поставил базовую консольную версию.

Процесс установки Debian Linux.
Процесс установки Debian Linux.

Супер. После перезагрузки я увидел консоль и скачал htop и посмотрел на процессы в системе.

Процессы чисто установленного консольного Debian.
Процессы чисто установленного консольного Debian.

Но так как телевизор это все таки про удобный GUI, нужно накатить какой-нибудь DE. Я выбрал OpenBox за его легковесность и возможности кастомизации. Впрочем, не забываю про sddm, нам нужен еще и дисплейный менеджер. И еще установил эмулятор терминала я лично выбрал kitty мне он кажется самым удобным, он нам пригодится. Устанавливается все командой:  apt install openbox sddm kitty

Черный экран,все идет по плану.
Черный экран,все идет по плану.

Перезагружаемся и вижу черный экран. Отлично, то что нужно, у нас на руках максимально чистая система. Так и должно быть.

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

Отлично, я могу теперь с клиента  посмотреть контент с диска. Но  надо  вложить главный функционал, а именно возможность смотреть Youtube, читать BBC или загуглить что-то с телевизора. А это значит что  нужен браузер, и тут выбор к сожалению один - Google Chrome.

Установленный Chrome 101
Установленный Chrome 101

Едим дальше, скорее всего нужно будет удаленно управлять телевизором, считаю необходимым накатить дашборд как например 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 символов. И нажимаем применить
Ставим пароль на админку больше чем 6 символов. И нажимаем применить

.

Проверим в браузере. Если что-то не работает, вы точно задали пароль не меньше чем 6 знаков?

Отлично, торренты есть.
Отлично, торренты есть.

Следующий вопрос который встал это чем смотреть торренты,  очевидно используя kodi.

Запущенный kodi,на тонком клиенте.
Запущенный kodi,на тонком клиенте.

Для просмотра Youtube на телевизоре был выбран проект под названием Nativefier-YouTube-on-TV-for-Desktop. Он с открытым исходным кодом и выложен на GitHub. Так как проект не имеет ни репозитория ни пакета для установки, просто распакуем папку в /opt/youtube-app и напишу  скрипт однострочник в /usr/bin который по команде youtube будет поднимать наш бинарник. Но думаю лучшим вариантом это создать символическую ссылку на бинарник.

Запущенный Nativefier-YouTube-on-TV-for-Desktop.
Запущенный Nativefier-YouTube-on-TV-for-Desktop.

Дальше дело за малым, а именно создать BBC веб клиента. Так как хотелось создать самое легковесное решение этим решением стал wry. Исходный код взят из документации из wry смысла приводить его не вижу, если есть желание можете посмотреть в репозитории проекта. Скачиваю бинарник из релизов, и просто копирую его в /usr/bin. Теперь по команде bbc в консоли он будет открываться. Согласен не лучшее решение так как по-хорошему надо было использовать символические ссылки Однако он потребует немного зависимостей и нам надо будет их установить. apt install libwebkit2gtk-4.0-dev libayatana-appindicator3-dev 

Скрин запущенного клиента BBC.
Скрин запущенного клиента BBC.

И было бы отлично настроить лаунчер для всего этого дела. Из последнего релиза выкачиваю .deb пакет и скачиваем его. Далее устанавливаем, и введя в терминал команду launcher наблюдаем запуск лаунчера.  Пару слов теперь  об лаунчере, лаунчер создан на языке программирование Rust, при помощи библиотеки tauri. В качестве фронтенда использовался Svelte, в качестве бекенда просто пару функций которые через std::process::Command просто вызывают нужные команды для запуска программ. К сожалению из-за дефицита времени я захардкодил названия команд, что не есть хорошо. Думаю в скором обновлении я это поправлю, как и добавлю запуск браузера. Если есть интерес взглянуть на исходный код проекта, то он доступен в репозитории.

Просто и со вкусом. Часики посредине для мониторига времени.
Просто и со вкусом. Часики посредине для мониторига времени.

Осталось сделать удаленное управление. Здесь думаю наилучшим решением будет мини-трекпад и клавиатура со свистком USB.

Мини-трекпад и клавиатура со свистком USB.
Мини-трекпад и клавиатура со свистком 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 ГБ никуда не годится.

Образ .img весом 55GB.
Образ .img весом 55GB.

Гружусь с livecd, и сожму основной раздел до 10GB.
Заодно, удалю штатный swap, и создам новый.

Сжимаем основной раздел и создаем новый swap.
Сжимаем основной раздел и создаем новый 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 подтянутый к телевизору появляется возможность выбирать что смотреть ? Заодно можно объединить приятное с полезным, например изучать английский или программирование? Возможно настало время что-то менять ?

Если кого-то заинтересовала получившаяся система она доступна для скачивания в репозитории.

Источник: https://habr.com/ru/post/665848/


Интересные статьи

Интересные статьи

Чтобы браузер мог аутентифицировать веб-сайт, тот представляет себя действительной цепочкой сертификатов. Типичная цепочка показана сверху, в ней может быть больше одного промежут...
Устраивать конкурсы в инстаграме сейчас модно. И удобно. Инстаграм предоставляет достаточно обширный API, который позволяет делать практически всё, что может сделать обычный пользователь ручками.
Эта статья для тех, кто собирается открыть интернет-магазин, но еще рассматривает варианты и думает по какому пути пойти, заказать разработку магазина в студии, у фрилансера или выбрать облачный серви...
Тема статьи навеяна результатами наблюдений за методикой создания шаблонов различными разработчиками, чьи проекты попадали мне на поддержку. Порой разобраться в, казалось бы, такой простой сущности ка...
Автокэширование в 1с-Битрикс — хорошо развитая и довольно сложная система, позволяющая в разы уменьшить число обращений к базе данных и ускорить выполнение страниц.