Le Mini-HOWTO BTTV
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.
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.
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, à [email protected] via email.
La version la plus récente de ce document peut-être obtenue du
Linux Documentation Project
http://metalab.unc.edu/LDP/.
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.
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.
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 :
- AverMedia TV98
- AVerMedia TV-Phone
- Diamond DTV2000
- Hauppauge Win/TV pci (and other Hauppauge cards)
- IDS Imaging FALCON
- Lifeview Flyvideo II
- Matrix Vision MV-Delta
- miroVIDEO PCTV
- Osprey-100
- STB TV PCI
- Terratec TERRA TV+
- Videologic Captivator PCI
Si vous connaissez d'autres cartes qui fonctionnent, veuillez m'écrire
et je les ajouterai à la prochaine révision de ce document.
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.
(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.
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.
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.
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
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.
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.)
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 :
- bttvgrab - Fournit une haute qualité de capture adaptée
à l'enregistrement video
- Gnome-o-Vision - Un visionneur pour l'environnement de bureau
Gnome (actuellement en cours de développement dans le CVS de Gnome)
- kwintv - Un visionneur TV basé sur Qt pour l'environnement KDE
- wmtune - Une applet tuner radio pour window maker pour les cartes
TV/radio basées sur bttv
- wmtv - WindowMaker TV dock.app
- XawTV - Une application TV et quelques utilitaires
- XtTV - 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 à
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.
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.
|