Installer X

Ce chapitre contient un environnement graphique pour l'utilisateur.

Xorg-6.7.0

Introduction à Xorg

[Note]

Note

BLFS propose deux paquets implémentant le système X Window : Xorg et XFree86. Ils sont similaires. En fait, le système de base d'Xorg est XFree86-RC2. La principale différence, au moment où ceci est écrit, concerne les licences des paquetes. Pour une personne construisant un paquet pour son utilisation personnel, ces problèmes sont sans importance. La plupart des grandes distributions commerciales ont décidé d'utiliser le paquet Xorg mais certaines utilisent toujours XFree86.

Une seconde raison au doublement des paquets X est les buts précisés par les développeurs. Quelques développeurs ne sont pas contents de l'administration et des progrès de XFree86. Les plans annoncés par Xorg incluent des améliorations significatives du fonctionnement interne du système et des sorties plus fréquentes.

XFree86 continue à être une application solide, conservative avec un excellent support des pilotes.

À la fois Xorg et XFree86 sont installés de la même façon mais cette section fournira une variation légère mais plus actuelle de l'installation.

Xorg est une implémentation opensource librement distribuable du système X Window. Cette application fournit une interface client/serveur entre le matériel d'affichage (souris, clavier et affichage vidéo) et l'environnement de bureau tout en fournissant aussi l'infrastructure des fenêtres et une interface standardisée de l'application interface (API).

Informations sur le paquet

  • Téléchargement (HTTP) : http://freedesktop.org/~xorg/X11R6.7.0/src/

  • Téléchargement (FTP) :

  • Taille du téléchargement : 70,3 Mo

  • Estimation de l'espace disque requis : 645 Mo

  • Estimation du temps de construction : 17,1 SBU

Dépendances d'Xorg

Optionnel

Linux_PAM-0.77.

Instructions de téléchargement

Plusieurs fichiers doivent être récupérés de l'emplacement de téléchargement :

  • X11R6.7.0-src1.tar.gz

  • X11R6.7.0-src2.tar.gz

  • X11R6.7.0-src3.tar.gz

  • X11R6.7.0-src4.tar.gz

  • X11R6.7.0-src5.tar.gz

  • X11R6.7.0-src6.tar.gz

  • X11R6.7.0-src7.tar.gz

Le premier paquet contient les bibliothèques Xorg et les programmes de support, le second contient les programmes X standards, le troisième le serveur X, les quatrième et cinquième les polices de caractères, le sixième la documentation et le septième une autre version de la documentation.

Pour vérifier l'intégrité de vos téléchargements, récupérez le fichier md5sums et lancez :

md5sum -c md5sums

Les sept paquets doivent avoir un statut OK.

Installation de Xorg

Configuration de la compilation du noyau

Si vous avez un Intel P6 (Pentium Pro, Pentium II et suivants), il est recommendé de compiler le support de MTRR (Memory Type Range Registers) directement dans le noyau. Le noyau peut faire correspondre l'interface MTRR aux CPU Cyrix et AMD, donc sélectionner cette option est aussi utile pour ces processeurs. Cette option se trouve dans le menu “Processor type and features”. Elle peut améliorer la performances des opérations d'écriture des images de 2,5 fois, voire plus, sur les cartes vidéos PCI ou AGP.

Dans la section “Character Devices”, activez le support de l'AGP et sélectionnez le support du jeu de composants de votre carte mère. Si vous ne connaissez pas le jeu de composants, vous pouvez sélectionner tous les types de composants, au prix d'un supplément de taille pour le noyau. Vous pouvez habituellement déterminer le jeu de composants de votre carte mère en lançant :

cat /proc/pci

Dans la section “Character Devices”, désactivez le gestionnaire de rendu direct (Direct Rendering Manager) sauf si vous disposez d'une carte vidéo supportant l'infrastructure de rendu direct (DRI, acronyme de Direct Rendering Infrastructure). Une liste complète des cartes vidéos supportant le DRI est disponible dans la section “Status” de la page http://dri.sourceforge.net. Habituellement, les cartes supportées incluent celles de 3dfx (Voodoo, Banshee), 3Dlabs, ATI (Rage Pro, Rage 128, Radeon 7X00, Radeon 2), Intel (i810, i815) et Matrox (G200, G400, G450). Si vous activez le DRI maintenant, assurez-vous de sélectionner la (ou les) carte(s) vidéo(s) que vous voulez supporter en tant que module.

De plus, NVidia fournit ses propres pilotes sous forme de binaire (sources propriétaires) qui ne font pas usage du DRI. Si vous avez l'intention d'utiliser ces pilotes, n'activez pas le DRI.

Si vous avez fait des modifications dans la configuration du noyau, recompilez-le.

Copiez les fichiers arch/i386/boot/bzImage et System.map du répertoire de construction dans le répertoire /boot. Éditez le fichier /boot/grub/grub.conf et ajoutez le nouveau noyau dans le menu de démarrage. (Si vous utilisez lilo, éditez le fichier /etc/lilo.conf et lancez lilo.)

[Note]

Note

Si vous installez Xorg dans un environnement chroot, assurez-vous que la version du noyau du système de base et du système cible sont les mêmes. C'est tout spécialement important si vous activez le support du DRI en tant que module comme indiqué ci-dessus.

Configurer un répertoire fantôme

Lors de la construction d'Xorg, vous devez créer un répertoire fantôme contenant des liens symboliques vers le code compilé. Pour ce faire, nous allons tout d'abord créer lndir. Depuis le répertoire xc :

pushd config/util &&
make -f Makefile.ini lndir &&
cp lndir /usr/bin/ &&
popd

Maintenant, créez la hiérarchie fantôme :

mkdir ../xcbuild &&
cd ../xcbuild &&
lndir ../xc

Créer host.def

The next step is to create the config/cf/host.def file. La documentation d'Xorg indique que l'application sera construite sans fichier host.def mais les bibliothèques incluses pour fontconfig et freetype2 ne sont pas construit proprement sur un système de base LFS. Du coup, vous devez spécifier que ces bibliothèques, ainsi que les autres, devraient être importées du système.

[Note]

Note

config/cf/host.def est un fichier C, pas un script shell. Assurez-vous que les commentaires délimités par /* ... */ sont balancés lors de la modification d'un fichier.

cat > config/cf/host.def << "EOF"
/* Begin Xorg host.def file */
 
/* System Related Information.  If you read and configure only one
 * section then it should be this one.  The Intel architecture defaults are
 * set for a i686 and higher.  Axp is for the Alpha architecture and Ppc is
 * for the Power PC.  AMD64 is for the Opteron processor. Note that there have 
 * been reports that the Ppc optimization line causes segmentation faults during 
 * build.  If that happens, try building without the DefaultGcc2PpcOpt line.  ***********/
 
/* #define DefaultGcc2i386Opt -O2 -fno-strength-reduce -fno-strict-aliasing -march=i686 */
/* #define DefaultGccAMD64Opt -O2 -fno-strength-reduce -fno-strict-aliasing */
/* #define DefaultGcc2AxpOpt  -O2 -mcpu=ev6 */
/* #define DefaultGcc2PpcOpt  -O2 -mcpu=750 */

#define HasFreetype2             YES
#define HasFontconfig            YES
#define HasExpat                 YES
#define HasLibpng                YES
#define HasZlib                  YES

/*
 * Which drivers to build.  When building a static server, each of these
 * will be included in it.  When building the loadable server each of these
 * modules will be built.
 *
#define XF86CardDrivers         mga glint nv tga s3virge sis rendition \
                                neomagic i740 tdfx savage \
                                cirrus vmware tseng trident chips apm \
                                GlideDriver fbdev i128 \
                                ati AgpGartDrivers DevelDrivers ark cyrix \
                                siliconmotion \
                                vesa vga XF86OSCardDrivers XF86ExtraCardDrivers
*/

/*
 * Select the XInput devices you want by uncommenting this.
 *
#define XInputDrivers           mouse keyboard acecad calcomp citron \
                                digitaledge dmc dynapro elographics \
                                microtouch mutouch penmount spaceorb summa \
                                wacom void magictouch aiptek
 */

/* Most installs will only need this */

#define XInputDrivers           mouse keyboard


/* End Xorg host.def file */
EOF

D'autres options pourraient vous intéresser. Un fichier exemple bien documenté est config/cf/xorgsite.cf.

Commandes de construction

Installez Xorg en lançant les commandes suivantes :

( make World 2>&1 | tee xorg-compile.log && exit $PIPESTATUS ) &&
make install &&
make install.man &&
ln -sf ../X11R6/bin /usr/bin/X11 &&
ln -sf ../X11R6/lib/X11 /usr/lib/X11 &&
ln -sf ../X11R6/include/X11 /usr/include/X11

Mise à jour de l'infrastructure de rendu direct (DRI)

Si vous avez une des cartes supportant le DRI et que vous avez activé les modules DRI du noyau, comme expliqué ci-dessus, vous avez maintenant besoin de mettre à jour les modules du noyau pour vous assurer qu'ils sont compatibles avec la version actuelle d'Xorg. Pour faire ceci, réalisez ce qui suit :

cd programs/Xserver/hw/xfree86/os-support/linux/drm/kernel &&
make  CC=/opt/gcc-2.95.3/bin/gcc -f Makefile.linux  &&
mkdir -p /lib/modules/`uname -r`/kernel/drivers/char/drm/  &&
cp gamma.o radeon.o sis.o r128.o i810.o i830.o mga.o tdfx.o \
    /lib/modules/`uname -r`/kernel/drivers/char/drm/  &&
depmod -a
[Warning]

Warning

Si vous recompilez ou mettez à jour votre noyau, vous aurez de nouveau besoin de copier les modules appropriés du pilote dans la bibliothèque des modules du noyau et de re-lancer la commande depmod -a.

[Note]

Note

Si vous avez ajouté le support de l'AGP en tant que module lors de la compilation du noyau, vous pourriez avoir à ajouter une ligne dans le fichier /etc/modules.conf pour vous assurer que le module agpgart est chargé. Par exemple, la version d'AGP de la carte vidéo Radeon sera utilisé dans le pilote radeon.o. Il aura de la ligne

below radeon
agpgart

dans le fichier /etc/modules.conf pour activer le support du DRI.

Explication des commandes

( make World 2>&1 | tee xorg-compile.log && exit $PIPESTATUS ) : cette commande lance plusieurs makefiles pour reconstruire complètement le système. 2>&1 redirige les messages d'erreurs vers le même emplacement comme sortie standard. La commande tee autorise aussi la visualisation de la sortie pendant l'enregistrement des résultats dans un fichier. Les parenthèses autour de la commande lance la commande entièredans un sous-shell et le exit $PIPESTATUS nous assure que le résultat de la commande make est renvoyé comme résultat et non le résultat de la commande tee.

[Note]

Note

Lors de la reconstruction d'Xorg, une commande séparée, qui pourrait être utilisée si seuls quelques petites modifications sont faires aux sources, est make Everything. Ceci ne supprime pas automatiquement les fichiers générés mais reconstruis aussi ces fichiers ou programmes obsolètes.

ln -sf ../X11R6/bin /usr/bin/X11
ln -sf ../X11R6/lib/X11 /usr/lib/X11
ln -sf ../X11R6/include/X11 /usr/include/X11

: ces commandes sont présentes pour activer les autres paquets (cassés) à construire avec Xorg. Nous le faisons en accord avec ce que dit le FHS (Filesystem Hierarchy Standard) : “en général, le logiciel ne peut pas être installé ou géré via les liens symboliques ci-dessus. Seuls les utilisateurs peuvent les utiliser.” (In general, software must not be installed or managed via the above symbolic links. They are intended for utilization by users only.)

make CC=/opt/gcc-2.95.3/bin/gcc -f Makefile.linux : ceci construit Xorg en compatibilité avec les modules du noyau en utilisant le même compilateur que celui du noyau.

cp gamma.o radeon.o sis.o r128.o i810.o i830.o mga.o tdfx.o /lib/modules/`uname -r`/kernel/drivers/char/drm/ : placez le(s) module(s) du noyau où le noyau peut les trouver. Vous avez seulement besoin de copier le pilote dont vous avez besoin pour supporter votre carte vidéo.

depmod -a : mise à jour du fichier modules.dep pour la gestion des modules.

Configurer Xorg

Éditez /etc/ld.so.conf et ajoutez /usr/X11R6/lib. Lancez :

ldconfig

Assurez-vous que /usr/X11R6/bin est ajouté votre variable d'environnement PATH. Les instructions pour le faire sont décrites dans la section Les fichiers de démarrage Bash.

Étendez PKG_CONFIG_PATH de façon à ce que les autres paquets peuvent trouver les bibliothèques de X. Les procédures sur ce point sont aussi décrites dans la section Les fichiers de démarrage Bash.

Configurez votre souris :

ln -s psaux /dev/mouse

Ajustez le lien symbolique en fonction des autres types de souris. Par exemple, une souris série sur le premier port série sera liée à ttyS1.

Créez le fichier xorg.conf avec :

cd ~
Xorg -configure

L'écran deviendra noir et vous entendrez quelques bruits du moniteur. Cette commande créera un fichier, xorg.conf.new dans votre répertoire personnel.

Éditez xorg.conf.new pour correspondre avec votre système. Les détails de ce fichier sont situés dans la page man avec man xorg.conf. Voici d'autres choses que vous pourriez vouloir faire :

  • Section “Files”. Modifiez l'ordre des chemins des polices recherché. Vous pouvez placer les polices de 100dpi avant les polices de 75dpi si votre système est plus proche des 100 pixels par pouce. Vous pouvez aussi supprimer certains répertoires.

  • Section “Monitor”. Spécifiez les valeurs de VertRefresh et HorizSync si le système ne détecte pas automatiquement le moniteur et ses valeurs.

  • Section “InputDevice”. Vous pouvez modifier le taux de répétition du clavier en ajoutant Option "Autorepeat" "250 30".

  • Section “Device”. Vous pouvez initialiser les options disponibles pour votre pilote vidéo. Une description des paramètres du pilote se trouve dans la page man de votre pilote.

  • Section “Screen”. Ajoutez une instruction DefaultDepth telle que DefaultDepth 16. Dans la sous-section de votre profondeur par défaut, ajouter une ligne modes telle que : Modes "1280x1024" "1024x768". Le premier mode listé sera normalement la résolution du début.

Testez le système avec :

X -xf86config ~/xorg.conf.new

Vous obtiendrez seulement un fond gris avec un curseur de souris en forme de X mais cela confirme le fonctionnement du système. Sortez avec Control-Alt-Backspace. Si le système ne fonctionne pas, jetez un œil à /var/log/Xorg.0.log pour voir les messages d'erreur.

Déplacez le fichier de configuration vers son emplacement final :

mv ~/xorg.conf.new /etc/X11/xorg.conf

Créez le fichier .xinitrc :

cat > ~/.xinitrc << "EOF"
# Begin .xinitrc file
xterm  -g 80x40+0+0   &
xclock -g 100x100-0+0 &
twm
EOF

Ceci fournit un écran initial avec un terminal graphique (xterm) et une horloge gérés par un gestionnaire de fenêtres très simple, le Tab Window Manager). Pour des détails sur twm, voir la page man.

[Note]

Note

Si nécessaire, Xorg crée le répertoire /tmp/.ICE-unix s'il n'existe pas. Si ce répertoire n'appartient pas à root, Xorg délaie le démarrage de quelques secondes et ajoute aussi un avertissement dans le journal des traces. Ceci affecte le lancement d'autres applications. Pour améliorer la performance, il est remarquable de créer manuellement le répertoire avant qu'Xorg l'utilise. Ajoutez la création du fichier dans /etc/sysconfig/createfiles qui est utilisé par le script de démarrage /etc/rc.d/init.d/cleanfs.

cat >> /etc/sysconfig/createfiles << "EOF"
/tmp/.ICE-unix dir 1777 root root
EOF

Lancez X avec :

startx

pour obtenir un système X Window fonctionnel de base.

À ce moment, vous devriez vérifier les composants X Window sur the section called “Composants X Window”.