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.
______________________________________________________________________
Table des matières
1. Introduction
1.1 Copyright de ce document
1.2 Où trouver ce document
1.3 Remerciements
1.4 Notification
2. Matériel nécessaire
3. Logiciels nécessaires
4. Configuration du système
4.1 Installation matérielle
4.2 Configuration du noyau
4.3 Utilisation du paquetage 0.6.x mis à jour
4.4 Fichiers spéciaux dans
4.5 Chargement des Modules
4.6 Automatisation du processus
5. Applications
6. Appendice - Arguments pour tous les modules
______________________________________________________________________
11.. IInnttrroodduuccttiioonn
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 (), 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.
11..11.. CCooppyyrriigghhtt ddee ccee ddooccuummeenntt
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, à _l_i_n_u_x_-_h_o_w_t_o_@_m_e_t_a_l_a_b_._u_n_c_._e_d_u via email.
11..22.. OOùù ttrroouuvveerr ccee ddooccuummeenntt
La version la plus récente de ce document peut-être obtenue du Linux
Documentation Project .
11..33.. RReemmeerrcciieemmeennttss
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 _a_p_r_è_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.
11..44.. NNoottiiffiiccaattiioonn
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.
22.. MMaattéérriieell nnéécceessssaaiirree
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 (
), 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 :
· AAvveerrMMeeddiiaa TTVV9988
·
· AAVVeerrMMeeddiiaa TTVV--PPhhoonnee
·
· DDiiaammoonndd DDTTVV22000000
·
· HHaauuppppaauuggee WWiinn//TTVV ppccii (and other Hauppauge cards)
·
· IIDDSS IImmaaggiinngg FFAALLCCOONN
·
· LLiiffeevviieeww FFllyyvviiddeeoo IIII
·
· MMaattrriixx VViissiioonn MMVV--DDeellttaa
·
· mmiirrooVVIIDDEEOO PPCCTTVV
·
· OOsspprreeyy--110000
·
· SSTTBB TTVV PPCCII
·
· TTeerrrraatteecc TTEERRRRAA TTVV++
·
· VViiddeeoollooggiicc CCaappttiivvaattoorr PPCCII
·
Si vous connaissez d'autres cartes qui fonctionnent, veuillez m'écrire
et je les ajouterai à la prochaine révision de ce document.
33.. LLooggiicciieellss nnéécceessssaaiirreess
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 à et une version encore
plus récente est disponible chez Gerd Knorr à
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
à .
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.
44.. CCoonnffiigguurraattiioonn dduu ssyyssttèèmmee
44..11.. IInnssttaallllaattiioonn mmaattéérriieellllee
_(_M_e_r_c_i _à _W_i_l_l_i_a_m _B_u_r_r_o_w _p_o_u_r _c_e_t_t_e _s_e_c_t_i_o_n_._)
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.
44..22.. CCoonnffiigguurraattiioonn dduu nnooyyaauu
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 ( ) pour plus
de détails sur la manière de recompiler votre noyau.
44..33.. UUttiilliissaattiioonn dduu ppaaqquueettaaggee 00..66..xx mmiiss àà jjoouurr
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.
44..44.. FFiicchhiieerrss ssppéécciiaauuxx ddaannss //ddeevv
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 () 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
44..55.. CChhaarrggeemmeenntt ddeess MMoodduulleess
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.
44..66.. AAuuttoommaattiissaattiioonn dduu pprroocceessssuuss
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.)
55.. AApppplliiccaattiioonnss
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 :
· bbttttvvggrraabb - Fournit une haute qualité de capture adaptée à
l'enregistrement video
·
· GGnnoommee--oo--VViissiioonn - Un visionneur pour l'environnement de bureau Gnome
(actuellement en cours de développement dans le CVS de Gnome)
·
· kkwwiinnttvv - Un visionneur TV basé sur Qt pour l'environnement KDE
·
· wwmmttuunnee - Une applet tuner radio pour window maker pour les cartes
TV/radio basées sur bttv
·
· wwmmttvv - WindowMaker TV dock.app
·
· XXaawwTTVV - Une application TV et quelques utilitaires
·
· XXttTTVV - Un programme TV/Video simple pour Linux/X Windows
·
Il y a aussi un pilote disponible pour la carte de contrôle à distance
pour le FlyVideo98 à
LLiisseezz llaa ddooccuummeennttaattiioonn 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 _d_e_v_e_z prendre le temps de lire la documentation de
ces cartes, car les préréglages de l'application sont susceptibles de
_n_e _p_a_s fonctionner pour votre carte.
66.. AAppppeennddiiccee -- AArrgguummeennttss ppoouurr ttoouuss lleess mmoodduulleess
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.
______________________________________________________________________
.