Настраиваем TV-tuner
Доброго времени суток. Сам я программист и Windows знаю вдоль и в поперек, а вот Linux слабовато, и дабы исправить это я установил себе Debian на домашнем компьютере.
Первая попытка установки была неудачной, т.к. я установил Linux параллельно с Windows. Просто мне было очень трудно заставить себя приходя с работы по вечерам ковыряться с Linux-ом, когда у меня была возможность запустить Windows и спокойно слушать музыку, читать электронные книги, смотреть фильмы или телевизор(TV-tuner). В общем я со временем удалил Linux так и не поработав в нем.
Как-то вечером, возвращаясь с работы, я вспомнил как я научился слепому набору на клавиатуре — я стер все надписи на клавишах и таким радикальным способом заставил себя не смотреть на клавиатуру. И я подумал, а почему бы не поступить также и с Linux-ом? И, придя домой, я удалил все Windows-разделы на винчестере и установил Debian.
При настройке системы я столкнулся с множеством проблем, связанных в первую очередь с тем, что буквально каждую программу необходимо настраивать с шаманским бубном. Трудней всего пока что для меня было настроить TV-tuner.
Итак, настраиваем TV-tuner.
Вы не знаете с чего начать? А тут все просто – берем на вооружение несколько ключевых слов: TV-tuner, модель тюнера (в моем случае LifeView Fly Prime 34), Linux, Debian, setup, настройка, и т.п. и идем на http://google.com. Что мы получим? Кучу беспорядочной информации, разобраться в которой невозможно. Но это только с первого взгляда. Читаем все подряд, пока в голове все окончательно не перепутается. Потом идем курить и пытаемся разложить все по полочкам. С разнообразных источников я например узнал что для того чтобы подключить мой TV тюнер мне необходим модуль saa7134 и что он присутствует в стандартной сборке ядра >2.6.n (не помню номер, но в 2.6.8-3 он присутствует). Еще мне нужна программа, которая собственно будет показывать ТВ каналы, как советовали многие источники, лучшей является программа tvtime. А для того, чтобы прикрутить пульт дистанционного управления необходимо настроить lirc.
Итого:
С драйвером мне повезло, т.к. если бы этого драйвера небыло в стандартной сборке ядра, то мне пришлось бы собирать ядро самому с включением в него модуля драйвера, а это уже головная боль.
В дистрибутиве Debian 31r4 по умолчанию устанавливается ядро 2.4.27, значит необходимо установить ядро поновее, под пользователем root выполняем следующую команду:
#apt-get install kernel-image-2.6.8-3-386Ядро устанавливается в автоматическом режиме и остается лишь перезагрузить компьютер.
Устанавливаем tvtime:
#apt-get install tvtimeЗапускаем tvtime и настраиваем его при помощи меню:
Input configuration->Television Standard->PAL
Channel Management->Frequency table->Russian
Channel Management->Scan channels for signalЕсли что-либо найдено то переключаемся по всем найденным каналам и запоминаем их номера (см. ниже). Далее меняем телевизионный стандарт на SECAM и повторно сканируем каналы:
Input configuration->Television Standard->SECAM
Channel Management->Scan channels for signalПереключаемся на каналы со стандартом PAL (набираем цифры каналов, которые мы запомнили выше) и для каждого из них устанавливаем опцию:
Channel Management->Set current channel as PALЗатем отключаем автоматическое сканирование каналов:
Channel Management->Disable signal detectionМожно при желании отредактировать конфигурационный файл tvtime, он находится в домашней директории:
~/.tvtime/stationlist.xml
Настройка пульта ДУ.
Для инфракрасного порта тюнера, после установки драйвера (модуль saa7134), должно появится новое устройство ввода. Проверить это можно с помощью команды:
$ cat /proc/bus/input/devicesОна вернет примерно следующий результат:
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
H: Handlers=kbd event0
B: EV=120003
B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe
B: LED=7
I: Bus=0011 Vendor=0002 Product=0004 Version=0000
N: Name="GenPS/2 Genius Wheel Mouse"
P: Phys=isa0060/serio1/input0
H: Handlers=event1 mouse0 ts0
B: EV=7
B: KEY=1f0000 0 0 0 0 0 0 0 0
B: REL=103
I: Bus=0001 Vendor=5168 Product=0138 Version=0001
N: Name="saa7134 IR (LifeView FlyVIDEO30"
P: Phys=pci-0000:00:0b.0/ir0
H: Handlers=kbd event2
B: EV=100003
B: KEY=c0304 100000 0 0 0 0 1 10000 2 1e0001 7bb80 0 0Строчка "saa7134 IR (LifeView FlyVIDEO30" указывает на устройство IR порта, это устройство хранится по адресу:
/dev/input/event2Это устройство интерпретируется X-сервером как обычное устройство ввода (типа клавиатуры, но с весьма экзотическими клавишами). В принципи клавиши 0-9 пульта ДУ должны работать как и обычные клавиатурные клавиши и могут восприниматься как tvtime так и любой другой программой.
Для обеспечение корректной обработки команд ДУ необходимо настроить lirc.
Принцип работы lirc с пультом тюнера следующий:
Запускается демон lircd, который слушает устройство /dev/input/event2 используя драйвер с именем “dev/input”. lircd преобразовывает все команды, полученные от устройства в соответствии с конфигурационным файлом /etc/lirc/lircd.conf и передает их на сокет /dev/lircd. Для того, чтобы команды с сокета попали к tvtime запускается еще один демон irexec, который уже в свою очередь в соответствии с конфигурационным файлом ~/.lircrc передает их на tvtime.
Получается цепочка такого вот вида:
Настройка lirc не такая уж и сложная, если понимать принцип действия lirc.
Прежде всего установим его:
#apt-get install lircПрограмма установки будет предлагать автоматическую сборку модуля для ядра, откажитесь от нее.
lirc стартует при запуске системы при помощи скрипта /etc/init.d/lirc.
Этот скрипт использует конфигурационный файл /etc/lirc/hardware.conf, в котором необходимо сконфигурировать запуск демона lircd:
# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="-H dev/input -d /dev/input/event2 /etc/lirc/lircd.conf"
#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false
#Try to load appropriate kernel modules
LOAD_MODULES=false
# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="dev/input"
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE=""
MODULES=""
# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""Демон lircd будет загружатся при старте системы с параметрами:
-H dev/input -d /dev/input/event2 /etc/lirc/lircd.confГде файл /etc/lirc/lircd.conf описывает протокол пульта ду. Этот файл можно найти для конкретного пульта на сервере lirc или в директории /usr/share/lirc/remotes/, а можно и сконфигурировать самому (я так и делал). Для этой цели в пакете lirc имеется утилита irrecord. Для того чтобы ее использовать понадобится один из файлов, хранящихся в директории
/usr/share/lirc/remotes/genericЯ выбрал файл /usr/share/lirc/remotes/generic/RC-6.conf
Копируем этот файл и сохраняем в /etc/lirc/ с именем lircd
Далее запускаем утилиту irrecord с параметрами:
#irrecord -H dev/input -d /dev/input/event2 /etc/lirc/lircdНа приглашение зажать кнопку зажимаем на пульте ду какую-нибудь кнопку и держим ее.
На экране при нажатии должны отображаться точки.Далее программа спросит как будет называться следующая кнопка, набираем например 1 давим Enter и жмем на пульте ду тоже 1, затем 2 Enter 2 на ду, и т.д. все кнопки. После ввода всех кнопок пульта нажимаем просто Ener и затем программа порпросит нажимать какую нибудь кнопку. Не ЗАжимать, а НАжимать как можно бысто.
После всех этих операций по следующему адресу должен будет появится корректный файл конфигурации нашего пульта (программа irrecord автоматически добавляет окончание к файлу .conf):
/etc/lirc/lircd.confВ моем случае получился следующий файл:
begin remote
name /etc/lirc/lircd.conf
bits 16
flags RC5|CONST_LENGTH
eps 30
aeps 100
one 889 889
zero 889 889
plead 889
pre_data_bits 16
pre_data 0x8001
gap 151625
toggle_bit 0
frequency 36000
duty_cycle 50
begin codes
air_catv 0x0182
video 0x0189
audio 0x0188
power 0x0074
av_source 0x00B0
full_screen 0x0174
stereo 0x00C0
mute 0x0071
recall 0x0081
enter 0x0060
vol+ 0x0073
vol- 0x0072
ch+ 0x0192
ch- 0x0193
1 0x004F
2 0x0050
3 0x0051
4 0x004B
5 0x004C
6 0x004D
7 0x0047
8 0x0048
9 0x0049
0 0x0052
end codes
end remoteПосле конфигурации файлов
/etc/lirc/hardware.conf
/etc/lirc/lircd.confперезагружаем компьютер
Проверяем загружен ли демон lircd:
#ps -A | grep lircdЗапускаем утилиту irw и жмем на кнопки пульта, если все нормально то мы увидим примерно следующее:
$irw
000000008001004f 00 1 /etc/lirc/lircd.conf
0000000080010050 00 2 /etc/lirc/lircd.conf
000000008001004c 00 5 /etc/lirc/lircd.conf
000000008001004d 00 6 /etc/lirc/lircd.confДалее необходимо сконфигурировать передачу команд от демона lird к программе tvtime
Для этого необходимо сконфигурировать файл
~/.lircrcУ меня он такой:
begin
prog = irexec
button = full_screen
config = tvtime-command TOGGLE_FULLSCREEN
end
begin
prog = irexec
button = mute
config = tvtime-command TOGGLE_MUTE
end
begin
prog = irexec
button = ch+
config = tvtime-command UP
end
begin
prog = irexec
button = ch-
config = tvtime-command DOWN
end
begin
prog = irexec
button = vol+
config = tvtime-command RIGHT
end
begin
prog = irexec
button = vol-
config = tvtime-command LEFT
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 = enter
config = tvtime-command ENTER
end
begin
prog = irexec
button = power
config = tvtime &
config = tvtime-command QUIT
endОсталось лиш запустить irexec:
Я для этого создал файл в директории
~/.kde/Autostartсодержание которого следующее:
#! /bin/sh
irexec -dЭтот файл должен иметь права доступа, разрешающие его запуск.
Ну вот собственно и все.
Как видите, настройка программ под Linux это не такая уж и тривиальная штука, для этого в первую очередь необходимо время и выдержка. И как говорится: "кто ищет, тот всегда найдет!"
Удачи!
Комментарии





