Pull to refresh

Дружим тв-тюнер Avermedia Avertv 507 с Ubuntu 9.10

Reading time 7 min
Views 17K
Здравствуйте, Дорогие Хабровичане. Написать эту статью сподверг меня мой любимый дистрибутив Ubuntu и тв-тюнер Avermedia Avertv 507, с настройкой которого при чистой установке Ubuntu 9.10 у меня, и у многих других линуксоидов возникли проблемы. А еще это первый мой топик, за который я получил инвайт. А все дело в том, что в большинстве инструкций по настройке этого тюнера допущено множество ошибок, куча разногласий, не говоря о том, что на момент настройки тюнера статей для новога ядра Ubuntu 9.10 не было, и всвязи с этим настроить тюнер самому было очень трудно.
Так вот, чтобы помочь многим людям, уже растратившим все свои нервы, я ниже приведу алгоритм настройки вышеупомянутого тюнера с разъяснениями и правильными конфигами.
А те, кто, как говорится, в шапочке, могут просто сопировать конфиги.


Для просмотра тв мы будем использовать tvtime, для управлением с пульта пакет lirc
Установим их через менеджер пакетов или через консоль:

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


В процессе установки tvtime спросит нас о стандарте вещания. Для большинста людей в Росии это Pal-DK и Secam, у меня в Сочи это Secam.
Выбирайте что угодно, так как мы все равно будем править конфиги. То же относится к выбору чипсета для Lirc.

После установки пакетов нам нужно указать tvtim'у номера наших чипсетов( card и tuner), причем номера для нового ядра. Так же для нового ядра нужно было убрать некоторые параметры, иначе тв-тюнер дружить с нами не хотел. Специально для Вас, здесь и сейчас, верный рабочий конфиг:)
Создаем файл с конфигом

sudo nano /etc/modprobe.d/aliases

в который прописываем:

alias char-major-81 videodev
options i2c-algo-bit bit_test=1
options saa7134 card=102 tuner=38
options tuner secam=d

alias char-major-81-0 saa7134
alias char-major-81-1 off
alias char-major-81-2 off
alias char-major-81-3 off


Сохраняемся, перезагружаемся:)
Теперь тв-тюнер должен показывать картинку, осталось отсканировать и добавить каналы.
Советую добавлять их вручную, чтобы не возникла куча проблем, как у меня.
Частотная таблица в настройках твтайма у меня выбрана «Другая», настройки каналов находятся в файле
~/.tvtime/stationlist.xml
Обращаю ваше внимание на то, что файл с каналами должен находиться в каталоге пользователя и создавать его нужно от обычного пользователя, дабы твтайм имел нужные права доступа к файлу и мог его прочесть.

Приведу свой файл как эталонный, но учтите, что в других городах( у меня Сочи) частоты каналов другие. Свои частоты я подбирал сканируя каналы на обычном телевизоре.
Вы можете настроить каналы и автосканом, но если хотите, чтоб они шли в нужном вам порядке и работали все — только вручную.
Итак, мой stationlist.xml:

<?xml version=«1.0»?>
<!DOCTYPE stationlist PUBLIC "-//tvtime//DTD stationlist 1.0//EN" «tvtime.sourceforge.net/DTD/stationlist1.dtd»>
<stationlist xmlnstvtime.sourceforge.net/DTD»>
 <list norm=«SECAM» frequencies=«custom» audio=«dk»>
  <station name=«1» active=«1» position=«1» band=«Custom» channel=«49,00MHz» finetune=«9» norm=«SECAM» audio=«auto»/>
  <station name=«2» active=«1» position=«2» band=«Custom» channel=«207,00MHz» finetune=«0» norm=«SECAM» audio=«auto»/>
  <station name=«3» active=«1» position=«3» band=«Custom» channel=«495,00MHz» finetune=«0» norm=«SECAM» audio=«auto»/>
  <station name=«4» active=«1» position=«4» band=«Custom» channel=«191,00MHz» finetune=«0» norm=«SECAM» audio=«auto»/>
  <station name=«5 „ active=“1» position=«5» band=«Custom» channel=«535,00MHz» finetune=«0» norm=«SECAM» audio=«auto»/>
  <station name=«6» active=«1» position=«6» band=«Custom» channel=«77,00MHz» finetune=«0» norm=«SECAM» audio=«auto»/>
  <station name=«7» active=«1» position=«7» band=«Custom» channel=«575,00MHz» finetune=«0» norm=«SECAM» audio=«auto»/>
  <station name=«8» active=«1» position=«8» band=«Custom» channel=«623,00MHz» finetune=«0» norm=«SECAM» audio=«auto»/>
  <station name=«9» active=«1» position=«9» band=«Custom» channel=«591,00MHz» finetune=«0» norm=«SECAM» audio=«auto»/>
  <station name=«10» active=«1» position=«10» band=«Custom» channel=«679,00MHz» finetune=«0» norm=«SECAM» audio=«auto»/>
  <station name=«11» active=«1» position=«11» band=«Custom» channel=«711,00MHz» finetune=«0» norm=«SECAM» audio=«auto»/>
 </list>
</stationlist>
* This source code was highlighted with Source Code Highlighter.

Обратите внимание на кавычки, их съел хабрапарсер.

Custom здесь означает, что каналы относятся к частотной таблице «Другая», а не «Россия», например.
Теперь мы разберемся со звуком. Моя проблема заключалась в том, что к тв-тюнеру никаких проводов не прилагалось.
Ни внутрених, ни внешних. Благо я нашел внешний провод с нужным разъемом и длиной, доставшийся в комплекте с моими пк-колонками.
Вы же можете раздобыть провод в магазине.
Итак, мы раздобыли провод:)
Подключаем провод к line-in разъему звуковой карты одним концом, и к разъему аудиовыхода тюнера соответственно другим концом.
Если звук не появлился, то заходим в

Система- > Параметры-> Звук


Переходим во вкладку вход, проверяем, чтоб было выбрано принимающее звуковое устройство вашего компьютера, а канал входа был выбран «Analog input»
Но если и теперь звук предательски не хочет появляться, в терминале даем команду

alsamixer


Тут нам важны 2 параметра, Line и Surround.
Surround ставим в позицию «Independent», у Line поднимаем ползунок громкости. Если у Line ниже ползунка подпись не «00», а «MM», что означает mute, жмем на клавиатуре английскую букву «M» и включаем звук. Теперь звук не мог не заработать:)
Мне немалых трудов стоило выявить такую закономерность:)

Нам осталось настроить и запрограммировать пульт.
Для начала определим адрес пульта:
cat /proc/bus/input/devices

В выдаче находим что-то наподобие

I: Bus=0001 Vendor=1461 Product=a11b Version=0001
N: Name="saa7134 IR (Avermedia AVerTV St"
P: Phys=pci-0000:05:07.0/ir0
S: Sysfs=/devices/pci0000:00/0000:00:09.0/0000:05:07.0/input/input6
U: Uniq=
H: Handlers=kbd event6
B: EV=100003
B: KEY=40fc310 82140000 0 0 0 0 2048000 180 4001 9e0000 0 0 ffc


Здесь нам важен event6. у вас он может быть, к примеру, event5
Далее правим файл /etc/lirc/hardware.conf

sudo nano /etc/lirc/hardware.conf


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

REMOTE_MODULES=»"
REMOTE_DRIVER=»dev/input»
REMOTE_DEVICE=»/dev/input/event6″
REMOTE_LIRCD_CONF=»/etc/lirc/lircd.conf»


Мой файл в итоге выглядит так:

# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="AverMedia TV card (TVCapture TVPhone) (card=6)"
REMOTE_MODULES=""
REMOTE_DRIVER="dev/input"
REMOTE_DEVICE="/dev/input/event6"
REMOTE_SOCKET=""
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""

#Chosen IR Transmitter
TRANSMITTER="Custom"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_SOCKET=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""

#Enable lircd
START_LIRCD="true"

#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="true"

# Default configuration files for your hardware if any
LIRCMD_CONF=""

#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""


Теперь запрограммируем пульт( event6 меняем на свое значение):

sudo irrecord -H dev/input -d /dev/input/event6 /etc/lirc/lircd.conf


Мастер попросит нас понажимать на любые клавиши. Жмем до тех пор, пока нас не уведомят об успешном завершении процедуры.
Теперь вводим название кнопки, жмем enter. У нас есть около 5-ти секунд, чтобы нажать на пульте ту кнопку, название которой вы ввели.
Внимание, названия кнопок зарезервированы! Если вы введете свои названия, мастер выдаст вам ошибку. Список разрешенных названий я выложил для вас здесь
Повторяем процедуру для всех нужных нам кнопок, жмем enter.

Перезапускаем демон лирка, который считывает конфиги:

sudo /etc/init.d/lirc restart


Пришло время проверить, правильно ли мы все сделали.
Вводим в терминале команду


irw


Теперь нажимаем на кнопки пульта. Если в терминале выводятся физические адреса кнопок, то мы на верном пути.

Переходим к последнему этапу.
Создаем файл, ассоциирующий команды твтайма с кнопками пульта:

cd ~
nano .lircrc


По этому образцу, для каждой кнопки, которой вы задали название указываем команду твтайма:

begin
prog = irexec
button = KEY_POWER
config = tvtime &
config = tvtime-command QUIT
end


Вот мой файл, с основными кнопками, которые нужны мне:
begin
prog = irexec
button = KEY_POWER
config = tvtime &
config = tvtime-command QUIT
end

begin
prog = irexec
button = KEY_VOLUMEUP
config = tvtime-command CHANNEL_UP
end

begin
prog = irexec
button = KEY_VOLUMEDOWN
config = tvtime-command CHANNEL_DOWN
end

begin
prog = irexec
button = KEY_NEXT
config = tvtime-command RIGHT
end

begin
prog = irexec
button = KEY_LAST
config = tvtime-command LEFT
end

begin
prog = irexec
button = BTN_1
config = tvtime-command CHANNEL_1
end

begin
prog = irexec
button = BTN_2
config = tvtime-command CHANNEL_2
end

begin
prog = irexec
button = BTN_3
config = tvtime-command CHANNEL_3
end

begin
prog = irexec
button = BTN_4
config = tvtime-command CHANNEL_4
end

begin
prog = irexec
button = BTN_5
config = tvtime-command CHANNEL_5
end

begin
prog = irexec
button = BTN_6
config = tvtime-command CHANNEL_6
end

begin
prog = irexec
button = BTN_7
config = tvtime-command CHANNEL_7
end

begin
prog = irexec
button = BTN_8
config = tvtime-command CHANNEL_8
end

begin
prog = irexec
button = BTN_9
config = tvtime-command CHANNEL_9
end

begin
prog = irexec
button = BTN_0
config = tvtime-command CHANNEL_0
end

begin
prog = irexec
button = KEY_MUTE
config = tvtime-command TOGGLE_MUTE
end

begin
prog = irexec
button = KEY_MENU
config = tvtime-command TOGGLE_FULLSCREEN
end


А теперь мой файл /etc/lirc/lircd.conf, чтобы вы могли сверить, если в чем-то сомневаетесь:

# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.6(devinput) on Fri Nov 6 16:23:42 2009
#
# contributed by
#
# brand: /etc/lirc/lircd.conf
# model no. of remote control:
# devices being controlled by this remote:
#

begin remote

name /etc/lirc/lircd.conf
bits 16
eps 30
aeps 100

one 0 0
zero 0 0
pre_data_bits 16
pre_data 0x8001
gap 35992
toggle_bit_mask 0x0

begin codes
KEY_VOLUMEUP 0x0192
KEY_VOLUMEDOWN 0x017F
KEY_MUTE 0x0071
KEY_NEXT 0x0073
KEY_LAST 0x0072
BTN_0 0x000B
BTN_1 0x0002
btn_2 0x0003
BTN_3 0x0004
btn_4 0x0005
BTN_5 0x0006

BTN_6 0x0007
BTN_7 0x0008
BTN_8 0x0009
BTN_9 0x000A
KEY_MENU 0x0174
KEY_POWER 0x0074
end codes

end remote


Чтобы пульт начал работать, добавьте в запускаемые приложения при загрузке команду irexec -d
Это всё, enjoy your watching:)

Постскриптум: перенес в коллективный блог

Постпостскриптум: чтобы в меню выбора пользователей не было звуков телевизора
gedit ~/.tvtime/tvtime.xml


добавляем строку

<option name=«MuteOnExit» value=«1»/>

и сохраняем
Tags:
Hubs:
+23
Comments 30
Comments Comments 30

Articles