Сам я этот путь настройки прошел не так давно, поэтому, как говорится, по свежим следам )
Так что же нам нужно для того, что бы наш тюнер заработал под этим linux-ообразным Ubuntu? )

Для ясности сразу скажу, что нам нужно:

1. программа tvtime, в которой мы будем смотреть.
2. пакет lirc, обеспечивающий дистанционное управление через ИК-пульты.
3. Холодный ум, горячее сердце и большой радиус кривизны рук :)

Первым делом, установим tvtime и lirc через менеджер пакетов Synaptic или через консоль:

sudo apt-get install tvtime
sudo apt-get install lirc

В процессе установки tvtime нужно будет выбрать систему вещания в вашей сети — PAL или SECAM и частотную таблицу.

Напомню, что в России вещание, чаще всего, ведётся в телевизионных стандартах PAL-DK и SECAM.

Выберем для частотной таблицы Россию и PAL-DK, т.к. большинство каналов у моего кабельного тв транслируется именно в этой системе. А при установке lirc нас спросят, какой у нас тв-тюнер, не затрудняйтесь выбором, это мы настроим потом )

Внимание: все конфигурационные файлы lirc, saa7134, udev из данной статьи, со всеми необходимыми настройками есть в архиве и создавать их самим не нужно

После завершения установки, из приложенного выше архива, скопируем содержимое «etc» в одноимённую директорию /etc в корневом разделе системы, т.е. папки lirc, modprobe.d и udev, в которых лежат файлы конфигураций, которые мы будем править ниже.

Затем через консоль откроем файл конфигурации для нашего тв-тюнера:

sudo nano /etc/modprobe.d/saa7134.conf

в котором видим следующее:

alias char-major-81 videodev
alias char-major-81-0 saa7134
options i2c-algo-bit bit_test=1
options saa7134 card=35 tuner=51 i2c_scan=1 radio_nr=1
options tuner secam=d
alias char-major-81-1 off
alias char-major-81-2 off
alias char-major-81-3 off

Тут немного теории:
Для других тв-тюнеров на базе чипсета Philips saa7134 (не AverTV Studio 505), нужно будет подобрать свои значения «card» и «tuner», вместо указанных выше. В моём случае подошли card=35 и tuner=51 (чип c FM).

Кстати, для Studio 505, значения card/tuner, указанные выше, в моём случае, действительны и в 9.04 и в 9.10. Правда, радио в 9.10 не работает, но дело уже не в этих значениях, и во второй статье (ссылка внизу поста) я опишу как включить и радио.

! Важно: для тюнеров значения card и tuner подбираются на основе прилагающихся к ядрам CARDLIST.saa7134 и CARDLIST.tuner, причем у разных ядер значения card и tuner тоже могут быть разными, поэтому мои рабочие значения (для моего тюнера AverTV Studio 505 и моего ядра 2.6.28-16) могут вам запросто не подойти.
Из этого следует, что если тюнер прекрасно работал в 9.04, то в 9.10 скорее всего (из-за смены ядра), нужно будет подбирать значения заново

Ниже привожу скрипт для проверки значений card и tuner, методом перебора, и взят он конечно, с http://forum.ubuntu.ru/ )
Сам скрипт нужно запускать в консоли под sudo, предварительно сделав исполняемым:

chmod +x script.sh
sudo ./script.sh

Внимание: проверьте, так ли в вашем случае называется устройство тв-тюнера и если нужно, измените его в скрипте (/dev/video0)

Итак, содержимое скрипта script.sh:

#/bin/sh
startc=1 # начальное значение card
MAXCARD=170 # значение card, на котором остановиться
startt=1 # начальное значение tuner
MAXTUNER=81 # значение tuner, на котором остановиться
c=$startc
while [ $c -lt $MAXCARD ];
do
t=$startt
while [ $t -lt $MAXTUNER ];
do
#выгружаем все модули saa7134
rmmod saa7134_dvb
rmmod saa7134_empress
rmmod saa7134_alsa
rmmod saa7134
#подставляем новый номер карты
modprobe saa7134 card=$c tuner=$t
echo "Текущий card:" $c
echo "Текущий tuner:" $t
sleep 2 #пауза для инициализации
#проверяем как она определилась
v4l-info <strong>/dev/video0</strong> | head -n 9
#запуск программы просмотра
tvtime
echo
echo "Берем следующий тюнер"
echo
t=$(($t+1))
done
echo "Берем следующую карту"
c=$(($c+1))
done

После того как значения card и tuner пойманы, заносим их в /etc/modprobe.d/saa7134.conf и идём дальше.

После перезагрузки запускаем tvtime (в меню Ubuntu он находится в разделе «Аудио и видео»), клацая правой кнопкой мыши по экрану, заходим в меню: «Channel management» > «Сканирование каналов» и … правильно — запускаем сканирование :) Сканировать так же можно консольной утилитой tvtime-scanner.

Кстати, замечу, что пункт «Сканирование каналов» виден в меню tvtime, только при включённом режиме обнаружения входного сигнала.

После сканирования, скорее всего, часть каналов не будет показываться (будет синий экран или «война микробов» :)), т.к. у них другая система вещания, например SECAM, в отличие от выбранного вначале PAL-DK.

Посмотрев в «Channel management», какие основной видео и аудио стандарты у основной массы нормально показывающих каналов, выставляем их для видео и аудио по умолчанию в «Основные настройки». Они будут использоваться в дальнейшем, для новых пойманных каналов.

Затем идём на первый из каналов, который не показывает и в «Channel management» меняем стандарт видео и аудио на рабочие, и повторяем это для каждого неработающего канала.

Если нет звука, то тут возможны два варианта: либо мы забыли соединить кабелем аудио выход тюнера с линейным входом звуковой карты, либо в настройках аудиомиксера линейный вход аудиокарты отключен или его громкость стоит на нуле.

Для решения этой проблемы открываем звуковой миксер щелкая на значок динамика на панели либо отрываем его в консоли:

sudo alsamixer

Затем включаем Line In, если он отключен, и прибавляем на нём громкость.

В итоге, мы имеем работающий под линём AverTV Studio 505, и телек работает, но не время расслабляться, ведь мы хотим переключать каналы пультом, сидя на диване? :)

Для этого, мы должны определить устройство ИК-приемника тюнера. Есть разные способы определения устройства ИК-приемника:

Способ №1: вводим в консоли следующую команду:

cat /proc/bus/input/devices

в выдаче которой, находим кусок со словами «saa7134″,»IR» и «Aver», у меня он такой:

I: Bus=0001 Vendor=1461 Product=a115 Version=0001
N: Name="saa7134 IR (AverMedia AverTV St"
P: Phys=pci-0000:04:01.0/ir0
S: Sysfs=/devices/pci0000:00/0000:00:1e.0/0000:04:01.0/input/input6
U: Uniq=
H: Handlers=kbd event6 
B: EV=100003
B: KEY=40fc310 8214000000000000 0 2048000 18000004001 9e000000000000 ffc

Из вышеприведенного куска, нам совершенно ясно :), что ИК-приёмником тюнера является устройство event6, а точнее /dev/input/event6
Этот способ плох тем, что номер event-та после перезагрузки может измениться, особенно это характерно при наличии USB-устройств ввода, т.е. мыши, клавиатуры и т.д.

Способ №2: набиваем в консоли следующую команду:

ls /dev/input/by-path/ | grep event-ir

которая нам выдаст, например, следующее:

pci-0000:02:01.0-event-ir

что нашим устройством ИК-приемника тюнера будет

/dev/input/by-path/pci-0000:02:01.0-event-ir

Этот способ более универсальный и сгодится для большинства случаев, но только не в моём :)) Дело в том, что у меня нет файлов ИК-устройств ни в /dev/input/by-path/ ни в /dev/input/by-id/ , а есть только event в /dev/input/ как в первом способе, но он, как я говорил, может измениться после перезагрузки, и соответственно, ненадёжен.

Способ №3 Универсальный (я так думаю :) : Чтобы не искать устройство ИК-приемника по всему /dev, мы просто создадим правило для udev, благодаря которому, в /dev/input/ появится постоянная символическая ссылка на наше искомое ИК-устройство, вида /dev/input/event-ir
Для этого, в начале статьи, мы уже скопировали файлы из архивной папки etc в /etc, среди которых есть папка udev, находящаяся теперь в /etc/udev и содержащая нужное нам правило в готовом виде (файл /etc/udev/rules.d/z70_input_compro_ir.rules):

KERNEL=="event[0-9]*", SUBSYSTEM=="input", DRIVERS=="saa7134", SYMLINK+="input/event-ir"

Теперь ИК-приёмник тюнера будет уже навечно :) устройством /dev/input/event-ir

На что уже и указано в готовом конфиге lirc-а, убедиться в этом можно, открыв файл hardware.conf:

sudo nano /etc/lirc/hardware.conf

и увидев следующие строки:

REMOTE_MODULES=""
REMOTE_DRIVER="dev/input"
REMOTE_DEVICE="/dev/input/event-ir"
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"

Если что-то будете копировать с этой статьи в конфиги, то будьте внимательны с кавычками, вордпресс опять напакостил с ними, сцуко (

А в файле lircd.conf:

sudo nano /etc/lirc/lircd.conf

находится уже готовый набор соответствий кнопок и сигналов пульта для нашего тюнера:

begin remote

name  AVerMediaMy
bits           32
flags SPACE_ENC|CONST_LENGTH
eps            30
aeps          100
header       9078  4437
one           615  1631
zero          615   515
ptrail        620
repeat       9080  2189
gap          108056
repeat_bit      0
begin codes
POWER                    0x0000000080010074
TV/FM                    0x0000000080010179
CD                       0x000000008001017F
TELETEXT                 0x0000000080010184
VIDEO                    0x0000000080010189
1                        0x0000000080010002
2                        0x0000000080010003
3                        0x0000000080010004
AUDIO                    0x0000000080010188
4                        0x0000000080010005
5                        0x0000000080010006
6                        0x0000000080010007
FULLSCREEN               0x0000000080010174
7                        0x0000000080010008
8                        0x0000000080010009
9                        0x000000008001000a
PREVIEW                  0x00000000800100D2
0                        0x000000008001000b
DISPLAY                  0x0000000080010172
LOOP                     0x00000000800100A8
MUTE                     0x0000000080010071
AUTOSCAN                 0x00000000800100D9
FREEZE                   0x000000008001008E
CAPTURE                  0x000000008001019A
PLAY                     0x00000000800100CF
RECORD                   0x00000000800100A7
PAUSE                    0x0000000080010077
STOP                     0x0000000080010080
YELLOW                   0x0000000080010190
RED                      0x000000008001018E
VOL_DOWN                 0x0000000080010072
VOL_UP                   0x0000000080010073
BLUE                     0x0000000080010191
GREEN                    0x000000008001018F
CH_DOWN                  0x0000000080010193
CH_UP                    0x0000000080010192
end codes
	
end remote

Теперь перезапустим демона lirс-а, чтобы он прочитал отредактированные нами файлы:

sudo /etc/init.d/lirc restart

и проверим его работу, запустив в консоли утилиту irw. Если, при нажатии на кнопки пульта, мы увидим нечто похожее на это:

0000000080010193 00 CH_DOWN AVerMediaMy
0000000080010072 00 VOL_DOWN AVerMediaMy
0000000080010073 00 VOL_UP AVerMediaMy
0000000080010192 00 CH_UP AVerMediaMy
0000000080010071 00 MUTE AVerMediaMy

значит мы в полушаге от завершения )

Теперь нужно, чтобы одна из утилит lirc-а irexec запускалась автоматически при загрузке системы, т.к. именно она исполняет команды, закрепленные за определёнными кнопками пульта. В Xubuntu/Ubuntu/Kubuntu для этого нужно запустить из меню «Настройка» или «Параметры» приложение, ответственное за настройку сеансов, оно называется по разному в разных убунтах, но везде содержит слово «Сеансы», в нём то и добавляем в автозапуск приложение irexec
И последний этап :) — это копирование из архива файла .lircrc в корень вашей домашней директории, читая который, irexec будет знать, какую именно команду исполнить, при нажатии на определенную кнопку пульта.
И опять в консоли наберем следующее:

cd ~
sudo nano .lircrc

и увидим следующие настройки:

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 = CH_UP
repeat = 8
config = tvtime-command CHANNEL_UP
end

begin
prog = irexec
button = CH_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

begin
prog= irexec
button = CAPTURE
config = tvtime-command SCREENSHOT
end

На всякий случай, в архиве я выложил файл .lircrc с командами не только для TvTime, но и для управления Totem-ом и Gnomeradio (ссылка на статью об их настройке в самом низу)

Для чистоты эксперимента перезагружаемся и включаем tvtime с пульта.

Чтобы послушать FM-радио, нужно установить либо пакет gnomeradio, либо gqradio или же плагин gkrellm-radio, если стоит системный монитор GKrellM. Единственное, при запуске надо будет правильно указать устройство радио, которое зачастую, программы выставляют в /dev/radio, что не всегда совпадает с действительностью, поэтому зайдем в папку устройств /dev и посмотрим, как точно называется устройство. В моём случае это устройство radio1, и в программе я указал /dev/radio1

Вот и всё! Для начала хватит. Следующий раз мы прикрутим к пульту управления gnomeradio (FM-радио), видеопроигрыватель Totem и , возможно, даже просмотрщик телетекста :)

Уточнения и поправки приветствуются )

P.S. Раскладка кнопок пульта находится во второй части статьи, ссылка ниже:

Часть вторая: настройка AverTV Studio 505 в Ubuntu 9.04+Gnomeradio+Totem+Tvtime