Настройка ТМ - Тюнера

Требования к аппаратному обеспечению

Из файла bttv README:

Bttv - это драйвер для карт оцифровки видео, использующих семейство чипов Conexant (http://www.conexant.com) Bt848. Среди них Bt848, Bt848A, Bt849, Bt878 и Bt879. Основным отличием этих карт у разных производителей является тип тюнеров и наличие дополнительных устройств. Например, некоторые карты Hauppauge имеют дополнительный декодер Videotext и/или микросхему декодирования звука. Но не все из дополнительных устройств поддерживаются bttv. Единственные различия между платами различных изготовителей - типы блоков настройки и наличие дополнительных компонентов на платах. Например, несколько карт от компании Hauppauge имеют дополнительно декодер видеотекста и/или звуковой декодер. Только некоторые из этих дополнительных компонентов поддерживаются bttv. Также отличаются типы (композитный или S-Video) и количество входов.

Требования к программному обеспечению

Для использования ТВ тюнера под Linux, вам понадобятся соответствующие драйверы ядра, начиная с версии ядра 2.2.0, драйверы bttv входят в состав дистрибутива ядра.

Иначе вы можете взять драйвер tbe, который будет работать с ядрами 2.0.35 и более поздними. Однако, он не гарантирует работу с ядром более старым, чем 2.0.x. Драйверы bttv можно взять на http://www.thp.uni-koeln.de/~rjkm/linux/bttv.html, а самая последняя их версия размещена у Gerd Knorr по адресу http://www.in-berlin.de/User/kraxel/xawtv.html В них добавлена поддержка звуковых чипов, таких как TEA6300, TDA8425, и DPL3518.

Если вы новичок в обращении с драйвером bttv, я бы вам посоветовал просто взять ядро с этим драйвером. Если у вас возникнут с ним проблемы или окажется, что он не поддерживает вашу карту, то возьмите драйвер версии 0.6 по адресу, указанному выше. Если вы уже имели дело с этим драйвером, то возьмите у Gerd Knorr драйвер версии 0.7 , который будет работать с ядром 2.4. Драйверы серии 0.7 можно получить еще на http://www.in-berlin.de/User/kraxel/xawtv.html.

Этот документ описывает драйверы, идущие с ядром 2.2.14, с упоминанием некоторых возможностей версии 0.6 , а версия 0.7 здесь совсем не затронута.
Настройка системы

Установка аппаратного обеспечения

(Спасибо William Burrow за эту главу.)

Если вы боитесь самостоятельно открывать корпус своего компьютера, то сначала прочтите данное HOWTO, соберите всю информацию о карте: тип тюнера, номера использующихся микросхем и т.д. А затем позовите того, кто может вам правильно установить карту.

Иначе, откройте корпус и установите карту в нужный слот. Выберите тот PCI слот, который поддерживает режим PCI bus master (если ваша материнская плата поддерживает эти режимы не на всех слотах).

Существует два способа подключить вашу карту оцифровки видео и звуковую карту. Подсоедините аудио кабель вашего CD-ROM к аудио входу видео карты, затем аудио выход с видео карты к аудио входу тюнера или CD-ROM. Иначе вам надо соединить внешний разъем 1/8'' аудио выхода видео карты к такому же разъему входа на аудиокарте. Если вы не хотите пропускать звук через аудиокарту или у вас ее попросту нет, то подсоедините активные колонки к аудио выходу видеокарты. (Некоторые новейшие карты bt878 не имеют аудио разъемов, так как они непосредственно посылают оцифрованный звук шине PCI.)

Для проверки работоспособности карты очень удобно использовать внешний источник видеосигнала. Многие карты имеют композитный вход, вход S-Video и, если есть тюнер, то вход RF. Для каждого из этих входов существует свой разъем.

Настройка ядра

Ядро должно быть правильно настроено для того, чтобы поддерживать карту. Большинство новых дистрибутивов Linux идут вместе с необходимыми модулями, поэтому, если вы сможете найти у себя videodev.o, bttv.o, и tuner.o в каталоге /lib/modules/2.x.x/misc, то у вас уже все установлено.

Если нет, то придется перекомпилировать ядро с

CONFIG_VIDEO_DEV и CONFIG_VIDEO_BT848

желательно в качестве загружаемых модулей. Прочтите Linux Kernel HOWTO (http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html) для уточнения деталей перекомпилирования.

Использование версий 0.6.x

Если вы хотите использовать версию 0.6.x , сначала возьмите ее с сайтов, указанных выше, разверните ее командой

tar -xvzf bttv-0.6.x.tar.gz

зайти в созданный каталог . su и набрать

make

(Вы можете не следовать указаниям из файла INSTALL, касательно редактирования makefiles.) Затем для их установки

make install

И в завершении

/sbin/depmod -a

для изменения информации о зависимости модуля.

Создание файлов /dev

Теперь вам надо создать несколько файлов в каталоге /dev. Наберите ls /dev/video*; ls /dev/radio* , чтобы проверить, существуют ли эти файлы. Если нет, то вам придется их создать. Номер устройства у этих файлов, в основном, равен 81, другие номера устройств зависят от их типа (видео, радио и т.д.). Для более подробной информации загляните на страничку Video4Linux API по адресу (http://roadrunner.swansea.uk.linux.org/v4lapi.shtml).

В каталоге driver есть скрипт MAKEDEV, который создаст четыре видео устройства. Вы можете сделать это и сами, если у вас есть карта для оцифровки видео. Как пользователь root наберите:

mknod /dev/video0 c 81 0

chmod 666 /dev/video0

ln -s /dev/video0 /dev/video

mknod /dev/radio0 c 81 64

chmod 666 /dev/radio0

ln -s /dev/radio0 /dev/radio

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

mknod /dev/vtx0 c 81 192

chmod 666 /dev/vtx0

ln -s /dev/vtx0 /dev/vtx

mknod /dev/vbi0 c 81 224

chmod 666 /dev/vbi0

ln -s /dev/vbi0 /dev/vbi

Загрузка модулей

У драйвера bttv есть множество модулей с различными опциями, как описано в приложении. Но с таким количеством модулей и опций вы можете справиться сами. Для того,чтобы сбросить буферы на диск, напечатайте

sync; sleep 1; sync

Затем с правами пользователя root, используя команду insmod, попробуйте загрузить модули. Первые два модуля довольно просто загрузить, так как они обычно не требуют указания опций:

insmod videodev

insmod i2c

Теперь можно загрузить сам модуль драйвера bttv:

modprobe bttv

По умолчанию модуль bttv сам определяет тип карты. Просмотрите /var/log/messages , чтобы увидеть то, что он обнаружил. Если он не правильно определил тип, вам надо будет добавить опцию card=n в конце вышеуказанной строки, где n это карта из последующего списка. (Карты с 0 по 19 поддерживаются драйверами ядра, а bttv-0.6.4h поддерживает еще с 20 по 27) По желанию вы можете добавить опцию radio=1, если у вашей карты есть функция FM тюнера.

card=n                 тип карты
0:  Auto-Detect
1:  Miro
2:  Hauppauge (старые карты bt848)
3:  STB
4:  Intel
5:  Diamond
6:  AVerMedia
7:  MATRIX Vision MV-Delta
8:  FlyVideo
9:  TurboTV
10: Hauppauge (новые карты bt878)
11: MIRO PCTV pro
12: Terratec/Vobis TV-Boostar
13: Newer Hauppauge WinCam (bt878)
14: MAXI TV Video PCI2
15: Terratec TerraTV+
16: Aimslab VHX
17: PXC200
18: AVermedia98
19: FlyVideo98 (новейшие карты FlyVideo)
20: Zoltrix TV-Max
21: iProTV
22: ADS Technologies Channel Surfer TV
23: Pixelview PlayTV (bt878)
24: Leadtek WinView 601
25: AVEC Intercapture
26: LifeView FlyKit w/o Tuner
27: Intel Create and Share PCI
теперь загрузите модуль тюнера
modprobe tuner type=n
Вам надо знать, какой вид тюнера у вас. Некоторые карты (Miro и Hauppauge) позволяют автоматически определить вид тюнера. На тюнере должно быть указано имя производителя, вы должны осмотреть микросхемы и узнать, какого вида у вас тюнер (NTSC или PAL). Для тюнеров PAL на микросхеме должно быть указано 28.xxxMHz (где xxx три цифры). Для тюнеров NTSC на микросхеме должно быть указано 35.xxxMHz. Теперь, когда вы узнали вид тюнера, выберите n из последующего списка (8 и 9 поддерживаются только bttv-0.6.4h):

type=n                 типы тюнеров по микросхеме:
0: Temic PAL tuner
1: Philips PAL_I tuner
2: Philips NTSC tuner
3: Philips SECAM tuner
4: no tuner
5: Philips PAL tuner
6: Temic NTSC tuner
7: Temic PAL tuner
8: Alps TSBH1 NTSC tuner
9: Alps TSBE1 PAL tuner

И в последнюю очередь загрузите модули, которые вам еще понадобятся. Не забудьте, что драйверы для карт TEA6300, TDA8425, TDA9855 и DPL3518 есть только в версии 0.6.4h.

modprobe msp3400 или tea3600 или tda8425 или tda9855 или dpl3518(прочтите приложение)

Теперь запустите вашу программу для video4linux и посмотрите работает ли она. Если вы не можете сменить канал, проверьте, может вы установили неправильны модуль. Если возникли проблемы со звуком, перепроверьте модуль звука и посмотрите на установку "mute" звукового канала, в случае использования звуковой карты.

Автоматизация процесса

Теперь, когда вы узнали какие модули и опции нужны, вы можете автоматизировать процесс, занеся эту информацию в /etc/conf.modules. После этого, при запуске программы, которая использует драйвер, модули будут загружаться автоматически. Для этого я пишу:

# TV
alias       char-major-81   bttv
pre-install bttv  modprobe -k tuner; modprobe -k msp3400
options                bttv                       radio=1 card=3
options tuner                   type=2
Замените модули и опции для вашей карты. (Запустите /sbin/depmod -a для того, чтобы удостовериться, что ваша информация не устарела.)

Проигрыватели

Теперь, когда ядро и устройства настроены, а модули загружены, вам понадобится приложение, при помощи которого можно просмотреть видео с вашей карты. Их существует множество:

bttvgrab - Обеспечивает высококачественную оцифровку, пригодную для записи

http://moes.pmnet.uni-oldenburg.de/bttvgrab/

Gnome-o-Vision - Программа для просмотра для среды Gnome (в данный момент находится в стадии разработки)

http://cvs.gnome.org/lxr/source/gnomovision/
kwintv - Программа для просмотра телепрограмм, основанная на Qt, для среды KDE
http://www.mathematik.uni-kl.de/~wenk/kwintv/
wmtune - Радио тюнер для ТВ/радио карт основанный на bttv
http://home.pages.de/~fionn/archive/wmtune-1.0_bttv.tar.bz2
wmtv - WindowMaker TV dock.app
http://www.student.uwa.edu.au/~wliang/
XawTV - программа для просмотра телепрограмм и несколько утилит
http://www.in-berlin.de/User/kraxel/xawtv.html
XtTV - Простенькая программа для ТВ/видео под Linux/X Windows
http://home.pages.de/~rasca/xttv/
Еще есть интересный драйвер для карты FlyVideo98 на http://wolf.ifj.edu.pl/~jochym/FlyVideo98/
Обязательно прочтите документацию, перед тем как использовать эти приложения. Большинство из них требует для работы тщательной настройки!
Приложение - значения аргументов для всех модулей
Пункты отмеченные значком "*" есть только в драйверах 0.6.4h
videodev.o
это основной модуль video4linux module, все видеодрайверы
(включая bttv)регистрируются здесь.

i2c.o
общий модуль поддержки i2c. Он выполняет большинство функций управления шиной i2c,
и все остальные модули (кроме videodev.o)используют его

аргументы insmod:
scan=1                 обнаружение устройств на шине i2c
verbose=0          уменьшает объем сообщений, выдаваемых драйвером
i2c_debug=1     этот ключ предназначен для отладки
вся информация, передаваемая по шине, записывается в системный журнал

bttv.o
драйвер bt848 (микросхемы оцифровки)

                аргументы insmod:
remap=adr       переназначить память Bt848 на адрес, равный adr<<20                          
vidmem=base  адрес фрэйм буфера, равен address>>20
triton1=0/1     для совместимости с Triton1
Triton1 автоматически распознается                               
pll=0/1/2             установки pll
0: не использовать PLL
1: установлена микросхема 28 MHz
2: установлена микросхема 35 MHz
radio=0/1            карта поддерживает радио
card=n                 тип карты
0:  Автоопределение
1:  Miro
2:  Hauppauge (старая карта bt848)
3:  STB
4:  Intel
5:  Diamond
6:  AVerMedia
7:  MATRIX Vision MV-Delta
8:  FlyVideo
9:  TurboTV
10: Hauppauge (новые карты bt878)
11: MIRO PCTV pro
12: Terratec/Vobis TV-Boostar
13: Newer Hauppauge WinCam (bt878)
14: MAXI TV Video PCI2
15: Terratec TerraTV+
16: Aimslab VHX
17: PXC200
18: AVermedia98
19: FlyVideo98 (новые карты FlyVideo)
*20: Zoltrix TV-Max
*21: iProTV
*22: ADS Technologies Channel Surfer TV
*23: Pixelview PlayTV (bt878)
*24: Leadtek WinView 601
*25: AVEC Intercapture
*26: LifeView FlyKit w/o Tuner
*27: Intel Create and Share PCI

                параметры remap, card, radio и pll поддерживают до четырех, разделенных запятыми, аргументов
(если у вас несколько карт).  Параметры CARD и PLL определяются по умолчанию в файле Makefile

msp3400.o
Драйвер для микросхем обработки звука msp34xx. Вам придется
использовать этот модуль, если у вас стереокарта.

                аргументы insmod:
debug=1/2         выводить отладочную информацию в системный журнал,
2 - более подробно.

*tea6300.o
Драйвер для звукового чипа tea6300. Если у вас стереокарта, а драйвер
msp3400.o не работает, то попытайтесь использовать этот.
Этот чип используется на большинстве TV/FM-карт фирмы STB (обычно
взятых с распродаж излишков Gateway).

                аргументы insmod:
debug=1                             выводить отладочную информацию в системный журнал.

*tda8425.o
Драйвер для звукового чипа tda8425.  Этот драйвер был встроен в
bttv.c, поэтому если ваш драйвер раньше работал, а сейчас перестал -
загрузите этот модуль.

                аргументы insmod:
debug=1                             выводить отладочную информацию в системный журнал.

*tda9855.o
Драйвер для чипа стерео-декодера/аудио-процессора tda9855.

аргументы insmod:
debug=1                             выводить отладочную информацию в системный журнал.

*dpl3518.o
Драйвер для процессора Dolby Pro Logic dpl3518a

аргументы insmod:
debug=1                             выводить отладочную информацию в системный журнал.

tuner.o
Драйвер тюнера.  Используйте этот драйвер, если хотите работать со встроенным
в карту тюнером...

                аргументы insmod:
debug=1                             выводить отладочную информацию в системный журнал.
type=n                 задать тип чипа тюнера, где n равно:
0:Тюнер Temic PAL
1:Тюнер Philips PAL_I
2:Тюнер Philips NTSC
3:Тюнер Philips SECAM
4:отключить поддержку тюнера
5:Тюнер Philips PAL
6:Тюнер Temic NTSC
7:Тюнер Temic PAL
*8:Тюнер Alps TSBH1 NTSC
*9:Тюнер Alps TSBE1 PAL

i2c_chardev.o
создает символьное устройство для доступа к шине i2c. Работает только с версией 2.1.x
и автоматически не собирается.