Le royaume de Eric Buist >> Informatique >> Quelques-unes de mes recherches personnelles >> Trucs et astuces
Me contacter Plan du site
<< Qt sous Windows Configuration d'une carte graphique ATI sous Linux Comment graver Mandrake 10 sur un DVD >>

Configuration d'une carte graphique ATI sous Linux

Si vous êtes possesseur d'une carte graphique de marque ATI et que vous installez Linux, croyez-moi: vous remettrez un jour ou l'autre en question votre achat! Lorsque l'installation sera terminée, vous obtiendrez une interface graphique X Window System dans la résolution de votre choix, avec une profondeur de couleurs de 16 ou 24 bits. Tout utilisateur non initié concluera avec satisfaction que sa carte graphique fonctionne très bien. Cela a été mon cas pour moi aussi!

Un bon jour, toutefois, vous tenterez d'utiliser une application 3D, telle que des écrans de veille de XScreenSaver, et vous constaterez peut-être que certains écrans de veille ne fonctionnent pas, d'autres sont très lents, même sur une machine moderne. Vous essaierez peut-être le gestionnaire de fenêtres Compiz Fusion et constaterez qu'il refuse de démarrer, faute d'accélération 3D Quant à la petite quantité de jeux 3D disponibles sous Linux, il faudra l'oublier elle aussi. Plus encore, si vous disposez d'une carte de la famille All-In-Wonder avec synthoniseur TV, vous ne pourrez probablement pas regarder la télévision sous Linux, encore moins réaliser des captures d'images fixes ou de vidéo. Tous ces problèmes sont dus au fait que les cartes graphiques ATI ne sont pas bien supportées, en standard, sous Linux. Comme nous le verrons, la situation s'améliore graduellement, mais il reste encore du chemin à faire!

Nous nous pencherons davantage sur les cartes ATI à puce Rage128 (Rage128, Rage128 Pro, All-In-Wonder 128, All-In-Wonder 128 Pro, ...) et Radeon. Nous étudierons le cas du DRI, le support de la fonction TV et finalement la capture d'images fixes et animées.

Direct Rendering Interface (DRI)

Introduit avec XFree86 4.0, la technologie DRI offre un accès plus direct au matériel afin de permettre des performances accrues pour les jeux et les applications multimédia. DRI permet entre autres une meilleure performance des applications 3D ainsi que l'utilisation de la bibliothèque Simple DirectMedia Layer (SDL) pour les jeux sous Linux. La technologie DRI comporte deux palliers principaux: un pilote DRM au niveau du noyau et un pilote DRI au niveau de l'environnement graphique. Un pilote DRM (Direct Rendering Module) se trouve chargé dans le noyau au démarrage du système ou du serveur X et y demeure tout au long du fonctionnement de l'ordinateur. Ce pilote fournit des fonctions d'accès au matériel à un module DRI qui, lui, se trouve chargé dans le serveur X. Le module DRI tourne tant que le serveur X tourne. Pour savoir si votre système utilise bien DRI, démarrez glxinfo | grep "direct rendering" sur un terminal X (XTerm, Konsole, ...). Si la commande affiche direct rendering: yes, c'est que DRI est activé!

Pour être utilisé, DRI doit d'abord être activé. Cette activation s'effectue en modifiant le fichier de configuration de XFree86 qui se nomme /etc/X11/XF86Config-4 ou /etc/X11/XF86Config selon les distributions Linux. Avec X.Org, le fichier devient /etc/X11/xorg.conf. Il est recommandé d'effectuer une copie de sauvegarde de ce fichier avant toute modification, car une erreur pourrait empêcher votre serveur X (et donc l'interface graphique) de démarrer. Ce fichier se subdivise en sections de la forme

Section "nom"
...
EndSection

Les points de suspension représentent un contenu quelconque mais valide selon le format du fichier; le type de contenu requis varie selon le type de section. La section Module indique l'ensemble des modules d'extension à charger. Les modules dri et glx doivent être chargés pour pouvoir utiliser DRI. La section devrait présenter le profil suivant:

Section "Module"
...
   Load "glx"
   Load "dri"
...
EndSection

La section DRI, quant à elle, fixe les permissions d'utilisation de DRI; elle est indispensable pour permettre aux utilisateurs de faire usage de DRI. Habituellement, elle présente le contenu suivant.

Section "DRI"
   Group 0
   Mode 0666
EndSection

Il est également possible de limiter l'utilisation de DRI à certains utilisateurs seulement; voir la documentation de X.Org ou de XFree86 à cet effet. Si vous modifiez le fichier de configuration de X, vous devrez redémarrer le serveur X pour qu'il tienne compte des changements. Pour redémarrer le serveur, fermez votre session afin de retourner à l'écran de branchement. Si aucun bouton ne permet de redémarrer le serveur depuis cet écran, appuyez alors sur CTRL-ALT-Backspace.

Si DRI n'est pas supporté sur votre ATI, mettez XFree86 à jour afin d'utiliser la version 4.2 ou ultérieure ou, mieux encore, passez à X.Org. Cette dernière comporte déjà, en standard, un module DRI pour la carte graphique ATI Rage 128 et Radeon. Ces pilotes prennent en charge l'accélération 3D.

Malheureusement, si vous possédez une carte récente, vous devrez installer un pilote provenant du site ATI pour obtenir le support du 3D. Avec certaines distributions de Linux, ce pilote peut être installé plus facilement qu'en utilisant le programme mis au point par ATI. Par exemple, avec Fedora Core, il faudra installer un paquet depuis Livna. Avec Ubuntu, un paquet est offert en standard. Quant à Mandriva, il faut opter pour la version MandrivaOne ou être abonné au MandrivaClub pour obtenir un pilote facile à installer.

Utilisation de la fonction TV

Si vous disposez d'une carte ATI All-In-Wonder ou d'une carte ATI Rage 128 ou Radeon munie d'une extension TV, vous pouvez brancher un câble coaxial afin de lui fournir un signal TV. Malheureusement, la carte ne supporte qu'un signal analogique; elle ne peut réaliser le décodage dans le cas de la télévision numérique par câble ou par satellite. Toutefois, il est possible de raccorder un récepteur ou décodeur externe à votre carte graphique en utilisant les entrées composite ou S-Video. Sous Windows, vous utiliserez ATI Multimedia Center pour visionner des émissions sur votre écran d'ordinateur, mais qu'en est-il de Linux? Il vous faut tout d'abord l'application XawTV qui constitue un lecteur TV pour X. Bien que ce programme manque un peu de convivialité en raison de son interface graphique parfois récalcitrante, il était le seul que je connaisse capable de remplir les fonctions voulues.

Malheureusement, XawTV ne peut travailler seul; il a besoin d'un autre élément, un pilote permettant d'interagir avec la carte graphique ATI. XawTV peut utiliser un pilote Video4linux 1 ou 2, mais il n'en existe aucun suffisamment au point pour bien fonctionner. Heureusement, XawTV supporte aussi l'extension X XVidéo qui permet de projeter une image animée à l'écran sans malheureusement autoriser la capture.

Le pilote XVideo n'est pas toujours intégré avec X. Sous RedHat 7.3, il ne l'était pas, mais on le trouve en standard avec Mandrake 9. Pour savoir si le pilote est là, démarrez XawTV. Mais depuis Mandrake 10, tout a cessé de fonctionner. Un écran de bienvenue s'affiche.

Écran de bienvenue de XawTV

Si vous n'avez reçu aucun message d'erreur, c'est déjà bon signe, même si votre télévision virtuelle semble ne pas bien fonctionner pour le moment. Validez par Ok puis cliquez droit dans la fenêtre TV pour afficher le panneau de réglages. Réglez l'option TV norm sur NTSC, Video source sur tuner puis Frequency table sur us-cable. Cliquez ensuite dans la fenêtre de la TV et appuyez sur la flèche Haut afin de syntoniser le prochain canal. Comme vous pouvez vous en rendre compte, le changement de canal est plutôt lent; vous devrez utiliser les signets pour compenser ou vous armer de patience. Dans le cas d'un récepteur/décodeur numérique, vous devrez régler la source sur composite ou svideo selon le raccordement effectué. Le changement de chaîne s'effectuera alors uniquement à l'aide du terminal et non de XawTV.

Si vous obtenez une image, vous pouvez alors régler son contraste, sa brillance ainsi que le volume sonore. Cliquez sur Chanel Editor, associez un nom au canal courant en remplissant le champ Station ID, puis cliquez sur Add. Le canal ainsi ajouté à vos favoris pourra être accédé par le menu surgissant lors d'un clic gauche sur la fenêtre de XawTV. Appuyez sur Save pour sauvegarder la liste et les réglages. Finalement, appuyez sur Close.

Si vous n'avez pu démarrer XawTV ou si aucune image n'apparaît après syntonisation d'un canal que vous savez accessible depuis votre antenne ou votre cablodistributeur, vous devrez installer les pilotes XFree86 du projet GATOS. Malheureusement, ces pilotes ne semblent plus actuels si bien qu'il se peut que l'utilisation de votre synthoniseur TV ATI soit vouée à l'échec.

Avant d'installer quoi que ce soit, sauvegardez les fichiers suivants sur votre disque, s'ils sont disponibles

Dans /usr/X11R6/lib/modules/drivers
  • r128_drv.o
  • radeon_drv.o
  • ati_drv.o
  • atimisc_drv.o
Dans /usr/X11R6/lib/modules/multimedia
  • bt829_drv.o
  • fi1236_drv.o
  • msp3430_drv.o
  • tda8425_drv.o
  • tda9850_drv.o
  • theatre_drv.o
  • tda9885_drv.o
  • saa7114_drv.o
Dans /lib/modules/`uname -r`/kernel/drivers/char/drm
  • mga.o
  • r128.o
  • radeon.o

Tous ces fichiers seront modifiés par la mise à jour qui pourrait, en prime, rendre votre système instable, alors il vaut mieux effectuer des sauvegardes! Sur le site du projet GATOS, vous devrez télécharger le module ATI.2 pour le pilote DRI et drm-kernel pour le module de noyau DRM. Il y a un pilote différent pour chaque version de XFree86 4 et un module DRM correspondant à chacune des versions de ATI.2. Choisissez le ATI.2/drm-kernel le plus récent, à moins que celui-ci ne fonctionne pas. Vous devrez également vous assurer que les sources de votre noyau sont installées sur votre machine.

Décompressez l'archive du module DRM, qui porte un nom similaire à drm-kernel-1.2.0-15.tar.gz. Tapez les commandes suivantes, en adaptant bien entendu le nom du fichier d'archive.

tar -zxvf drm-kernel-1.2.0-15.tar.gz
cd drm-kernel
make -f Makefile.linux

Si vous utilisez Mandrake 9, vous devrez compresser les différents modules avant de les installer. Pour ce faire, utilisez la commande gzip *.o. Passez en root, c'est là que cela commence à devenir dangereux... Copiez ensuite tous les fichiers .o ou .o.gz dans le répertoire /lib/modules/`uname -r`/kernel/drivers/char/drm. La mise à jour des modules de noyau est terminée! Vous pouvez à présent supprimer le répertoire drm-kernel qui n'est plus nécessaire.

Tapez maintenant les commandes suivantes, en adaptant le chemin et le nom du fichier d'archive ATI.2.

cd /usr
tar -zxvf ~/ATI-4.2.0-15.i386.tar.gz

Il vous faut à présent activer ces nouveaux réglages. Ce qui implique la modification du fichier de configuration de XFree86, qui se nomme soit /etc/X11/XF86Config-4 ou /etc/X11/XF86Config. Ce fichier se subdivise en sections dont chacune traite d'éléments distincts. Assurez-vous que, dans la section Device, le Driver r128 ou radeon, selon le cas, est utilisé pour la carte graphique.

Vous devez à présent réinitialiser le DRM et le serveur X afin que les nouveaux pilotes soient utilisés. Bien qu'un redémarrage complet fasse le travail, je n'aime pas les reboots et j'ai voulu faire mieux. Quittez votre session X si une telle session est ouverte puis accédez à une console avec CTRL-ALT-F1. Connectez-vous en root et tapez la commande /sbin/init 3, ce qui passe au niveau d'exécution 3 et désactive l'interface graphique. Déchargez alors le module DRM ancien par /sbin/rmmod r128 ou /sbin/rmmod radeon puis installez le nouveau avec /sbin/insmod r128 ou /sin/insmod radeon, selon votre carte graphique. Repassez ensuite au niveau d'exécution 5 avec /sbin/init 5, appuyez sur ALT-F7 si l'écran de branchement en mode graphique ne surgit pas puis reconnectez-vous. Testez la présence du DRI et le fonctionnement de la TV.

Dans le cas des cartes à puce Radeon200, comme la All-In-Wonder Radeon 8500DV, le pilote GATOS supporte la fonction TV mais non le DRI. Dans le cas des cartes à puce Radeon300, comme la All-In-Wonder 9700, la fonction TV n'est pas supportée du tout.

Un autre problème se présente avec XFree86 4.3 dans le cas des cartes All-In-Wonder 128 et All-In-Wonder 128 Pro. L'image TV s'affiche, mais elle est partielle et d'autres problèmes, telles que des barres indésirables, se manifestent. Pour solutionner ce problème, utilisez le pilote DRM GATOS pour XFree86 4.3 (Experimental 10 à l'heure de mes tests) et le ATI.2 pour XFree86 4.2 (Experimental 16 lors de mes tests). Bien que ces deux éléments ne sont pas de la même version, le couplage semble fonctionner correctement et le DRI fonctionne également.

La capture vidéo

L'extension XVideo permet certes d'afficher l'image provenant du câble TV, d'un décodeur/récepteur, d'un magnétoscope, d'un caméscope ou autre, mais enregistrer cette image ou une séquence de ces images sur disque constitue une toute autre histoire. Pour réaliser une capture, il vous faut un module Video4linux pour les cartes ATI et ce module n'est disponible qu'en version de développement. Pire encore, il n'est pas encore au point et ne fonctionne qu'avec une seule application, AVview, qui nécessite une librairie de compression nommée ffmpeg pour la capture vidéo et ALSA pour la capture audio. ALSA est installé par défaut sur certaines distributions de Linux telles que Mandrake 9 mais pas sur d'autres comme RedHat 9. Sans ALSA, la capture du son n'est pas possible avec AVview et donc, pour l'instant, avec une carte ATI! Il est possible d'enregistrer la bande sonore séparément, en utilisant un outil d'enregistrement comme yarec, mais des problèmes de synchronisation entre son et image apparaîtront à coup sûr!

Si vous utilisez KDE 2 ou supérieur et ALSA, assurez-vous d'inhiber le mode full-duplex dans le Centre de Configuration de KDE, section Son, sous-section Serveur de son, onglet Entrées/sorties sonores. Indiquez Advanced Linux Sound Architecture comme méthode d'entrées/sorties. Si vous n'effectuez pas ces réglages, aRts risque d'allouer le périphérique d'enregistrement qui, sur certaines cartes modernes comme la Sound Blaster Live!, ne peut être utilisé par plusieurs processus simultanément. Pour qu'il en soit ainsi, il faudrait que la carte son soit dotée de plusieurs processeurs ADC ou d'une puce ADC à canaux multiples.

Vient ensuite le moment de télécharger, sur le site du projet GATOS, le module km. Tapez ensuite les commandes suivantes.

tar -zxvf km-0.2.1.tgz
cd km
make

Passez en root et tapez

make install
cd ..
rm -rf km
/sbin/insmod videodev
/sbin/insmod km_api
/sbin/insmod km_drv

Si vous n'avez reçu aucun message d'erreur, le pilote se trouve en mémoire. Si le fichier /dev/video0 n'a pas été créé, créez-le avec les commandes suivantes.

mknod /dev/video0 c 81 0
chmod 666 /dev/video0

Afin de pouvoir réaliser la capture proprement dite, vous devez installer ffmpeg et AVview du projet GATOS. Utilisez la version 0.10.8 qui ne fait pas appel à Tcl/Tk 8.4, encore en stade de développement. Téléchargez également la version de ffmpeg correspondant à celle d'AVview, pas une plus récente. L'installation consiste encore une fois en une suite de commandes. Toutefois, assurez-vous que les packages de développement d'ALSA sont bien installés, car vous en aurez besoin. Par exemple, sous Mandrake 9, il vous faudra libalsa2-devel.

cd
tar -zxvf ffmpeg-snapshot-avview-0.10.8.tar.gz
cd ffmpeg
./configure
make
make install (en root)
cd ..
tar -zxvf avview-0.10.8.tar.gz
cd avview-0.10.8
./configure --with-ffmpeg=$HOME/ffmpeg
make
make install (en root)

Si toute l'installation s'est bien passée, vous pouvez alors supprimer les répertoires avview-0.10.8 et ffmpeg créés par tar. Tapez start_avview pour activer le logiciel AVview. Bien que ce logiciel soit pire au niveau interface graphique que XawTV en raison de ses menus qui ont tendance à se refermer trop vite, la syntonisation est nettement plus rapide et la capture fonctionne avec le pilote Video4linux ATI plutôt primitif pour le moment. Au premier démarrage, un panneau de configuration s'affiche.

Configuration de AVview

Utilisez cette fenêtre pour configurer les paramètres vidéo (élément Video device parameters). Indiquez d'utiliser l'encodage NTSC, et la diffusion us-cable. Sous la section User interface settings, cochez Display setup window on startup, Display capture(V4L) subsection et Display mixer(ALSA) subsection. Dans la section Compression parameters, ajustez les paramètres de qualité vidéo et audio. Dans le champ File format, spécifiez MPEG.

Fermez la fenêtre de configuration; les réglages seront sauvegardés aussitôt. Si le panneau de contrôle ne s'est pas affiché, cliquez droit dans la fenêtre de TV et sélectionnez Show control window du sous-menu User interface dans le menu qui surgit lors d'un clic droit. Vous devrez maintenir le bouton de la souris enfoncé tout au long de la sélection.

Cliquez droit sur la fenêtre de TV, pointez sur le menu Channel et pointez sur une chaîne. AVview syntonisera alors la chaîne sélectionnée, mais il se peut que vous n'ayiez pas de son. Utilisez alors le AV Control pour augmenter le volume dans la section Attributes. Vous pouvez également configurer les autres attributs d'ajustement de l'affichage TV. Sauvegardez les réglages en cliquant sur perform now à côté de Set defaults.

AV Control

Le panneau de contrôle permet d'effectuer la capture proprement dite. Si ALSA, Video4linux et le pilote km sont bien en place, les trois panneaux devraient apparaître comme sur la figure précédente. Cliquez sur le bouton à droite de ALSA Audio device et sélectionnez votre carte son. La table de mixage apparaît alors. Localisez un réglage ayant trait à la source de capture et affectez-lui la source sur laquelle votre carte ATI émet des signaux audio. Cette source dépend du branchement de votre carte graphique à votre carte son. Si vous devez brancher le câble de sortie fourni avec la carte dans l'entrée line-in de votre carte son, la source sera Line. Si la connexion est interne, la source sera CD, Aux ou peut-être autre! Elle peut être déterminé par élimination si nécessaire. Pour ce faire, rendez une source muette en cliquant sur la case à cocher correspondante das le mixer. Si le son de la télévision cesse et que vous n'avez pas rendu Master muette, vous avez localisé votre source de capture sonore!

Passons à présent à la section V4L. Sous V4L device, sélectionnez /dev/video0. Sous Recording mode, indiquez deinterlace-bob. À droite de Save to file, cliquez sur Change et indiquez un nom de fichier qui sera créé; attribuez-lui l'extension .mpg. Laissez les autres réglages tels quels.

Cliquez sur Snapshot afin de tester si la capture d'image fixe fonctionne. Si tel est le cas, cliquez sur Record! Les indicateurs Audio levels et Luminosity histogram devraient afficher quelque chose lors de l'enregistrement. Lorsque vous avez fini la capture, cliquez de nouveau sur Record puis utilisez un lecteur MPEG (Xine par exemple) pour tester le fichier MPEG résultant.

Quant à la fonction magnétoscope programmable, oubliez-la pour le moment; elle n'est pas implantée! Comme vous pourrez le constater, si tout va bien, l'image capturée sera d'une bonne qualité, en fonction bien entendu du signal fourni en entrée. Si tout a fonctionné, vous pouvez inclure le chargement des modules Video4linux dans vos scripts d'initialisation. Visitez régulièrement le site du projet GATOS, car la situation pourrait évoluer pour ce qui est de la capture vidéo.

Radeon200 et Radeon300

Avec XFree86 4.3, la 3D est bien supportée avec les cartes à puce Radeon200. Il suffit d'activer le mode DRI pour pouvoir en bénéficier.

Avec XFree86 4.2 ou 4.1, ou avec une carte à puce Radeon300, une autre solution doit être employée. À partir de la Radeon 8500, ATI semble avoir modifié les API 3D, ce qui cause des problèmes avec les pilotes DRI inclus avec XFree86 4.2.1. Les fonction TV et la capture se trouvent elles aussi affectées. Heureusement, ATI fournit un support partiel pour ces cartes, ce qui se limite malheureusement strictement au DRI. Vous devrez télécharger le pilote sur le site d'ATI qui se présente comme un fichier RPM portant un nom semblable à fglrx-glc22-4.2.0-2.5.1.i586.rpm. Toutefois, ce package ne fonctionne pas bien avec les distributions récentes de RedHat 7.3 et Mandrake 9!

Avant d'effectuer l'installation, n'oubliez pas de sauvegarder le fichier /etc/X11/XF86Config-4. En cas de problème de démarrage de X après l'installation, restaurez ce fichier et cela pourrait vous épargner la réinstallation de votre distribution Linux!

Normalement, pour installer le pilote, en root, vous taperiez rpm -Uvh fglrx-glc22-4.2.0-2.5.1.i586.rpm et tout se passerait bien. Dans certains cas, il n'en sera rien. Avec RedHat 8.0, par exemple, vous obtiendrez un conflit avec libGL (voir les Release notes du pilote). Avec Mandrake 9, on vous demandera d'installer Qt 2! Pour lever les conflits de fichiers, utilisez rpm -Uvh --force fglrx-glc22-4.2.0-2.5.1.i586.rpm. Si RPM vous indique que d'autres packages sont nécessaires pour installer le RPM d'ATI, installez-les. Dans le cas de Qt 2, il existe une meilleure solution. Si Qt2 est le seul package manquant, ajoutez l'option --nodeps après l'option --force.

Prenez bien connaissance des messages affichés par la commande RPM, car le script de post-installation contenu dans le RPM d'ATI vous indiquera les étapes à suivre pour bien terminer l'installation. Comme l'indiquent les Release Notes du pilote, démarrez fglrxconfig aprè l'installation afin de configurer le pilote. Avec un peu de chance, un des modules de noyau intégrés avec le pilote fonctionnera avec votre noyau. Dans le cas contraire, vous devrez en construire un nouveau. Référez-vous pour cela aux Release Notes du pilote ATI.

Lorsque tout est terminé, redémarrez X. Utilisez fglrxinfo afin de savoir si votre carte est bien gérée. Si vous utilisez KDE, dans le menu K, un nouvel élément comportant l'icône ATI sera installé. Ce ATI Control permet d'effectuer des réglages divers. Toutefois, si vous utilisez KDE 3 qui fait appel à Qt 3, vous ne pourrez accéder au panneau de configuration! Outre compiler et installer Qt 2 en plus de Qt 3, ce qui constitue une perte de temps et d'espace disque, vous pouvez recompiler le panneau.

Assurez-vous tout d'abord que les packages de développement de Qt 3 (par exemple libqt3-devel sous Mandrake 9) et de libMesaGLU (libMesaGLU1-devel sous Mandrake 9) sont bien installés avant d'entreprendre la compilation. Tapez les commandes suivantes, possiblement en tant qu'usager normal.

mkdir ~/panel
cd ~/panel
tar -zxvf /usr/src/fglrx_panel_sources.tar.gz
export QTDIR=/usr/lib/qt3
export PATH=$QTDIR/bin:$PATH

Les deux dernières lignes ne sont pas nécessairement obligatoires pour toutes les distributions et peuvent varier. Elles fonctionnent sous Mandrake 9, mais il n'en est peut-être rien pour les autres distributions. Sous RedHat 9, il faudra utiliser /usr/lib/qt-3.1. La variable QTDIR indique au Makefile que nous allons appeler sous peu où trouver la librairie Qt 3. Quant à la variable PATH, nous lui ajoutons le répertoire bin de Qt afin que moc puisse être appelé depuis le shell.

Avec Qt 3, le nom de la librairie principale semble avoir changé, ce qui implique que le Makefile du panneau de contrôle est incorrect et l'édition de liens échouera. Pour corriger cela, ouvrez le Makefile avec votre éditeur de texte préféré et remplacez toutes les occurrences de -lqt par -lqt-mt. Enfin, tapez make! Avec toutes ces corrections, la compilation devrait réussir et un exécutable verra le jour sous les coups du forgeron! Passez en root et copiez-le à un endroit accessible à tous avec une commande du genre cp fireglcontrol /usr/X11R6/bin.

Cette technique devrait fonctionner dans le cas de la Radeon300. Dans le cas de telles cartes, elle est presque obligatoire, car XFree86 ne semble pas disposer en standard de pilotes capables de la faire fonctionner. Si vous souhaitez malgré tout utiliser une ATI à puce Radeon300 sans les pilotes ATI, par exemple si ces pilotes ne fonctionnent pas sur votre distribution, il existe une astuce permettant d'y arriver. Dans le fichier de configuration de XFree86, section Device, indiquez vesa comme Driver au lieu de r128 ou radeon. L'interface graphique fonctionnera alors normalement, mais vous ne pourrez pas profiter des accélérations 2D ou 3D offertes par la carte graphique. En général, cette solution n'est pas très intéressante et relèguera Linux, sur votre machine, à un système d'exploitation secondaire; seul Windows pourra utiliser pleinement votre carte graphique.

Le cas de RedHat Linux 9

De nouveaux problèmes surgissent avec RedHat Linux 9. Tout d'abord, cette version inclut XFree86 4.3 avec laquelle le module ATI.2 ne fonctionne pas bien en ce qui a trait à la télévision. De plus, RedHat a ajouté au kernel 2.4.20 des améliorations issues du 2.5, ce qui cause un gênant problème de compatibilité lors de la compilation de modules tiers. En modifiant le pilote DRM du projet Gatos, je suis certes parvenu à le compiler sous le kernel 2.4.20-9 de RedHat, mais la fonction TV ne produisait pas un effet correct et km demeure tout bonnement impossible à compiler. Il existe par contre deux moyens de faire fonctionner le synthoniseur TV. L'approche classique est la plus fiable et la plus longue.

  1. Télécharger le kernel 2.4.20 original de The Linux Kernel Archives et le recompiler. Ce qui supprime les problèmes de compatibilité avec DRM et km.
  2. Lorsque le noyau est installé, télécharger ALSA et l'installer.
  3. Télécharger XFree86 4.2 depuis The XFree86 Project, Inc..
  4. Sur une console texte en mode root, taper init 3 pour désactiver X puis utiliser rpm -e --nodeps `rpm -qa | grep ^XFree86` pour supprimer XFree86 4.3.
  5. Installer et configurer XFree86 4.2 et finalement ATI.2!

Il existe une autre technique moins fiable mais moins fastidieuse à employer. Les manipulations à effectuer ayant été déterminées empiriquement, elles ne sont pas toujours logiques et pourraient entraîner une diminution de stabilité du système. Malheureusement, c'est le prix à payer pour ce genre de fonctionnalités sous Linux.

  1. Télécharger les pilotes GATOS DRM et ATI.2 pour XFree86 4.3. J'ai obtenu mon premier succès avec la version Experimental 10. Dans le cas du DRM, le fichier drmP.h devra être modifié, remplaçant la partie
    #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
    #define DRM_RPR_ARG(vma)
    #else
    #define DRM_RPR_ARG(vma) vma,
    #endif
    

    par

    #define DRM_RPR_ARG(vma) vma,
    

    Le module se comportera approximativement comme s'il tournait toujours sous le kernel 2.5. Ensuite, DRM peut être compilé normalement.

  2. Installer DRM et ATI.2 comme avec une version précédente de Linux.
  3. Tester la télévision. Il se peut que cela fonctionne parfaitement! Toutefois, avec les cartes ATI All-In-Wonder 128 et All-In-Wonder 128 Pro, des problèmes apparaissent et peuvent mystérieusement être résolus en utilisant le pilote ATI.2 XFree86 4.2, Experimental 16! Le module DRM correspondant ne fonctionne pas avec le nouveau noyau, mais le DRM pour XFree86 4.3 correspondant à la version Experimental 10 de ATI.2 fonctionne parfaitement. Aucun sacrifice n'est à prévoir pour DRI.

Toutefois, km ne peut actuellement être compilé sous le kernel de RedHat Linux 9; la capture vidéo ne fonctionnera pas, à moins d'appliquer la première méthode.

Le cas du kernel 2.6

Certaines distributions comme Mandrake incluent le pilote GATOS pour ATI, mais dans le cas de Mandrake 10, ce pilote n'est pas inclus. Cette lacune semble dûe au fait que le kernel 2.6, installé avec Mandrake 10, est encore trop récent. Le kernel 2.6 cause de nouveaux problèmes pour le support du synthoniseur TV ATI. À l'heure actuelle, GATOS ne produit toujours pas de modules DRM pour ce kernel, ce qui implique que le synthoniseur TV ne peut pas fonctionner. Il existe deux solutions que je n'ai jamais essayées, car elles impliquent trop de sacrifice pour l'usage que je peux faire du synthoniseur TV sous Linux. Sans capture vidéo, un tel périphérique n'est pas d'une très grande utilité. Sous Linux, le synthoniseur ATI permet à peine de convertir son ordinateur en poste de télévision. La première solution consiste à installer le module ATI.2 sans mettre le module DRM à jour. La 3D pourrait fonctionner, mais le système risque d'être instable, surtout avec les cartes Radeon mais probablement aussi avec les Rage 128. Pour supprimer cette instabilité, il faudrait décharger le module DRM en inhibant le DRI sous X, ce qui supprime la 3D complètement. Une autre solution consiste à retourner au kernel 2.4, mais je n'ai pas voulu l'employer puisque je justifiais mon passage à Mandrake 10 par le kernel 2.6!

Conclusion

Tous ces problèmes passés, présents et futurs me font regretter d'avoir opté pour une carte de marque ATI. Bien que ces cartes soient d'excellents combos TV/3D, elles fonctionnent parfaitement uniquement sous certaines versions de Windows. Encore sous Windows XP, j'ai éprouvé des difficultés avec la fonction TV-On-Demand de ma All-In-Wonder 128 Pro. Si vous prévoyez acheter une carte graphique pour usage intensif sous Linux, ATI n'est peut-être pas le meilleur choix, quoique l'accélération 3D est désormais bien supportée pour les Rage128, Radeon et Radeon200. Malheureusement, il semble que l'achat d'une carte de seconde main soit la meilleure option, car les nouvelles cartes risquent de ne pas fonctionenr sous X. Avec certaines cartes, il se peut que même l'accélération 2D ne fonctionne pas! Il faut alors attendre des mois avant de ne serait-ce que pouvoir utiliser l'environnement graphique efficacement. En raison du mauvais support du synthoniseur TV, les All-In-Wonder ne sont pas adéquates pour la capture vidéo sous Linux. Les cartes graphiques NVIDIA GeForce bénéficient d'un meilleur support en ce qui a trait aux pilotes. Quant au synthoniseur TV, il en existe sous forme de cartes PCI, tels que ceux de Hauppage s'appuyant sur la puce BTTV qui est bien supportée par Video4Linux. Mais malheureusement, tout cela peut changer d'une carte à l'autre et il semble bien que le support du matériel soit voué à un éternel recommencement.