Guide d'installation et de configuration de Linux Précédent Chapitre 6. Configuration du système de base Suivant Installation d'une carte d'acquisition vidéo
Linux fournit toutes les fonctionnalités nécessaires à la manipulation des flux de données vidéo par l'intermédiaire d'une interface de programmation nommée video4linux (ce qui se lit « Video for Linux »). Linux est capable de gérer la plupart des cartes d'acquisition TV du marché et quelques-unes des cartes d'acquisition vidéo. Comme d'habitude, seuls les constructeurs de matériel qui ont accepté de jouer le jeu de fournir les informations nécessaires à la programmation de gestionnaires de périphériques libres voient leur matériel supporté sous Linux. Par conséquent, il est encore une fois nécessaire de bien se renseigner sur la nature du produit et la politique du fabricant lorsque vous achèterez une carte d'acquisition TV.
En pratique, quasiment toutes les cartes d'acquisition TV utilisent le circuit intégré Bt848 ou un de ses dérivés, et Linux sait les gérer sans problème. Les cartes d'acquisition et de montage vidéo utilisent d'autres circuits plus puissants, dont les spécifications sont généralement non disponibles. Seule la configuration des cartes TV sera donc décrite ci-dessous.
Les applications, pour accéder aux périphériques vidéo, utilisent l'un des fichiers spéciaux de périphérique /dev/video*. Ces fichiers sont des fichiers de type caractère, dont le code majeur vaut 81. Le code mineur est utilisé pour différencier les différents périphériques installés sur votre système. En général, il existe un lien symbolique /dev/video sur l'un de ces fichiers spéciaux, qui sera utilisé pour accéder au périphérique vidéo par défaut. Normalement, tous ces fichiers sont installés d'office dans le répertoire /dev/ par les distributions, et vous n'aurez pas à les créer vous-même.
Le support de la vidéo sous Linux passe bien entendu par la configuration du noyau. Cette fois, il n'est pas certain du tout que le noyau fourni avec votre distribution supporte les cartes d'acquisition TV, aussi vous aurez peut-être à recompiler vous-même votre noyau. La manière de procéder est décrite en détail dans le Chapitre 9.
Sachez toutefois que les options à valider dans la configuration du noyau se trouvent dans le menu « Multimedia devices ». Vous devrez activer l'option « Video For Linux » sous la forme de module, car vous aurez sans doute à communiquer des paramètres aux modules vidéo afin de leur spécifier le type de carte utilisé et le type de tuner. Le module qui sera créé portera le nom videodev, c'est celui qui se chargera de répondre aux requêtes du client sur les fichiers spéciaux de périphérique /dev/video*. Lorsque vous aurez activé la fonctionnalité de vidéo pour Linux, vous aurez le choix des drivers de cartes vidéo dans le sous-menu « Video adapters ».
Note : La configuration des cartes basées sur la puce Bt848 (option de menu « BT848 Video For Linux ») n'est accessible que si vous avez également activé l'option « I2C bit-banging interfaces » du menu « I2C support ». De même, le module prenant en charge les puces du type Bt848 ne prend pas en charge la gestion du son. En revanche, vous pourrez trouver le gestionnaire du son de ces cartes avec les autres gestionnaires de cartes son, dans le menu « Sound ». L'option que vous devez activer est l'option « TV card (bt848) mixer support ».
Une fois le noyau recompilé votre noyau et les nouveaux modules installés, il faut modifier le fichier de configuration /etc/modules.conf. Bien que Linux soit parfaitement capable de déterminer les ressources requises par les cartes vidéo, il est rare que le matériel soit correctement identifié par les gestionnaires de périphériques vidéo. En effet, ces gestionnaires se basent plus sur les composants courants permettant de faire l'acquisition vidéo que sur les modèles de cartes de chaque fabricant. La palme revient sans doute au gestionnaire pour les cartes basées sur les puces Bt848 et ses dérivées, puisqu'il est capable de faire fonctionner toutes les cartes vidéo de tous les fabricants qui utilisent cette puce. Par conséquent, il faut indiquer le modèle de la carte au gestionnaire, à l'aide des options de modules dans le fichier modules.conf.
En fait, le gestionnaire pour les cartes basées sur la puce Bt848 est constitué de deux modules. Le premier, nommé bttv, gère la puce Bt848 elle-même et prend en charge les flux vidéo et l'incrustation vidéo dans la mémoire de la carte graphique. Le deuxième module quant à lui s'occupe de la gestion de la puce du tuner, qui effectue la recherche des chaînes et le décodage des signaux vidéo. Pour ces deux modules, il est indispensable de préciser quelle type de carte TV est installé et quel tuner cette carte utilise. Il existe de nombreuses variantes, selon les modèles et les différents fabricants présents sur le marché.
Le type de carte peut être communiqué au module bttv à l'aide de l'option card. Cette option peut prendre comme valeur un numéro identifiant le modèle de la carte. Les valeurs actuellement supportées sont indiquées dans le fichier CARDLIST du répertoire /usr/src/linux/Documentation/video4linux/bttv/.
Le module de gestion du tuner utilise l'option type pour déterminer le type de tuner utilisé. Cette option prend, elle aussi, une valeur numérique indiquant la nature du tuner utilisé. Les valeurs supportées sont également données dans le fichier CARDLIST. En pratique, il est fort probable que vous utilisiez le type 3, qui correspond au tuner Philips SECAM, car la France utilise le standard SECAM pour les émissions TV.
Ainsi, si vous disposez d'une carte MIRO PCTV (carte de type 1) basée sur le tuner Philips SECAM, vous devriez avoir les lignes suivantes dans votre fichier modules.conf :
Vous devrez bien entendu adapter ces lignes selon votre propre configuration.# Lien entre les fichiers spéciaux de périphériques et les modules du noyau : alias char-major-81 videodev alias char-major-81-0 bttv # Options du module de gestion du Bt848 : options bttv card=1 # Option du module de gestion du tuner : options tuner type=3Note : Si vous avez compilé les fonctionnalités de l'interface I2C sous forme de module (option de menu « I2C bit-banging interfaces »), vous aurez également à ajouter ces lignes dans votre fichier de configuration modules.conf :
Pour information, I2C est un protocole de communication entre micro-contrôleurs, que la plupart des cartes mères sont capables de gérer. Cette fonctionnalité n'est nécessaire que pour les cartes basées sur la puce Bt848.Lorsque vous aurez fini vos modifications dans le fichier de configuration modules.conf, n'oubliez pas d'appeler la commande depmod -a pour remettre à jour les dépendances entre les modules du noyau. Si tout se passe bien, vous pourrez utiliser les programmes de lecture TV, comme KWinTV par exemple si vous utilisez l'environnement de bureau KDE.
Note : Vous pouvez rencontrer quelques problèmes lors de la configuration de votre carte TV. Généralement, si vous n'obtenez aucune image, c'est que vous vous êtes trompés de tuner. Revoyez dans ce cas l'option type du module tuner. Si vous obtenez bien une image, mais pas de son, c'est sans doute que vous vous êtes trompés dans le type de carte, ou que vous avez oublié d'inclure le support du son pour les cartes à base de Bt848. On notera que, comme pour les cartes son, seule la compatibilité matérielle importe. Par exemple, les cartes Studio PCTV de Pinacle vendues en France sont en réalité des cartes Miro PCTV et ne sont pas reconnues comme des cartes Studio PCTV par Linux... Si vous avez des problèmes de son, vous devrez donc revoir la configuration du noyau ou modifier la valeur passée à l'option card du module bttv. Dans tous les cas, n'hésitez pas à utiliser la commande lspci, qui permet de visualiser les informations du bus PCI, et la commande dmesg, qui permet de voir la liste des messages du noyau.
Vous pouvez également avoir quelques problèmes de droits sur les fichiers spéciaux de périphériques /dev/videoX. Le symptôme classique est dans ce cas que tout fonctionne parfaitement sous le compte root, mais pas sous les comptes utilisateurs. Dans ce cas, on pourra résoudre ces problèmes en attribuant un groupe d'utilisateurs video, auxquel appartiendront tous les utilisateurs ayant le droit d'utiliser la carte d'acquisition TV, et de changer le groupe des fichiers spéciaux de périphériques /dev/videoX.
Enfin, l'utilisation des cartes d'acquisition TV nécessite d'activer les fonctionnalités DGA du serveur X. Ces fonctionnalités permettent aux programmes d'accéder directement à la mémoire vidéo, et donc de faire l'incrustation de l'image décodée par la carte TV dans la surface d'affichage d'un écran. La manière d'activer les fonctionnalités DGA sera précisée dans le chapitre traitant de la configuration du serveur X.
Précédent Sommaire Suivant Installation d'une carte graphique 3D Niveau supérieur Installation d'un graveur de CD-ROM