Le HOWTO d'XFree86 sous Linux

Eric S. Raymond
adaptation française : Pierre Vassellerie (Pierre.Vassellerie@obspm.fr)

v5.2f1, 12 Novembre 1997
Ce document va vous permettre d'obtenir, installer, et configurer pas à pas la version 3.3 de XFree86 - le portage pour Linux du système X Window (X11R6) - sur votre système Linux.

1. Introduction

1.1 X-Window

Le système X Window est un environnement graphique très imposant et très puissant (certains diront trop imposant et bien trop complexe) pour les systèmes Unix. Le système X Window original a été développé par le MIT; depuis les distributeurs ont fait de X un standard de fait dans le marché des plates-formes UNIX. Ainsi, partout dans le monde, presque chaque station de travail fonctionnant sous un système UNIX utilise une variante de l'environnement graphique X Window.

Une adaptation du système X Window version 11 release 6 du MIT (X11R6), pour les systèmes UNIX sur machine 80386/80486/Pentium, a été développée par une équipe de programmeurs conduite à l'origine par David Wexelblat <dwex@XFree86.org>. Ce programme, connut sous le nom de XFree86, est disponible pour les systèmes System V/386, 386BSD, et autres implémentations d'UNIX pour x86, incluant Linux. Il contient l'ensemble des sources et binaires nécessaires à son bon fonctionnement, ainsi que l'ensemble des manuels en lignes et des utilitaires de base.

Une information plus complète sur XFree86 est disponible sur le site Web de XFree86 : http://www.XFree86.org.

Ce document va vous permettre d'installer et configurer simplement XFree86 sur votre système Linux, mais vous devrez consulter la documentation livrée avec XFree86 (fichiers textes, pages de manuels, etc...), dont vous trouverez les références ici, afin de pouvoir préciser par vous même certains détails de cette configuration. Par contre, utiliser et mettre à votre goût le système X Window va bien au-delà de l'objectif de ce document. À cette fin, vous devriez acquérir ou consultez l'un des nombreux ouvrages sur le système X Window.

1.2 Autres sources d'information

Si vous n'avez encore jamais entendu parler de Linux jusqu'ici, sachez qu'il existe de nombreuses sources d'information sur ce système. Le meilleur endroit est la page Web du Projet de Documentation pour Linux http://sunsite.unc.edu/LDP. Vous trouverez la dernière version de ce document (en version anglaise) à l'adresse http://sunsite.unc.edu/LDP/HOWTO/XFree86-HOWTO.html. Mais sur le serveur Freenix http://www.freenix.fr, vous pourrez aussi consulter sa traduction.

1.3 Nouvelles versions du présent document

Les nouvelles versions du XFree86 HOWTO pour Linux sont postées régulièrements sur news:fr.comp.os.linux.annonces. Elles sont aussi diffusées sur plusieurs sites Web et FTP, dont http://www.freenix.fr/XFree86-HOWTO.html.

1.4 Commentaires et critiques

Si vous avez des questions ou des remarques à propos de ce document (et non pas des questions sur XFree86), n'hésitez pas à expédier un message à Pierre Vassellerie. Vos commentaires, critiques et suggestions sont les bienvenus. Si certaines sections de ce document vous semblent incomplètes, obsolètes ou mal conçues faites m'en part afin que je puisse effectuer des corrections pour dans les futures versions.

S'il vous plait, ne m'envoyez pas de questions à propos de votre carte vidéo ou de votre moniteur. Cet HOWTO a pour but d'être un guide rapide et facile à lire pour une installation normale de XFree86 à l'aide du nouvel outil de configuration. Si vous avez des problèmes lors de votre configuration, consultez le XFree86 Video Timings HOWTO, http://sunsite.unc.edu/LDP/HOWTO/XFree86-Video-Timings-HOWTO.html. Ce document (en anglais) explique tout ce qu'il faut savoir pour résoudre ces problèmes.

2. Matériels compatibles

La compatibilité d'XFree86 avec une carte donnée dépend en règle générale de l'ensemble des circuits ("chipset") utilisés par cette dernière. La documentation de votre carte spécifie généralement la liste des circuits utilisés. Si vous êtes sur le point d'acquérir une nouvelle carte vidéo ou d'acheter un nouvel ordinateur, insistez auprès du vendeur pour savoir quel est le fabricant, le modèle et le circuit de la carte vidéo. Si vous avez déjà acquis votre carte vidéo et qu'une de ces informations vous manque, n'hésitez pas à contacter votre revendeur, en général il sera très heureux de pouvoir vous renseigner, et sinon appelez un autre revendeur. Si votre revendeur vous raconte que la carte est "une carte SVGA standard" et "qu'elle devrait fonctionner" sur votre système, expliquez lui que votre système ne supporte pas tous les types de circuits vidéo. N'hésitez pas à mentionner Linux et XFree86 car il y a de plus en plus de revendeurs qui connaissent ces logiciels (il se peut que le votre ait même approfondi la question), et faites lui comprendre que ces "détails" sont pour vous primordiaux.

Vous pouvez aussi déterminer quel est le type de cicuit vidéo utilisé par votre carte à l'aide du programme SuperProbe inclus dans la distribution de XFree86.

La version 3.3 de XFree86 (Juillet 1997) est compatible avec les circuits vidéo suivants :

Les cartes vidéo utilisant ces circuits sont supportées sur tous les types de bus, y compris VLB et PCI.

Tous les circuits cités ci-dessus sont exploités en mode 256 couleurs par le serveur XF86_SVGA et en monochrome par XF86_Mono. Seuls les circuits de Avance Logic, MX et Video 7 sont uniquement exploitables en mode 256 couleurs. Par ailleurs, si votre carte possède suffisament de mémoire, plusieurs des circuits ci-dessus vous permettrons d'utiliser des modes en 16 ou 32 bits par pixel (et plus spécifiquement les cartes Mach32, P9000, S3 et Cirrus). La configuration par défaut étant géneralement de 8 bits par pixel (c'est à dire 256 couleurs).

Le serveur monochrome fonctionne sur toute carte VGA ainsi que les cartes monochrome Hercules, Hyundai HGC-1280, Sigma LaserView et Apollo. Sur la carte Compaq AVGA, seuls 64ko de mémoire vidéo sont utilisés par le serveur monochrome, et la carte Compaq GVGA n'a pas encore été testée avec plus de 64k.

Cette liste de matériels va sans doute s'accroître au fur et à mesure que le temps passe, et chaque nouvelle mise à jour de ce document contiendra la liste complète des circuits vidéo supportés par XFree86. En attendant la prochaine version de ce document, vous pouvez trouvez sur le site de XFree86 http://www.XFree86.org la liste des circuits supportés ainsi que certaines mises à jour.

L'un des problèmes rencontrés par les développeurs de XFree86 est que certains fabricants de cartes vidéo utilisent des mécanismes non standards dans la détermination des fréquences d'horloges nécessaires pour faire fonctionner la carte. Certains de ces fabricants ne fournissent même pas de documents décrivant les spécifications utiles à la programmation de la carte ou alors les subordonnent à l'acquisition de licences limitant la diffusion de ces informations. Ceci impliquerait alors une restriction à la libre diffusion du logiciel XFree86, ce que les développeurs du projet XFree86 ne peuvent tolerer. Ceci a longtemps été le problème avec les cartes fabriquées par Diamond, mais à l'annonce de la version 3.1 de XFree86, Diamond a commencé à collaborer avec l'équipe de développement à la réalisation de pilotes gratuits pour ces cartes. Ceci prouve que l'avis officiel du XFree Project publié dans les précédentes versions de ce document a eu un impact sur le fabricant Diamond.

La configuration machine minimale suggérée est un 486 ayant au mois 8Mo de mémoire vive, et une carte video basée sur un des circuits présents dans la liste ci-dessus. Pour de meilleures performances nous vous conseillons d'avoir une carte ayant un circuit rapide comme le S3. Avant de vous lancer tête baissée dans l'achat d'une telle carte (relativement chère), vérifiez tout de même si votre carte actuelle n'est pas supportée.

De plus n'hésitez pas à tenir compte des benchmarks comparatifs des différentes cartes vidéo qui sont régulièrement postés sur les groupes de news USENET comp.windows.x.i386unix, comp.os.linux.x, comp.benchmarks, comp.sys.ibm.pc.hardware.video par Farrel McKay. Ils sont aussi disponibles sur le Web à l'adresse http://www.goof.com/xbench.

Votre machine nécessite un minimum de 4Mo de RAM physique et de 16Mo de RAM virtuelle totale (par exemple 8Mo de RAM physique et 8Mo de swap disque). Souvenez-vous que plus vous aurez de RAM physique, moins votre système swapera sur disque quand la mémoire disponible diminuera. Les disques ayant des temps d'accès et des taux de transferts plus lents que la RAM, les performances de votre système chuteront très rapidement si la mémoire venait à manquer. C'est pourquoi il est recommandé d'avoir au moins 8Mo de RAM physique afin de pouvoir faire tourner XFree86 confortablement. Un système avec seulement 4Mo de RAM sera à peu près 10 fois plus lent qu'un système ayant 8Mo de RAM ou plus (il se peut meme que certains serveurs X ne puissent fonctionner avec si peu de memoire).

3. Installation de XFree86

Soit vous possédez une distribution complète de Linux (sur CD ou disquettes) et donc une distribution complète et compilée de XFree86 y est comprise. Dans ce cas, passez directement à la fin de ce chapitre. Soit vous devez récupérer l'ensemble de la distribution par FTP et dans ce cas ce chapitre vous concerne.

Les distributions binaires (programmes prêts à l'emploi) des versions d'XFree86 destinées à Linux se trouvent sur les sites de ftp anonyme suivants :

Avant de faire quoi que ce soit, lancer le script preinst.sh. Celui-ci vous dira ce dont vous avez besoin avant de continuer votre installation.

L'un des serveurs suivant est nécessaire :

X338514.tgz

Serveur pour carte basée sur 8514.

X33AGX.tgz

Serveur pour carte basée sur AGX.

X33I128.tgz

Serveur pour carte basée sur Number Nine Imagine 128.

X33Mach32.tgz

Serveur pour carte basée sur Mach-32 .

X33Mach64.tgz

Serveur pour carte basée sur Mach-64.

X33Mach8.tgz

Serveur pour carte basée sur Mach-8.

X33Mono.tgz

Serveur pour modes monochromes.

X33P9K.tgz

Serveur pour carte basée sur P9000.

X33S3.tgz

Serveur pour carte basée sur S3.

X33S3V.tgz

Serveur pour carte basée sur S3 ViRGE et ViRGE/VX (considere comme beta).

X33SVGA.tgz

Serveur pour carte SVGA.

X33W32.tgz

Serveur pour carte basée sur ET4000/W32.

Si vous ne savez lequel choisir, prennez le serveur SVGA16 (celui-ci est nécessaire au fonctionnement de l'outil d'auto-configuration que nous verrons après).

Tous les fichiers suivants sont indispensables :

preinst.sh

Script de pré-installation.

postinst.sh

Script de post-installation.

X33bin.tgz

Le reste des binaires.

X33cfg.tgz

Fichiers de configuration de xdm, xinit and fs.

X33doc.tgz

Documentations.

X33man.tgz

Manuels.

X33fnts.tgz

Les fontes de base 75dpi, misc et PEX.

X33lib.tgz

Les librairies partagées et les utilitaires qui vont avec.

X33set.tgz

L'utilitaire XF86Setup

X33VG16.tgz

Serveur pour les cartes VGA/EGA

Les fichiers suivants sont optionnels :

X33f100.tgz

Les fontes en 100 dpi.

X33fcyr.tgz

Les fontes cyrilliques

X33fnon.tgz

Autres fontes (Chinois, Japonais, Coreen, Hebreu)

X33fscl.tgz

Les fontes redimensionnables (Speedo, Type1).

X33fsrv.tgz

Serveur de fontes et fichiers de configuration.

X33prog.tgz

Les fichiers d'en-tête, les fichiers de configuration et certaines librairies.

X33lkit.tgz

Le serveur X LinkKit.

X33lk98.tgz

Le serveur X PC98 LinkKit.

X33nest.tgz

Le serveur X Nested.

X33prt.tgz

Le serveur X print.

X33vfb.tgz

Le serveur X Virtual framebuffer.

X33ps.tgz

La version PostScript de la documentation.

X33html.tgz

La version HTML de la documentation.

Le répertoire où se situe la distribution de XFree86 contient généralement un ou plusieurs fichiers RELNOTES et des notes d'installation concernant la dernière version. Lisez-les lorsque vous avez besoin de details.

Les seules choses à faire pour installer XFree86 sont d'obtenir les fichiers ci-dessus, de créer le répertoire /usr/X11R6 (en étant root), et de décompresser-détarer les fichiers sous /usr/X11R6 avec une commande du style :

        gzip -dc X33bin.tgz | tar xfB -
   ou
        tar zxvf X33bin.tgz si vous possedez le tar GNU 

ATTENTION: ces fichiers sont compressés relativement au répertoire /usr/X11R6 et doivent donc être décompressés sous celui-ci.

Vérifiez que le répertoire /usr/X11R6/bin est bien dans votre chemin d'accès aux binaires (variable d'environnement PATH). Pour cela éditez le fichier de profil par défaut /etc/profile (si vous utilisez bash, ksh, sh ou un autre shell du type Korn) ou /etc/csh.login (si vous utilisez csh, tcsh ou un autre shell du type C), ou bien votre fichier de profil personnel /etc/.bashrc ou /etc/.cshrc.

Vous devez aussi vérifier que /usr/X11R6/lib peut être localisé par ld.so, l'éditeur de lien dynamique. Pour cela ajoutez la ligne :

       /usr/X11R6/lib
à votre fichier /etc/ld.so.conf et lancez /sbin/ldconfig en passant root.

4. Configuration de XFree86

4.1 Configuration normale

Configurer XFree86 afin de pouvoir utiliser correctement votre souris, clavier, moniteur et carte vidéo tenait, il y a encore peu d'un art obscure, nécessitant de taper un fichier de configuration complexe. Depuis les versions 3.2 et 3.3 vous rendent les choses extrèmement simples. Vous n'avez plus qu'à lancer le programme XF86Setup.

Ce programme s'appuie sur le fait que tout nouveau matériel vidéo pour PC peut exploiter les modes EGA/VGA des moniteurs. Il lance le serveur de base SVGA16 afin d'obtenir le mode de plus-petit-dénominateur-commun : 640x480. Ensuite il exécute un programme interactif afin de vous permettre de saisir l'ensemble des paramètres relatifs à votre souris, écran, clavier, carte vidéo et ceux spécifiques à votre serveur. L'ensemble du processus est ainsi réalisé sans aucune difficulté.

Une des remarques à garder à l'esprit, est le fait que les nouveaux claviers sont ce que le programme XF86Setup appelle Generic 102-key PC (intl) plutôt que Generic 101-key PC. Si vous saisissez le mauvais paramètre (101) la partie droite de votre clavier (pavé numérique et touches associées) arrêtera de fonctionner.

Si vous n'êtes pas certain de votre type de moniteur, vous pouvez les essayer les uns après les autres dans leur ordre de succession. Parcourez de haut en bas (les choix situés le plus haut sont ceux qui réclament les fréquences les plus faibles à votre carte vidéo et donc ceux qui demandent moins à votre matériel, et ont donc moins de risque de l'endommager). Si de légères distortions (image un peu trop large ou trop étroite, ou mal centrée) apparaissent, ce n'est pas un problème; vous aurez ensuite la possibilité d'affiner les réglages de votre configuration.

Puis, quand le programme lancera xvidtune pour vous permettre d'affiner votre mode vidéo, ne vous laissez pas déstabiliser par le message d'erreur. Les moniteurs à multi-fréquences sont bien plus difficiles à endommager que leurs ancêtres à fréquence fixe.

4.2 Ça ne marche toujours pas !

Souvent, il arrive que ça ne fonctionne pas correctement au premier démarrage du serveur X. Dans la plupart des cas, ceci est dû à une erreur dans le fichier de configuration XF86Config. Généralement les fréquences pour le moniteur sont inadéquates, ou les horlages pour la carte vidéo sont incorrectes. Les problèmes mineurs peuvent êtres corrigés à l'aide de xvidtune; un écran totalement déformé nécessite généralement un retour sous XF86Setup afin de choisir un moniteur de moindre performances.

Si votre écran a des effets de roulement ou de flou, c'est que vos fréquences pour moniteur sont inadaptées. Soyez aussi certain que vous avez spécifié le bon circuit de carte vidéo, ainsi que les autres options de la partie Device du fichier XF86Config. Soyez absolument certains que vous utilisez le bon serveur X et que le lien symbolique /usr/X11R6/bin/X pointe bien vers ce serveur.

Si, malgré tout, votre serveur s'obstine à ne pas fonctionner correctement, utilisez la commande :

       X > /tmp/x.out 2>&1
Tuez alors le serveur X à l'aide de la combinaison de touches ctrl-alt-backspace, et examinez le contenu du fichier /tmp/x.out. Le serveur X y aura mis tout les messages d'erreurs et d'avertissement, comme par exemple le fait que l'horloge que vous avez spécifiée n'est pas générable par votre carte.

Souvenez vous que vous pouvez utiliser les combinaisons ctrl-alt-numeric + et ctrl-alt-numeric - pour changer à la volée la résolution de votre serveur en fonction de ce que vous aurez entré dans la ligne Modes de la section Screen. Si le mode ayant la plus haute résolution ne semble pas marcher, tentez de passer à une résolution inférieure.

Vous pouvez aussi jouer sur les boutons de réglage horizontaux et verticaux de votre moniteur (si ceux-ci existent !). Ceci est souvent nécessaire au démarrage du serveur X. Ainsi, si votre écran semble décalé légèrement sur la droite, vous pouvez effectuer ce réglage manuellement.

Le groupe le news USENET comp.windows.x.i386unix est entièrement dédié aux discussions concernant XFree86, ainsi que le groupe comp.os.linux.x. Il peut être intéressant de regarder quelques messages relatifs à votre carte vidéo et à sa configuration car vous êtes rarement le premier à avoir un problème.

4.3 Amélioration de la configuration

Vous devrez modifier "à la main" votre configuration X afin d'obtenir des performances optimales si votre moniteur peut fonctionner en mode 1600x1200 (le mode le plus élevé que XF86Setup puisse configurer est 1280x1024).

Si vous désirez effectuer ces modifications, consultez le XFree86 Video Timings HOWTO http://sunsite.unc.edu/LDP/HOWTO/video-modes.html.

4.4 Utiliser 65536 couleurs (en 16 bits donc)

Par défault, X utilise seulement un codage des couleurs sur 8 bits, ce qui permet donc d'avoir au plus 256 couleurs. Afin de contourner cette limitation, de nombreuses applications alloue leur propre table de couleurs, ce qui a pour effet de changer brutalement les couleurs quand votre curseur de souris passe d'une application à une autre. Par exemple, le browser Web Arena alloue sa propre table de couleurs.

Si vous désirez utilisez des applications graphiques complexes, 256 couleurs ne seront sûrement pas suffisantes. Vous devez alors utiliser un codage des couleurs sur au moins 16 bits, ce qui vous permettra d'utiliser 65536 couleurs. Ceci est possible en lançant X par :


    startx -- -bpp 16

ou en mettant
    exec X :0 -bpp 16

dans votre fichier .xserverrc. mais attention toutes les applications ne fonctionnent pas avec des couleurs codées sur 16 bits.

Augmenter le nombre de couleurs a pour effet de demander à la carte vidéo de transférer plus de données dans un même laps de temps. Si votre carte vidéo n'y arrive pas, diminuez la résolution ou le taux de rafraîchissement. Par défaut XFree86 réduit la résolution. Si vous désirez conserver votre résolution et diminuer le taux de rafraîchissement, vous devez insérer une nouvelle ligne Modeline dans le fichier XF86Config définissant la résolution avec un taux de rafraîchissement plus faible. Par exemple remplacez la ligne

Modeline "1024x768"  75  1024 1048 1184 1328 768 771 777 806 -hsync -vsync
par
Modeline "1024x768"  65  1024 1032 1176 1344 768 771 777 806 -hsync -vsync.
Le nombres magiques 75 et 65 sont respectivement les fréquences d'horloges que vous trouvez écrit dans le fichier .X.err par X. Consultez le fichier monitors dans la documentation de XFree86, afin de trouver les Modelines correspondant à une fréquence maximale pour que votre carte vidéo puissent générer des couleurs sur 16 bits.

5. Lancement de XFree86

Si votre fichier XF86Config est correct, vous êtes donc paré à lancer le serveur X et à y jetter un oeil. Premièrement, vérifiez encore que /usr/X11R6/bin est bien dans votre variable PATH.

La commande pour lancer XFree86 est :

startx

Celle-ci est un script lançant xinit avec certains paramètres (ceci au cas où vous seriez habituer à lancer xinit sur d'autres systèmes UNIX).

Cette commande va démarrer le serveur X puis exécuter les commandes se trouvant dans le fichier .xinitrc dans votre répertoire d'acceuil. .xinitrc est juste un script contenant les clients X à lancer après le démarrage du serveur X. Si ce fichier n'existe pas, le fichier par défaut /usr/X11R6/lib/X11/xinit/xinitrc sera utilisé.

Un fichier standard .xinitrc ressemble à :

#!/bin/sh

xterm -fn 7x13bold -geometry 80x32+10+50 &
xterm -fn 9x15bold -geometry 80x34+30-10 &
oclock -geometry 70x70-7+7 &
xsetroot -solid midnightblue &

exec twm

Ce script va lancer deux clients xterm, un oclock, et mettre comme couleur de fond du midnightblue. Il va alors lancer twm, le gestionnaire de fenêtres. Remarquez que twm est lancé par une commande shell exec; ceci a pour effet de remplacer le processus xinit par le processus twm. Une fois que vous quitterez twm le serveur X s'arrêtera de lui-même. Pour quitter twm, utilisez le menu du bouton 1 lorsque vous êtes sur le bureau. Vous aurez alors la possibilité de choisir Exit twm.

Soyez certain que la dernière commande du fichier .xinitrc commence par exec et qu'elle n'est pas mise en tâche de fond (pas de et-commercial en fin de ligne). Sinon le serveur X s'arrrêterait immédiatement après la fin de l'exécution du script .xinitrc.

Vous pouvez aussi utiliser la combinaison de touche ctrl-alt-backspace pour "tuer" le serveur X et quitter le système de fenêtrage.

La configuration ci-dessus est très, très simple. De nombreux programmes et configurations peuvent être lancées dans le fichier .xinitrc, comme par exemple, le gestionnaire de fenêtres fvwm qui permet d'avoir un "bureau" virtuel de grande taille, de choisir les couleurs, fontes, tailles et positions des fenêtres, et tout ce que vous pouvez désirer secrètement (si, si, même cela).

Si vous êtes novice avec l'environnement X Window, nous vous recommandons chaudement de consulter un livre comme The X Window System: A User's Guide. Utiliser et configurer X est bien plus compliqué que ce que nous pouvons aborder ici. Consultez les pages de manuels de xterm, oclock, et twm afin de prendre un bon départ.

6. Notice légale

Ce document est sous copyright 1996 de Eric S. Raymond pour la version anglaise et de Pierre Vassellerie pour la version française. Vous êtes autorisé à utiliser, diffuser et reproduire gratuitement ce document, tant que :

Ces restrictions ont pour unique but de protéger les lecteur éventuels contre des versions incomplètes ou inadaptées. Si vous pensez que vous avez une bonne raison de faire des modifications ou une nouvelle version contactez l'auteur : Eric S. Raymond à esr@thyrsus.com.

7. Remerciements

La première version de ce document a été réalisée par Matt Welsh dans les profondes et obscures abysses du temps. Merci, Matt !

Merci aux relecteurs.

De plus, si vous désirez m'envoyer vos remerciements, ainsi qu'aux autres traducteurs des HOWTO, ceux-ci seront les bienvenus et nous encouragerons à continuer notre laborieux travail.