The BTTV Mini-HOWTO

Eric Sandeen

Перевод: Михаил Корепанов, ASPLinux

Аннотация

В этом документе дается описание всего программного и аппаратного обеспечения, необходимого для использования в Linux карты оцифровки видеоизображения или ТВ-тюнера, основанных на чипсете bt8x8.


Содержание
Введение
Требования к аппаратному обеспечению
Требования к программному обеспечению
Настройка системы
Проигрыватели
Приложение - значения аргументов для всех модулей

Введение

Возможность оцифровки и последующего воспроизведения являются одним из приоритетов мультимедиа под Linux. Множество устройств поддерживается через API video4linux (http://roadrunner.swansea.uk.linux.org/v4l.shtml), включая несколько ТВ карт, основанных на чипсетах Conexant bt848 и bt878. Этот документ объясняет, как их использовать под Linux.


Copyright of this document

This HOWTO is copyrighted 1999 Eric Sandeen.

Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO co-ordinator at the address given below.

In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.

If you have questions, please contact Tim Bynum, the Linux HOWTO co-ordinator, at linux-howto@metalab.unc.edu via email.


Авторские права

Авторские права на русский перевод этого текста принадлежат ╘ 2000 ASPLinux Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.

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


Где можно взять этот документ

Последняя версия этого документа находится на страничке проекта Linux Documentation Project http://metalab.unc.edu/LDP/.


Благодарности

Спасибо Ralph Metzler и Marcus Metzler за написание драйвера к bttv. Также спасибо Alan Cox за создание Video4Linux API, Gerd Knorr за работу над радиокартами, последующими релизами bttv, и xawtv. И всем, кто работал над поддержкой этой карты под Linux. Спасибо William Burrow, написавшему BTTV Howto (об этом я узнал после того, как написал этот документ...), а я, опираясь на его работу, дополнил свою.

При разработке этого HOWTO я использовал документацию bttv и xawtv.


Ответственность

Вы используете информацию из этого документа на свой страх и риск. Я не отвечаю за содержание этого документа. Ответственность за использование примеров, идей и/или чего-то другого, содержащегося в этом документе вы берете на себя.

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

Настоятельно рекомендую сохранить копию вашей системы, до того, как установите новую.


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

Из файла 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 для того, чтобы удостовериться, что ваша информация не устарела.)


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

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

Еще есть интересный драйвер для карты 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
	и автоматически не собирается.