Архив за Июнь 2009

Мы- русские.

Июнь 9, 2009

AverTV 307. Ubuntu 8.10.

Июнь 1, 2009
Давно, давно – 2 года назад, подарили tv tuner – Aver TV 307. Через некоторое время пытался его подружить с linux. Но так как модель была сравнительно новая, возникло много проблем. Первая – не было поддержки устройства в ядре. Не помню уже всех страданий своих, но достичь положительных результатов не получилось. Год назад, в очередной раз пробовал перевести домашнюю машину на linux. Был выбран дистрибутив Suse последней версии на тот момент. Достичь + результатов не получилось, хотя уже на тот момент устройство поддерживалось в ядре. При запуске программы просмотра ТВ передач, показывалось 2 – 3 канала с сильными помехами, и без звука. Из за лени и воспоминаний о прошлых страданий, забросил это дело.
В этот раз, когда был выбран дистрибутив Ubuntu. , решил более основательно поискать решение данной проблемы. Достичь результата получилось, но не без определенных чудесных шаманских действий.
Решение данного вопроса можно разбить на несколько этапов:
1. Проверка поддержки оборудования в системе, а точнее ядром linux.
2. Настройка драйвера устройства.
3. Установка и настройка программ просмотра TV.

1. Проверка поддержки оборудования в системе.

Исходные данные:

  • дистрибутив Ubuntu 8.10, 9.04 (Чуть познее обновил до версии 9.04, проблем выявлено не было)
  • CPU – P 4 Socket 478
  • видеокарта GeForce FX 5700
  • звуковая карта Creative Audigy
  • TV tunet – AverTV 307

Для анализа железки в системе пользуемся следующими командами:

# dmesg | grep saa
# lspci
# dmesg | grep tuner
# modinfo -p saa7134
# uname -a

# lsmod

dmesg – команда для вывода буфера сообщений ядра.
Первой и третией командой мы смотрим сообщения ядра по поводу рассматриваемого ТВ тюнера.

lspci - утилита предназначена для вывода информации о всех PCI-шинах в системе, а также о всех устройствах, присоединенных к этим шинам. По умолчанию она показывает краткий список таких устройств.

lsmod – выводит список загруженных в данный момент модулей.
uname - сообщает информацию о данном компьютере и операционной системе. C опцией -а выводит всю информацию.
modinfo – просмотреть информацию о модуле ядра

lspci
lspci
dmesg 1
dmesg
modinfo – часть информации
modinfo

Главное, что нам нужно увидеть – это какое устройство видит наша система. Обычно мы точно знаем, что у нас за устройство в системе. Информацию об устройстве можно найти на сайте производителя.- используемые чипы, поддерживаемые устройства.

Из диагностических данных у меня можно увидеть – Мultimedia controller: Philips Semiconductors SAA7134/SAA7135HL.

Драйверы для AVerMedia AVerTV Studio 307 реализованы в ядре, начиная с версии 2.6.10. Все уже включено. Осталось тока допилить, подправитиь. Чтобы узнать информацию о поддерживаемых устройствах вашим ядром, нужно зайти в следующую папку:
/usr/src/linux-2.6.10/Documentation/video4linux/

Ищем файлы: CARDLIST.saa7134 и CARDLIST.tuner.

У меня данных файлов там не было, т к не были установлены исходные коды для ядра. Для дистрибутивов с репозитариями это не проблема. apt-get, yum ….

2. Настройка драйвера устройства.

Изюменка в том, что по умолчанию ставится формат вещания PAL, но в России принят SECAM – и если вы это не измените, то при включении программы просмотра передач с тюнера увидите чёрно-белое, цветное дергающее изображение без звука и с шумами. Чтобы сообщить модулю тюнера, что нам нужен SECAM, нужно его выгрузить и загрузить с нужными параметрами. В случае ТВ Тюнера AverTV 307 параметры такие:
#rmmod saa7134
#modprobe saa7134 tuner=51 card=56
#rmmod tuner
#modprobe tuner secam=d
#chmod 777 /dev/video0

Что мы сказали модулю? Что у нас конкретный тюнер и карта (вторая строчка), и что мы живём в замечательной стране со стандартом телепередач SECAM (если картинка ч/б и с шумом – значит, вы поставили PAL, который есть стандарт для остального мира), и что телевизор хотят смотреть все, а не только рут (последняя строка). Всё, теперь почти готово.
Обратите внимание, что у вас в каталоге /dev должно появиться устройство video0 – это и есть ваш тюнер, именно его будут использовать программы. Очень часто проблемы с тюнерами появляются из-за неправильных прав доступа к этому файлу, /dev/video0. И для этого следует сделать

#sudo chmod 777 /dev/video0

Естественно, если у вас другой тюнер – вместо saa7134 надо поставить подходящий и параметры передавать другие. Если у вас самосборное ядро Для этого в ядре требуется поддержка I2C и Video4Linux, а так же драйвера для тюнера. Следует особо отметить, что один модуль ядра поддерживает чип, на котором построен тюнер – куча тюнеров могут быть построены на одном и том же чипе. Так что собираем i2c и Video4Linux монолитно, поддержку его протоколов I2C и драйвера видеочипов модулями. И вообще, о логах не стоит забывать, как и о том, что к ядру Linux, в разделе Documentation и подразделе video4linux содержится полный список тюнеров, поддерживаемых данной версией ядра.
=============================================================
Для того чтобы передать параметры модулю нашего ТВ тюнера, можно в папке /etc/modprobe.d/ создать файл aver со следующим содержимым:
aver01

В приведенном примере показаны разные варианты. Пробные – за комментированы. Не за комментированные строки работают в данный момент. Для своего тюнера было найдено пару возможных передаваемых параметров. Будут указаны чуть ниже. Приведенным способом не нужно постоянно вводить параметры для модуля тюнера, использую modprobe и rmmod.

lsmod

lsmod

 

Если TV tuner не работает, еще раз :

Сверьтесь с документацией по ядру, которое установлено в данный момент – там должен быть ответ на вопрос, поддерживается ваш тюнер или нет (или просто поставьте самое свежее ядро из репозиториев). Документация находится здесь:
/usr/src/linux-2.6.zz.z/Documentation/video4linux, где вместо zz.z стоит версия вашего ядра.
Внутри этого каталога вы найдёте несколько файлов с именами CARDLIST.yyy, где yyy – это имя драйвера. Откройте эти файлы и поищите в них по названию вашего тюнера. Если его там не окажется – ставьте новое ядро. В этих же файлах есть номера карт.
Это и есть номер карты – который мы передаём в команде modprobe saa7134 tuner=51 card=56 Так же будет файл под названием CARDLIST.tuner – он должен быть один. Там внутри – номера тюнеров разных карт.
Для моего тюнера:

CARDLIST.tuner :

tuner=38 – Philips PAL/SECAM multi (FM1216ME MK3)
tuner=51 – Philips PAL/SECAM_D (FM 1256 I-H3)

CARDLIST.saa7134:

56 -> Avermedia AVerTV 307 [1461:a70a]
45 -> Avermedia AVerTV Studio 307 [1461:9715]

3. Поиск телеканалов.

Теперь осталось поставить программу для просмотра телепередач. Запускаем с балкона проложенные к тюнеру диски с софтом для Windows и, пока они летят, ставим программу TVtime. Опять же на компьютере подключенном к интернету все легко ставиться из репозитариев. Есть еще программы xawtv, zapper. Останавливаться подробно не хочется на этом разделе. Так как интерфейс программ понятен, ставятся легко ….
У меня появилось нормальное изображение нашлось, такое же количество каналов что и из под винды, единственное – качество каналов в разных системах варируется по разному.

Показалась наиболее удобной программа tvtime – много настроек, грамотный интерфейс и куча возможностей. После установки программы tvtime нужно поискать телеканалы (от простого пользователя):

tvtime-scanner –norm=SECAM

которая пробежится по всем доступным диапазонам частот и поищет телеканалы. После этого запускаем tvtime, и отключаем некоторые опции, правая кнопка мыши – Channel management:

  • Активировать все каналы
  • Отключить обнаружение входного сигнала

Пройдитесь по каналам, переупорядочите их под свой вкус и насаждайтесь. ТВ Тюнеры (особенно внутренние), как правило, находят меньше каналов, чем обычные телевизоры, или с некоторыми шумами. Это связано с меньшей чувствительностью и большей подверженности наводкам и помехам внутри корпуса компьютера.В результате у вас в домашней директории появится каталог .tvtime, где будут прописаны все найденные каналы. Дальше всё просто. Набираем tvtime и наслаждаемся результатом. Если звука нет, можно соединить аудио выход тюнера и микрофон звуковой карты. По умолчанию соединяется аудио выход TV tunera с Линейным входом звуковой.

tvtime

Нюанс.

У меня возникла проблема со звуком. Есть изображение, а нет звука. Проблема решилась опять же с помощью миксера. Видно это особенность звуковой карты Creative Audigy.
И так, чтоб появился ЗВУК в тюнере, при условии выполнении выше перечисленных действий с параметрами ядра. -
включение регулятора – «Analog Miix захват» . !!! Мелочь, но времени у меня убило много. Включите все ползунки, ВСЕ!!!

Ситуация аннологичная:

http://ru.wordpress.com/tag/audigy/

мой пост   Ubuntu. нет звука. Audigy.

Нужно включить все ползунки в миксере, независимо от названий…. и звук появился. Для моей звуковой этих ползунков очень много, я включал. Линейный вход, но нужным оказался другой. В общем ВКЛЮЧАЙТЕ ВСЕ ВСЕ. Не руководствуйтесь своими умозаключениями по поводу названий …. и логики.

Использовал материалы:

1) http://mydebianblog.blogspot.com/2006/07/beholder-beholdtv-409fm.html

2)http://www.pctuner.ru/page-al-aver307alt.html

3) http://www.rhd.ru/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/ch-kernel-modules.html