Вчера немного озадачился темой настройки пульта ДУ в среде Линукс, ну и решил написать эту небольшую статью. И так, есть ТВ-тюнер AVerTV Studio 203 с пультом ДУ, Linux Slackware v10.2 (kernel 2.4.31), программа для просмотра телепередач TvTime версии 0.99. Хочется управлять этой прогой с пульта ДУ тюнера.
Предполагаем, что тюнер и TvTime установлены и настроены, поэтому переходим сразу к поставленной задаче. Нам понадобится универсальный драйвер для пультов LIRC, качаем последнюю версию (на данный момент lirc-0.7.2.tar.bz2).
Распаковываем архив:
$ tar –jxvf lirc-0.7.2.tar.bz2 $cd lirc-0.7.2 $./configure
Появится диалог, выбираем Driver Configuration -> TV card -> AverMedia TV Card (TV Capture98, TV Phone98) (card=13/41) ну или свою карточку. OK -> Save & configure. После того, как выполниться configure говорим:
$make
Следующие действия выполняем под рутом:
#make install #chmod 666 /dev/lir*
В /etc/rc.d/rc.modules добавляем строчку:
/sbin/modprobe lirc_gpio
B /etc/rc.d/rc.local добавляем две строчки:
/usr/local/sbin/lircd /usr/local/bin/irexec --d
Далее подгружаем модуль и запускаем демона:
#modprobe lirc_gpio #lircd
Теперь нужно прописать кнопки для пульта в конфигурационный файл /etc/lircd.conf. Для этого имеется специальная утилита irrecord.
#irrecord –f /etc/lircd.conf
Сначала нужно удерживать нажатой любую кнопку на пульте, чтобы он определился, затем вводим название кнопки и быстро нажимаем ее на пульте, иначе после 10 секунд произойдет автоматический выход из программы! После того, как все кнопки записаны, просто жмем Enter и ничего не делаем 10 секунд.
После того, как все кнопки записаны, перезапускаем демона:
#killall lircd #lircd
Для управления TvTime используется демон irexec, назначение которого запускать приложения по команде от пульта. Настраивается он при помощи конфигурационного файла /etc/lircrc.
О формате файла можно посмотреть здесь lirc-0.7.2/doc/html/configure.html в разделе "The .lircrc file format". Применительно к tvtime:
begin prog = irexec button = НАЗВАНИЕ_КНОПКИ_КОТОРОЕ_ЗАПИСЫВАЛИ_IRRECORD repeat = ЕСЛИ_КНОПКА_НАЖАТА_ПОВТОРНО (по умолчанию 0 – ничего не делать) Полезно для управления звуком и переключением каналов. config = tvtime-command КОМАНДА_TVTIME end
Список команд TvTime можно просмотреть тут. У меня получилось примерно так:
begin prog = irexec button = POWER config = tvtime & config = tvtime-command QUIT end begin prog = irexec button = VOL_UP repeat = 2 config = tvtime-command RIGHT end begin prog = irexec button = VOL_DOWN repeat = 2 config = tvtime-command LEFT end begin prog = irexec button = CHANNEL_UP repeat = 8 config = tvtime-command CHANNEL_UP end begin prog = irexec button = CHANNEL_DOWN repeat = 8 config = tvtime-command CHANNEL_DOWN end begin prog = irexec button = 1 config = tvtime-command CHANNEL_1 end begin prog = irexec button = 2 config = tvtime-command CHANNEL_2 end begin prog = irexec button = 3 config = tvtime-command CHANNEL_3 end begin prog = irexec button = 4 config = tvtime-command CHANNEL_4 end begin prog = irexec button = 5 config = tvtime-command CHANNEL_5 end begin prog = irexec button = 6 config = tvtime-command CHANNEL_6 end begin prog = irexec button = 7 config = tvtime-command CHANNEL_7 end begin prog = irexec button = 8 config = tvtime-command CHANNEL_8 end begin prog = irexec button = 9 config = tvtime-command CHANNEL_9 end begin prog = irexec button = 0 config = tvtime-command CHANNEL_0 end begin prog = irexec button = MUTE config = tvtime-command TOGGLE_MUTE end begin prog = irexec button = FULLSCREEN config = tvtime-command TOGGLE_FULLSCREEN end
Этого достаточно. Все. Запускаем irexec:
#irexec -–d
Все! Запускаем проверяем.














