Убунтариум

индекс
253,47

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

Здравствуйте, Дорогие Хабровичане. Написать эту статью сподверг меня мой любимый дистрибутив 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»/>

и сохраняем
+23
19 ноября 2009, 19:17
20

комментарии (30)

0
KingOfNothing #
у меня тюнер Aver 505UA, что посоветуете в такой ситуации: после того, как разобрался более-менее с конфигами и заработали звук и видео, появилась проблема — остался единственный канал, который включался при выборе любого канала. После запуска сканера каналов какие-то каналы нашлись, но сам твтайм показывает сообщение «No signal». Пока ничего не могу поделать.
0
bediary #
На счет единственного канала — скорей всего проблемы с файлом stationlist. Поэтому в статье я и советовал настроить каналы вручную, поскольку парсер твтайма время от времени в этом файле творит коллапс. Попробуйте удалить файл, переключить в настройках частотную таблицу на «Другая». Создайте файл снова и скопируйте его содержимое у меня, только названия каналов и частоты поправьте на свои.
На счет «нет сигнала» — скорее всего неправильно подобраны значения card и tuner в файле /etc/modprobe.d/aliases
Удалите содержимое этого файла у себя, вставьте мое. Только значения card и tuner подставьте свои. Взять эти значения для своего тюнера вы можете тут card и tuner
Это значения для нового ядра Ubuntu 9.10
Желаю вам удачи в настройке:)
0
KingOfNothing #
гм, такой вопрос — моего тюнера нет в списке карт — как правильно выбрать номер тюнера и карты?
Использовав ваш номера карты и тюнера получил картинку и несколько каналов, поменяв случайным образом карту и тюнер получил и звук, и картинку, но опять один канал всего.

0
bediary #
Скорее всего вам должны подходить мои значения. Так как разница между тюнерами небольшая. Раньше вообще был только один авертв в списке, и с ним работало, хоть никому почти он и не подходил. Чипсет пульта у вас скорее всего тоже такой же, как у меня. Я сейчас с телефона — посмотреть не могу. На звук не обращайте внимания вообще, так как эти значения не влияют на звук. Лишь бы была картинка, звук настройте как я написал в статье. Раз картинка есть, значит твтайм подцепил тюнер, значит все хорошо. Настройте каналы вручную. Дело в том, что у разных каналов еще разные стандарты вещания, а автоскан ловит каналы только с предустановленным вами в настройках стандарте. Поэтому поймать все каналы автоскан просто реально не может. У меня он ловил вообще только один канал. После тщательной настройки ловит все.
0
ant99 #
Огромнейшее спасибо! Ваш вариант /etc/modprobe.d/aliases избавил меня от двухсекундного «пшшшшшщщщщщшшш» при старте системы.
+1
drunk #
С каких это пор у большинства в людей в России Pal? Разве что на некоторых кабельных каналах.
+1
ant99 #
Да, кабельщики, в основном, транслируют в PAL (кроме тех каналов, которые берут «с воздуха»). Приходится вручную указывать стандарт для каждого канала, поскольку автоопределение привносит небольшую, но неприятную задержку при переключении каналов.
0
bediary #
у кого задержка, у кого вообще все каналы отваились:)
0
ant99 #
У меня при установке tvtime создалась папка ~/.tvtime с правами, не позволяющими прочитать под текущим пользователем её содержимое. В результате tvtime банально не видел конфигурацию каналов. Права выдал — всё заработало.
0
bediary #
У меня вначале такие же проблемы. Я от лица судоюзера создавал конфиги, а потом твтайм прочитать ничего не мог. Поэтому и сделал помеку в статье
0
bediary #
Спасибо, подправил.
0
princeps #
Это они должны в секаме вещать, а в реале многие телекомпании забивают на стандарт и вещают в пале либо чтобы не покупать транскодеры, либо чтобы избежать потерь качества на перекодировках. Но их, конечно, не большинство.
0
budmonk #
Спасибо за пример… Буду бороться со своими 2 тюнерами :-)… Но как обычно USER FRIENDLY метод не назовёшь :-)
0
vo0d #
>>После установки пакетов нам нужно указать tvtim'у номера наших чипсетов( card и tuner), причем номера для нового ядра.
номера карты и тюнера надо указывать не tvtime, а модулю ядра.

ЗЫЖ а тюнер не поддерживает передачу звука по pci-шине? мой тянет, но чтоб заработало с tvtime надо с бубном плясать. пробовал mplayer нормально цепляется, только все руки не дойдут оформить список каналов нормально…
0
bediary #
Мой тянюл только в винде. А тут извращаться пришлось, но так уж хотелось перейти на убунту.
0
vo0d #
с недавних пор в ядре есть модуль alsa для этого дела.
0
bediary #
я написал, как с помоью него включить звук
0
vo0d #
вы не совсем поняли. алсамикшером вы включили линейный вход на своей карте и подкрутили уровень звука.
я же сейчас говорил про модуль ядра, который включается переменной CONFIG_VIDEO_SAA7134_ALSA в конфиге.
вот описалово этой переменной:
This is a video4linux driver for direct (DMA) audio in Philips SAA713x based TV cards using ALSA
To compile this driver as a module, choose M here: the module will be called saa7134-alsa.
0
Unixspv #
Интересно, а для Aver Studio 307, перешитого в Beholder 407 такая инструкция подойдет?
0
vo0d #
смотреть надо на чип на котором ваш тюнер базируется. вот в зависимости от чипа будет зависить какой модуль ядра надо подгружать и с какими параметрами. ну а остальное в принципе аналогично.
0
mazy #
alias char-major-81 videodev
alias char-major-81-0 bttv
alias char-major-81-1 btaudio
options bttv card=78 tuner=48 radio=1
options tuner debug=1
options btaudio rate=32000 analog=1 digital=0
0
mazy #
bttv0: using: Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF [card=78,insmod option]
долго не мог понять в чем проблема — радио не тюнит каналы.
включив дебаг тюнера, (options tuner debug=1) оказалось, что gnomeradio неверно передает частоту
Nov 10 16:43:38 ws10 kernel: [26203.829115] tuner 2-0060: radio freq set to 0.10
Nov 10 16:43:38 ws10 kernel: [26203.829122] tuner 2-0060: radio freq (0.10) out of range (65-108)
Nov 10 16:43:39 ws10 kernel: [26205.289639] tuner 2-0060: radio freq set to 0.09
Nov 10 16:43:39 ws10 kernel: [26205.289647] tuner 2-0060: radio freq (0.09) out of range (65-108)
поставил kradio — все тюнится и работает…
никто не знает как побороть глюк гномрадио?
0
all1 #
То что мне нужно! У меня давно этот тв тюнер, благодаря вам я подключил его! :)
0
bediary #
я рад, что моя статья кому-то помогла:):)
0
alk0v #
не могли бы Вы помочь с настройкой, что-то я совсем потерялся…

в /home/alk0v/.lircrc набил следующее (по многим примерам из инета)
begin
prog = irexec
button = 2
config = echo «2»
end

запускаю irexec
реакции на кнопку никакой… а по-идее в консоли должно печататься 2
пробовал и запуск приложений вместо эхо, тоже никакой реакции, не подскажете, где может быть проблема?

при запуске irw и нажатии на кнопку «2» получаю следующее:
00000000000001а82 00 2 Technisat_TTS35AI.conf


0
bediary #
если у вас точно же такой тюнер, то сторого по инструкции все делайте. конфиги не копируйте, когда я настраивал тюнер — промучался месяц, потому что все эти конфигине подходят.
0
alk0v #
нет, у меня SkyStar2, тут проблема в общем то не с тюнером, а с пультом, я не могу его привязать к lircrc
0
bediary #
адрес пульта определили? мастер настройки пульта запустили?
0
alk0v #
да, пульт работает верно, при запуске irw на все кнопки реагирует правильно, а вот irexec нажатия игнорирует несмотря на вроде бы правильный файл .lircrc
0
bediary #
назначили каждой кнопку команду?
irexec запустили?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.