Mythtv, lirc, sasc-ng и другие

Опубликовано

Статью я начинал писать еще летом, а дописал только сейчас.Я наконец-то довел до ума систему в своем HTPC (по совместительству выполняющем роль обычного десктопа), теперь им действительно можно управлять используя только пульт ДУ не вставая с кровати :) . Хотя нет, вру, выбрать ОС в меню загрузчика Grub все-таки придется с клавиатуры, но это мелочи.Сегодня я хотел бы предложить Вашему внимаю хаутушку, которая позволит с минимальными затратами времени на поиск информации настроить HTPC под управлением Linux и приступить к просмотру любимых телепередач, DVD, прослушиванию музыки и т.п. Чтож не будем тянуть резину в долгий ящик и приступим.

Имеем для реализации задуманного не самый новый и мощный компьютер (а именно, Celeron 2.4 ГГц в 478 сокете, 1,5 Гб оперативы, видео GeForce 7300 GT 256 Мб с S-Video выходом, большой винт - 1 Тб) и 14-ти дюймовый телевизор Erisson, конфигурация не самая удачная для HTPC, но другой нет.На базе Ubuntu существует дистрибутив с интегрированной системой для HTPC - Mythtv, называется Mythbuntu, не вижу причин этим не воспользоваться. Качаем дистрибутивный iso-шник, пишем его на болванку, грузимся с нее и приступаем к установке. Установка, собственно, ничем особенным не примечательна, просто нужно обратить внимание на два момента:

  1. при выборе роли компьютера - выбрать локальную установку фронтэнда и бэкэнда;
  2. настроить автоматический вход для пользователя, мы же не хотим вводить пароль чтобы воспользоваться HTPC.

По окончании установки запустится мастер конфигурации Mythtv, здесь нужно будет настроить устройства захвата видео, внешний вид, указать пути для сохранения записей и поиска музыки, фильмов и картинок. DVB-S адаптер Technotrend budget S1401, в простонародии именуемый Skystar 3 определяется системой без каких-либо проблем о других DVB-S, DVB-C и DVB-T устройствах мне ничего не известно. Для владельцев конверторов круговой поляризации, используемых в комплектах HTB-плюс Восток и Триколор-Сибирь замечу, что в настроках Mythtv этот конвертор значится как "Стандартный американский".Встреченные на этапе установки грабли я постарался пометить предупреждающими знаками выше, других не встречал, если установка прошла успешно, то после загрузки системы можно будет посмотреть какой-нибудь открытый канал, послушать музыку, посмотреть фильмы и фотки (предварительно положив их в определенные на этапе установки директории). Далее на очереди настройка того, что не работает "из коробки", в моем случае это пульт ДУ GOTview.Настройка пульта связана с изменением исходных кодов lirc, тут можно действовать двумя путями, правильным - получением исходников с помощью apt, изменением и пересборкой пакета или моим - простой сборкой еще одного lirc для личных нужд.Итак качаем с сайта www.lirc.org исходники lirc-0.8.4a, и распаковываем их. Берем файл hw_hiddev.c отсюда (кстати интересно почему автор не сделал patch) и заменяем им файл daemons/hw_hiddev.c.Далее собираем lirc примерно так:

% cd lirc-0.8.4a% ./configure --prefix=/opt/lirc --with-driver=samsung && make && sudo make install

Качаем готовый lircd.conf и кладем его в /opt/lirc/etc.Втыкаем пульт и запускаем lircd вот так:

/opt/lirc/sbin/lircd -H samsung -d /dev/usb/hiddev0 --pidfile=/opt/lirc/var/run/lirc0.pid \--listen=8765 && /opt/lirc/sbin/lircd -H samsung -d /dev/usb/hiddev1 \--pidfile=/opt/lirc/var/run/lirc1.pid --output=/dev/lircd --connect=localhost:8765

Запускаем irw и жмем кнопки, если видим на экране сообщения о нажатиях - все хорошо, можно переходить к настройке пульта с Mythtv, если нет - начинаем сначала.Если все в порядке - пишем стартовый скрипт для нашего lirc, хватит вот такого простого

#!/bin/bash# Startup script for /opt/lirc/opt/lirc/sbin/lircd -H samsung -d /dev/usb/hiddev0 --pidfile=/opt/lirc/var/run/lirc0.pid \--listen=8765 && /opt/lirc/sbin/lircd -H samsung -d /dev/usb/hiddev1 \--pidfile=/opt/lirc/var/run/lirc1.pid --output=/dev/lircd --connect=localhost:8765

Я просто сбэкапил скрипт /etc/init.d/lircd из комплекта Mythbuntu и положил вместо него свой.Далее необходимо сопоставить кнопочки на пульте с управляющими кнопками Mythtv, я это сделал и предлагаю Вам скачать мой конфиг lirc для Mythtv и поместить его в директорию ~/.lirc под именем mythtv.Чтобы пульт заработал потребуется перезапустить интерфейс Mythfrontend. Надеюсь с этим разобрались, переходим к sasc-ng.Вообще данного этапа настройки можно было бы избежать, если своевременно озаботиться покупкой DVB-адаптера, оборудованного Common Interface, но стоят такие раза в 4 дороже имеющегося и имеют неудобство в виде расположения этого самого CI на задней стенке компьютера, что при наличии даже пары карт доступа к услугам провайдеров спутникового телевидения порождает проблемы замены этих карт. Существуют модели и с выносным CI, но в российских магазинах они почему-то не распространены, т.е. отсутствуют.Sasc-ng это программное средство, позволяющее получить доступ к официальной карте просмотра, вставленной, например, в Phoenix-программатор, либо по сети. Разработка, по-моему, имеет статус толи альфы, толи беты, продвигается не сказать чтобы очень быстро, но продукт на поверку оказывается вполне работоспособным.Пакетов для данной софтины не существует по определению, поэтому для начала поставим все необходимое для сборки и последующей настройки

% sudo apt-get install mercurial linux-headers-$(uname -r) build-essential subversion \> openssl gettext libssl-dev dtach

Берем с linuxtv.org драйвера для DVB-адаптера собираем и устанавливаем

% hg clone http://linuxtv.org/hg/v4l-dvb% cd v4l-dvb% make% make install

Для проверки корректности установки перезагружаем ПК, после перезагрузки смотрим не потерялась ли карта. Если все в порядке - идем дальше.С помощью svn получаем исходники opensasc-ng (это доработанная версия sasc-ng)

% svn co http://opensvn.csie.org/opensascng/open-sasc-ng

Конфигурируем и собираем модуль устройства DVB-Loopback, на котором будем получать раскодированный поток

% cd open-sasc-ng% ./configure --dvb-dir=/home/<ваш_юзер>/v4l-dvb% make module

Если сборка завершилась без ошибок, устанавливаем модуль и проверяем его загрузку

% sudo su# rm /lib/modules/`uname -r`/misc/dvbloopback.ko# mkdir /lib/modules/`uname -r`/misc# /usr/bin/install dvbloopback.ko /lib/modules/`uname -r`/misc/# depmod# modprobe dvbloopback

Смотрим вывод dmesg на предмет DVB-Adapter DVBLoopback version 0.0.1, если он появился и при этом не вызвал ошибок значит можно продолжать со сборкой уже самого sasc-ng. Качаем патч,

Index: sc/thread.cpp============================--- sc/thread.cpp (revision 49)+++ sc/thread.cpp (working copy)@@ -203,7 +203,7 @@active = running = false;childTid = 0;description = NULL;- SetDescription(Description);+ SetDescription("%s", Description);}cThread::~cThread()Index: dvblb_plugins/plugin_cam.c==========================--- dvblb_plugins/plugin_cam.c (revision 49)+++ dvblb_plugins/plugin_cam.c (working copy)@@ -628,7 +628,7 @@}printf("User Message %s data: %s\n", str, data);outstr = sc->SVDRPCommand((const char *)str, (const char *)data, res);- printf(outstr);+ printf("%s", (const char*)outstr);printf("User Message %s returned: %d\n", str, res);}}

необходимый для сборки под Mythbuntu накладываем и собираем

% patch -p0 -F99 < ubuntu.patch% touch /home/<ваш_юзер>/v4l-dvb/linux/include/linux/compiler.h% make

Вот так.В итоге должны получить в текущей директории бинарник sasc-ng, который нужно запустить примерно вот такsudo ./sasc-ng -j 0:1В данном случае 0 это номер реального DVB-адаптера, а 1 - виртуального DVB-loopback.MythTV теперь надо настроить на прием с DVB-loopback, а sasc-ng настроить согласно примерам, доступным в /home/<ваш_юзер>/open-sasc-ng/sc/PLUGINS/src/sc-src/examples/cardclient.conf.example, там все по-английски, но для понимания доступно.Вот вроде все. Я все лето смотрел телевизор с помощью такой системы.