Le Mini-HOWTO BTTV

Par Eric Sandeen, eric_sandeen@bigfoot.com

v0.3, F�vrier 2000
Ce document d�crit le mat�riel, les logiciels, et les proc�dures n�cessaires � l'utilisation d'une carte d'acquisition vid�o ou d'une carte tuner TV bas�e sur les puces bt8*8 sous Linux.

1. Introduction

La possibilit� de capturer et de visionner des sources vid�o est une des fonctionnalit�s multim�dia les plus int�ressantes de Linux. Beaucoup de p�riph�riques vid�o diff�rents sont support�s par l'interm�diaire de l'API video4linux ( http://roadrunner.swansea.uk.linux.org/v4l.shtml), ceci inclut plusieurs cartes tuner TV bas�es sur les puces bt848 et bt878 de Conexant. Ce document explique comment utiliser ces cartes sur un syst�me Linux.

1.1 Copyright de ce document

Ce HOWTO est sous le copyright 1999 Eric Sandeen.

A moins que cela ne soit explicitement �tabli, les documents Linux HOWTO sont la propri�t� de leurs auteurs respectifs. Les documents Linux HOWTO peuvent �tre reproduits et distribu�s en entier ou par partie, sur n'importe quel m�dium physique ou �lectronique, tant que la notice du copyright est conserv�e sur toutes les copies. La redistribution commerciale est autoris�e et encourag�e; n�anmoins, l'auteur aimerait �tre inform� de ce genre de distribution.

Toute traduction, travail d�riv�, ou travail collectif incluant n'importe quel document Linux HOWTO doit �tre couvert par cette notice du copyright. Cela �tant, vous ne pouvez produire un travail d�riv� de ce document et imposer des restrictions suppl�mentaires sur sa distribution. Des exceptions � ces r�gles peuvent �tre accord�es sous certaines conditions; s'il vous pla�t contactez le coordinateur des Linux HOWTO � l'adresse donn�e plus bas.

Pour faire court, nous voulons promouvoir la diffusion de cette information � travers autant de canaux que possible. N�anmoins, nous voulons conserver le copyright sur les documents HOWTO, et aimerions �tre inform� de tout projet de redistribution de ces HOWTO.

Si vous avez des questions, veuillez contacter Tim Bynum, le coordinateur des HOWTO Linux, � linux-howto@metalab.unc.edu via email.

1.2 O� trouver ce document

La version la plus r�cente de ce document peut-�tre obtenue du Linux Documentation Project http://metalab.unc.edu/LDP/.

1.3 Remerciements

Merci � Ralph Metzler et Marcus Metzler pour avoir cod� les pilotes bttv originels. Merci aussi � Alan Cox pour avoir cr�� l'API (Architecture de programmation) Video4linux, Gerd Knorr pour son travail sur les cartes radio, pour les versions ult�rieures des pilotes bttv et xawtv, et toutes les personnes contribuant � Linux pour le support de ces cartes. Merci � William Burrow, qui a aussi �crit un HOWTO pour BTTV (Ce que j'ai appris apr�s avoir �crit ce document...) J'ai am�lior� ce guide, merci pour son travail.

En �crivant ce HOWTO je me suis tr�s fortement inspir� de la documentation de bttv et xawtv.

1.4 Notification

Utilisez l'information de ce document � vos riques et p�rils. Je d�cline toute responsabilit� quand au le contenu de ce document. L'utilisation des concepts, exemples, et/ou autre contenu de ce document est enti�rement � votre propre risque.

Tous les copyrights sont d�tenus par leurs propri�taires, � moins que cela ne soit explicitement sp�cifi�. L'utilisation de termes dans ce document ne doit pas �tre per�u comme affectant la validit� d'aucune marque d�pos�e ou marque de service.

La nomination de produit ou marque ne doit pas �tre per�ue comme une recommandation particuli�re de ceux-ci. Vous �tes fortement invit� � faire une sauvegarde de votre syst�me avant toute installation majeure et sauvegarder � intervalles r�guliers.

2. Mat�riel n�cessaire

Extrait du README de bttv:

Bttv est un pilote de p�riph�rique pour cartes d'acquisition video utilisant la famille de d�codeur video Bt848 de Conexant ( http://www.conexant.com), parmi lesquelles figurent le Bt848, le Bt848A, le Bt849, le Bt878 et le Bt879. Les seules diff�rences majeures entre ces cartes, de diff�rents fabricants, sont les types de tuner et les composants suppl�mentaires sur la carte. E.g., certaines cartes de Hauppauge poss�dent un d�codeur Videotext additionnel et/ou une puce de d�codage du son. Seuls certains composants additionnels sont support�s par bttv. Ansi, le type (Composite ou S-Video) et le nombre d'entr�es diff�re.

Les cartes suivantes devraient fonctionner :

Si vous connaissez d'autres cartes qui fonctionnent, veuillez m'�crire et je les ajouterai � la prochaine r�vision de ce document.

3. Logiciels n�cessaires

Pour utiliser ces cartes tuner TV sous linux, vous aurez besoin des pilotes du noyau appropri�s. Les pilotes bttv sont distribu�s avec le noyau depuis la version 2.2.0.

Sinon, vous pouvez obtenir la derni�re version des pilotes et l'utiliser avec le noyau 2.0.35 ou plus r�cent. N�anmoins, il n'est pas garanti que cela fonctionne avec la vieille s�rie de noyaux 2.0.x. Le paquetage mis � jour bttv est disponible � http://www.thp.uni-koeln.de/~rjkm/linux/bttv.html et une version encore plus r�cente est disponible chez Gerd Knorr � http://www.in-berlin.de/User/kraxel/xawtv.html Ces paquetages incluent aussi le support de nouvelles puces audio, dont le TEA6300, le TDA8425, et le DPL3518.

Si vous �tes nouveau dans le monde des pilotes bttv, je vous sugg�re de commencer avec la version incluse avec le dernier noyau. Si vous rencontrez des probl�mes avec ceux-ci ou s'ils ne supportent pas votre carte, alors risquez vous � mettre � jour les pilotes de la s�rie 0.6 sur le site cit� plus haut. Si vous vous sentez vraiment aventurier, vous pouvez essayer la s�rie de pilote 0.7 de Gerd Knorr's, destin�e � �tre incorpor�s dans le noyau 2.4. La s�rie 0.7 est aussi disponible � http://www.in-berlin.de/User/kraxel/xawtv.html.

Ce document est principalement bas� sur les pilotes du noyau 2.2.14, avec quelques mentions des fonctionnalit�s disponibles dans la version mise � jour des pilotes de la s�rie 0.6. La s�rie 0.7 n'est pas actuellement couverte car en cours de d�veloppement au moment de la r�daction de ce document.

4. Configuration du syst�me

4.1 Installation mat�rielle

(Merci � William Burrow pour cette section.)

Si vous avez peur d'ouvrir le bo�tier de votre ordinateur, lisez pr�alablement en entier ce HOWTO et prenez des notes � propos de la carte, tel que le type de son tuner, le nombre de circuits int�gr�s, les fr�quences des cristaux etc. Ensuite demandez � quelqu'un de comp�tent de vous installer votre carte.

Autrement, ouvrez le bo�tier et installez la carte dans un connecteur disponible. Choisissez une carte conforme aux sp�cifications PCI 2.1 capable d'op�rer en tant que p�riph�rique ma�tre (bus mastering) sur le bus PCI, au cas o� votre carte m�re serait sensible sur ce point (r�f�rez-vous � son manuel). Vous avez besoin de cela pour utiliser le mode overlay.

Pour le son, il y a deux mani�re diff�rentes de connecter votre carte d'acquisition et votre carte son. La premi�re solution est interne. Connectez le c�ble audio de votre CD-ROM vers l'entr�e sonore de votre carte vid�o et de la sortie de la carte vid�o vers l'entr�e audio CD-ROM ou Tuner de votre carte son. L'autre mani�re est de connecter le jack 1/8'' externe de la carte video vers l'entr�e 1/8'' "line in" de la carte son. Vous pouvez aussi brancher des enceintes amplifi�es sur la sortie audio de votre carte d'acquisition si vous n'avez pas de carte son ou ne voulez pas passer par la carte son (quelques cartes r�centes bas�es sur un bt878 n'ont pas du tout de connecteur sonore, car elles envoient les donn�es audio digitales au travers du bus PCI. Il n'y pas de support pour ces cartes � ce jour.

Une source vid�o serait aussi utile, surtout pour d�terminer si la carte fonctionne ou pas. Beaucoup de cartes comportent une entr�e vid�o composite, S-Vid�o et, si la carte est �quip�e d'un tuner, RF. Il y a un connecteur s�par� pour chacune de ces entr�es.

4.2 Configuration du noyau

Votre noyau devra �tre correctement configur� pour supporter votre carte. La plupart des distributions r�centes sont livr�es avec les modules n�cessaires d�j� compil�s, donc si vous pouvez trouver les modules videodev.o, bttv.o et tuner.o sous /lib/modules/2.x.x/misc, vous devriez �tre pr�t.

Sinon, vous allez devoir recompiler votre noyau avec

CONFIG_VIDEO_DEV

et

CONFIG_VIDEO_BT848

s�lectionn�s, de pr�f�rence comme modules. Voir le HOWTO du Kernel Linux ( http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html) pour plus de d�tails sur la mani�re de recompiler votre noyau.

4.3 Utilisation du paquetage 0.6.x mis � jour

Si vous voulez utiliser le paquetage 0.6.x mis � jour, vous devriez d'abord t�l�charger l'archive depuis l'un des sites mentionn�s plus haut. D�compactez le avec

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

et entrez dans le r�pertoire nouvellement cr��. su pour devenir root, et tapez

make

dans le r�pertoire principal pour construire les pilotes. (Vous pouvez en toute s�curit� ignorer les informations dans le fichier INSTALL concernant l'�dition des makefiles, puisque nous passerons ces informations au pilote comme param�tres des modules.) Ensuite tapez

make install

pour les installer. Finalement, lancez

/sbin/depmod -a

pour mettre � jour les informations concernant les d�pendances des modules.

4.4 Fichiers sp�ciaux dans /dev

Ensuite, vous pourriez avoir besoin de cr�er les fichiers de caract�res sp�ciaux dans le r�pertoire /dev. Tapez ls /dev/video*; ls /dev/radio* pour savoir si ces p�riph�riques existent d�j�. Sinon, vous allez devoir les fabriquer. Tout ces fichiers poss�dent 81 comme num�ro de p�riph�rique majeurs, les num�ros de p�riph�rique mineurs sont sp�cifiques aux p�riph�riques ainsi que de multiples cas de ces fichiers. Voir l'API Video4Linux ( http://roadrunner.swansea.uk.linux.org/v4lapi.shtml) pour les d�tails concernant la programmation.

Il y a un script MAKEDEV dans le r�pertoire driver du paquetage des pilotes bttv qui cr�era quatre p�riph�riques vid�o. Vous pouvez aussi le faire vous m�me de mani�re assez ais�e si vous n'avez qu'une seule carte d'acquisition vid�o. En tant que root, tapez:

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

Il y a aussi les p�riph�riques Videotext et VBI qui peuvent �tre cr��s si vous avez une application qui les r�clame. (Actuellement, elles sont peu nombreuses.) Tapez:

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

4.5 Chargement des Modules

Les pilotes bttv fournissent beaucoup de modules diff�rents, avec de nombreuses options diff�rentes, comme d�crit en appendice dans ce document. Avec autant de modules et d'options, vous devriez faire cela � la main jusqu'� ce que tout fonctionne. Si par malchance cela provoquait un plantage de votre machine, vous pourriez taper

sync; sleep 1; sync

pour chasser toutes les salet�s du cache du disque avant de poursuivre. Ensuite utilisez la commande insmod en tant que root, pour essayer de charger les modules. Les deux premiers sont simples car ils ne n�cessitent g�n�ralement pas d'option :

insmod videodev

insmod i2c

Vous �tes maintenant pr�t � charger le module bttv lui-m�me :

modprobe bttv

Par d�faut, le module bttv essaie de d�tecter le type de votre carte. Regarder dans /var/log/messages pour voir ce qu'il trouve. s'il ne la d�tecte pas proprement, vous pouvez ajouter l'option card=n � la fin de la commande pr�c�dente pour forcer le type de carte, avec n choisi parmi la liste suivante. (Les types de 0 � 19 sont fournis dans la s�rie de pilote du noyau, bttv-0.6.4h contient le support pour les types de 20 � 27.) Vous pouvez aussi ajouter l'option radio=1 Si votre carte poss�de un tuner FM.


card=n          card type
                0:  Auto-Detect
                1:  Miro
                2:  Hauppauge (old bt848 boards)
                3:  STB
                4:  Intel
                5:  Diamond
                6:  AVerMedia
                7:  MATRIX Vision MV-Delta
                8:  FlyVideo
                9:  TurboTV
                10: Hauppauge (new bt878 boards)
                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 (newer FlyVideo cards)
                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

Ensuite, chargez le module tuner, avec

modprobe tuner type=n

Vous aurez probablement � plonger dans votre bo�tier pour voir quel tuner votre carte poss�de. Certaines cartes (Miro et Hauppauge) permettent la d�tection automatique du tuner, mais vous aurez peut-�tre besoin de le sp�cifier. Le tuner devrait �tre marqu� avec le nom du fabricant, et vous pouvez jeter un oeil aux cristaux (petites boites d'aluminium) sur la carte pour voir si vous poss�dez un tuner NTSC ou PAL. Pour le PAL, le cristal est marqu� 28.xxxMHz (o� xxx sont trois chiffres). Pour NTSC, le bo�tier devrait indiquer 35.xxxMHz. Une fois que vous avez identifi� votre tuner, s�lectionnez la valeur de n parmi la liste suivante (Les types 8 et 9 sont seulement inclus avec bttv-0.6.4h):


type=n          type of the tuner chip. n as follows:
                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

Enfin, ins�rez tous les modules sonores dont vous pouvez avoir besoin. Encore unhe fois, vous devrez probablement regarder attentivement la carte pour d�terminer ce dont vous avez besoin. Notez que les pilotes pour les puces TEA6300, TDA8425, TDA9855, and DPL3518 sont seulement inclus dans la s�rie 0.6.4h, et ne sont pas inclus avec les pilotes du noyau courant (2.2.14).

modprobe msp3400 ou tea3600 ou tda8425 ou tda9855 ou dpl3518 (Voir l'appendice pour les d�tails et les options)

Lancez votre programme video4linux favori, et voyez si cela fonctionne. Si vous ne pouvez pas changer de canal, v�rifiez que vous avez ins�r� le bon module tuner. Si vous n'entendez aucun son, v�rifiez deux fois le module sonore, et v�rifiez que le canal n'est pas en sourdine, si vous passez par la carte son.

4.6 Automatisation du processus

Maintenant que vous connaissez les modules dont vous avez besoin et leurs options, vous pouvez automatiser le processus en �crivant ces informations dans le fichier /etc/conf.modules. A partir de ce maintenant, lancer une application qui n�cessite ces pilotes entra�nera leur chargement automatique. J'utilise le fichier suivant:


# 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

Fa�tes attention de bien l'adapter pour qu'il refl�te vos propres modules et options pour votre carte. (Lancer un /sbin/depmod -a pour faire en sorte que les informations de d�pendance soient � jour.)

5. Applications

Maintenant que votre noyau et vos p�riph�riques sont configur�s et que vos modules sont ins�r�s, vous aurez aussi besoin d'applications pour visionner ou capturer les images de votre carte. Il y en a beaucoup de disponibles :

Il y a aussi un pilote disponible pour la carte de contr�le � distance pour le FlyVideo98 � http://wolf.ifj.edu.pl/~jochym/FlyVideo98/

Lisez la documentation pour chaque application que vous voulez d'utiliser. Beaucoup d'entre elles r�clament l'�dition de fichiers de configuration d�taill�s avant que l'application ne fonctionne correctement! A cause du grand nombre de cartes diff�rentes disponibles, vous devez prendre le temps de lire la documentation de ces cartes, car les pr�r�glages de l'application sont susceptibles de ne pas fonctionner pour votre carte.

6. Appendice - Arguments pour tous les modules

Les items pr�c�d�s d'une "*" sont seulement disponibles dans la s�rie 0.6.4h.


videodev.o
        C'est le module de base de video4linux, tous les pilotes vid�o (y comprit bttv)
        s'enregistrent ici.

i2c.o
        Module i2c g�n�rique. Il fait la plupart de la gestion du bus i2c,
        tous les autres modules l'utilisent (sauf videodev.o).

        Arguments pour insmod:
                scan=1          scanne le bus pour trouver les p�riph�riques i2c
                verbose=0       d�sactive le mode verbeux
                i2c_debug=1     pour le d�bogage, cela consigne tout le traffic
                                        (logiciel) du bus i2c dans la syslog

bttv.o
        Pilote bt848 (puce d'acquisition).

        Arguments pour insmod:
                remap=adr       reloge l'adresse m�moire du Bt848 � adr<<20               
                vidmem=base     adresse>>20 du frame buffer (de la carte graphique)
                triton1=0/1     pour la compatibilit� Triton1
                                Triton1 est reconnu automatiquement
                                mais cela peut aussi aider avec d'autre puce
                pll=0/1/2       r�glages pll
                                0: ne pas utiliser de PLL
                                1: cristal 28 MHz install�
                                2: cristal 35 MHz install�
                radio=0/1       support des cartes radio
                card=n          type de carte
                                0:  Auto-Detect
                                1:  Miro
                                2:  Hauppauge (old bt848 boards)
                                3:  STB
                                4:  Intel
                                5:  Diamond
                                6:  AVerMedia
                                7:  MATRIX Vision MV-Delta
                                8:  FlyVideo
                                9:  TurboTV
                                10: Hauppauge (new bt878 boards)
                                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 (newer FlyVideo cards)
                                *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 et pll acceptent jusqu'� quatre arguments s�par�s par des virgules
        (pour plusieurs cartes).  Les arguments CARD et PLL d�finis � partir du Makefile sont
        utilis�s comme arguments par d�faut.

msp3400.o
        Pilote pour le processeur sonore msp34xx. Si vous avez une
        carte st�r�o, vous devriez probablement charger ce module.

        Arguments pour insmod:
                debug=1/2       �crit des informations de d�bogage dans la syslog,
                                2 est plus verbeux.

*tea6300.o
        Pilote pour la puce fader tea6300. Si vous avez une carte st�r�o et que
        le msp3400.o ne marche pas, vous essayez celui-ci. Cette puce
        est disponible sur la plupart des cartes TV/FM de STB (g�n�ralement en
        provenance de surplus de carte OEM de Gateway sur les sites de mise aux ench�res).

        Arguments pour insmod:
                debug=1         �crit quelques informations de d�bogage dans la syslog.

*tda8425.o
        Pilote pour la puce fader tda8425. Ce pilote faisait partie de bttv.c,
        donc si votre son fonctionnait mais ne marche plus, essayez ce module.

        Arguments pour insmod:
                debug=1         �crit quelques informations de d�bogage dans la syslog.

*tda9855.o
        Pilote pour le d�codeur st�r�o / puce sonore tda9855.
        
        Arguments pour insmod:
                debug=1         �crit quelques informations de d�bogage dans la syslog.

*dpl3518.o
        Pilote pour la puce Dolby Pro Logic dpl3518a. 
        
        Arguments pour insmod:
                debug=1         �crit quelques informations de d�bogage dans la syslog.

tuner.o
        Pilote tuner. Vous avez besoin de celui-ci � moins de ne vouloir utiliser
        qu'une camera ou un tuner externe...

        Arguments pour insmod:
                debug=1         �crit quelques informations de d�bogage dans la syslog.
                type=n          type de la puce tuner. n dans la liste suivante:
                                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

i2c_chardev.o
        Fournit un p�riph�rique caract�re pour acc�der au bus i2c. Fonctionne pour
        les 2.1.x seulement, il n'est pas compil� par d�faut.