XFree86-4.4.0

Introduction à XFree86

XFree86 est une implémentation opensource librement redistributable de X Window System. XFree86 fournit une interface client/server entre le matériel d'affichage (souris, clavier et affichage vidéo) et l'environnement de bureau tout en apportant aussi l'infrastructure de fenêtrage et une interface standardisée des applications (API).

Informations sur le package

Dépendances de XFree86

Requis

libpng-1.2.5.

Recommandé

Linux_PAM-0.77 et les packages suivants sont inclus dans le package XFree86, néanmoins ils sont plus souvent mis à jour que le package XFree86 et sont hautement recommandés: expat-1.95.7, FreeType-2.1.7, Fontconfig-2.2.2

[Note]

Note

Si vous choisissez de ne pas installer expat-1.95.7, FreeType-2.1.7 et Fontconfig-2.2.2, le fichier host.def ci-dessous devra être modifié pour montrer à XFree86 la façon de les construire.

Instructions de téléchargement

Plusieurs fichiers devront être récupérés à partir de l'emplacement de téléchargement:

  • XFree86-4.4.0-src-1.tgz

  • XFree86-4.4.0-src-2.tgz

  • XFree86-4.4.0-src-3.tgz

  • XFree86-4.4.0-src-4.tgz

  • XFree86-4.4.0-src-5.tgz

  • XFree86-4.4.0-src-6.tgz

  • XFree86-4.4.0-src-7.tgz

Les trois premiers packages sont les programmes XFree86, le quatrième et le cinquième concernent les polices, le sixième contient la documentation standard et le dernier une version imprimable de la documentation. Il reste aussi deux packages doctools-1.3.1.tgz, contenant les programmes pour regénérer la documentation imprimable, et utils-1.1.0.tgz contenant les outils GNU TAR et zlib qui sont déjà installés sur un système LFS.

Pour vérifier l'intégrité de vos téléchargements, récupérez le fichier SUMS.md5sum. Puis:

md5sum -c SUMS.md5sum

Les seules erreurs que vous devriez apercevoir sont pour les fichiers README, doctools-1.3.1.tgz et utils-1.1.0.tgz si vous ne les avez pas téléchargé.

Installation de XFree86

Paramétrages de compilation du noyau

Si vous avez un Intel P6 (Pentium Pro, Pentium II et suivants), il est recommandé de compiler le support de MTRR (acronyme de Memory Type Range Registers) dans le noyau. Le noyau peut interfacer les CPU Cyrix et AMD avec l'interface MTRR, donc la sélection de cette option est aussi utile pour ces processeurs. Cette option se trouve dans le menu Processor type and features. Il peut améliorer la performance des opérations d'écriture d'images, de la 2,5 fois à plus sur les cartes vidéo PCI et AGP.

Dans la section "Character Devices", activez le support de l'AGP et sélectionnez le support du chipset de votre carte mère. Si vous ne connaissez pas le chipset, vous pouvez sélectionner tous les types de composants, ce qui va agrandir la taille de votre noyau. Vous pouve déterminer habituellement le chipset de votre carte mère en lançant:

cat /proc/pci

Dans la section "Character Devices", désactivez le 'Direct Rendering Manager' sauf si vous avez une carte vidéo disposant de l'infrastructure 'Direct Rendering Infrastructure' (DRI). Une liste complète de cartes vidéo DRI supportées est disponible sur http://dri.sourceforge.net dans la section Status. Actuellement, les cartes supportés 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 DRI ici, assurez-vous de sélectionner le(s) carte(s) vidéo que vous voulez supporter comme module.

De plus, NVidia fournit ses propres pilotes par un binaire (sources fermés) qui n'utilise pas le DRI. Si vous comptez utiliser ces pilotes, n'activez pas le DRI.

Si vous avez effectué des modifications à la configuration du noyau, recompilez-le.

Copiez /usr/src/linux/arch/i386/boot/bzImage et /usr/src/linux/System.map dans /boot, éditez /etc/lilo.conf de manière appropriée et lancez lilo.

[Note]

Note

Si vous construisez XFree86 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. Ceci est tout spécialement important si vous avec activé le support de DRI en tant que module en suivant les instructions ci-dessus.

Créer host.def

Bien que XFree86 compilera sans fichier host.def, le fichier suivant est recommandé pour personnalisation de l'installation. Commencez à partir du répertoire xc.

[Note]

Note

Le fichier host.def est un fichier C, pas le fichier de configuration habituel. Si vous effectuez des changements, assurez-vous que les caractères de commentaire (/* et */) sont corrects. La plupart des entrées dans le fichier ci-dessous ne sont plus en commentaires avec les paramètrages par défaut.

cat > config/cf/host.def << "EOF"
/* Begin XFree86 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.  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 -fomit-frame-pointer -march=i686 */
/* #define DefaultGcc2AxpOpt   -O2 -mcpu=ev6 */
/* #define DefaultGcc2PpcOpt   -O2 -mcpu=750 */

/* The following definitions are normally set properly by XFree86's scripts.
 * You can uncomment them if you want to make sure. ************************/
 
/* #define HasMTRRSupport      YES  */ /* Enabled in kernel see kernel docs*/
/* #define HasMMXSupport        NO  */ /* Any i586 or above */
/* #define HasKatmaiSupport     NO  */ /* PIII SSE instructions */
/* #define Has3DNowSupport      NO  */ /* AMD instructions */


/* This setting reduces compile time a little by omitting rarely used input 
 * devices.  You can find the complete list in config/cf/xfree86.cf ********/
 
#define XInputDrivers                 mouse void

/* VIDEO DRIVERS ***********************************************************/

/* If you are sure you only want the drivers for one or a few video cards,
 * you can delete the drivers you do not want. *****************************/ 


#define XF86CardDrivers  mga glint nv tga s3 s3virge sis rendition \
                         neomagic i740 tdfx savage \
                         cirrus vmware tseng trident chips apm \
                         GlideDriver fbdev i128 nsc \
                         ati i810 AgpGartDrivers DevelDrivers ark \
                         cyrix siliconmotion \
                         vesa vga \
                         dummy XF86OSCardDrivers XF86ExtraCardDrivers


/* USER AND SYSTEM DEFAULT PATHS *******************************************/

/* These settings set the PATH variables used by xdm. See README for *******/
/* detailed description and modify the following as per your need. *********/

/* #define DefaultSystemPath /usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin */
/* #define DefaultUserPath /usr/bin:/bin:/usr/X11R6/bin */

/* FONT SERVER AND LIBRARY SETTINGS ****************************************/

/* These settings are the defaults   ***************************************/

/* #define BuildFontServer          YES  */ /* For Ghostscript Print Server*/
/* #define SharedLibFont            YES  */
/* #define CompressAllFonts         YES  */
/* #define GzipFontCompression      YES  */

/* These settings ensure we use our libraries ******************************/
#define HasFreetype2             YES
#define HasFontconfig            YES
#define HasExpat                 YES
#define HasLibpng                YES
#define HasZlib                  YES

/* The font path can be redefined in the XF86Config file *******************/

/*
#define DefaultFontPath                $(FONTDIR)/misc/,$(FONTDIR)/75dpi/,\
$(FONTDIR)/100dpi/,$(FONTDIR)/Type1,$(FONTDIR)/local,\
$(FONTDIR)/TrueType,$(FONTDIR)/CID,$(FONTDIR)/Speedo
*/


/* INTERNATIONAL FONTS.  Change to YES if you need any of them.  These  are
 * the defaults. ***********************************************************/

/* #define BuildCyrillicFonts            NO  */
/* #define BuildArabicFonts              NO  */
/* #define BuildISO8859_6Fonts           NO  */
/* #define BuildGreekFonts               NO  */
/* #define BuildISO8859_7Fonts           NO  */
/* #define BuildHebrewFonts              NO  */
/* #define BuildISO8859_8Fonts           NO  */
/* #define BuildKOI8_RFonts              NO  */
/* #define BuildJapaneseFonts            NO  */
/* #define BuildJISX0201Fonts            NO  */
/* #define BuildKoreanFonts              NO  */
/* #define BuildChineseFonts             NO  */

/* DOCUMENTATION SETTINGS **************************************************/

/* These setting are the defaults. *****************************************/

/* #define BuildLinuxDocHtml             NO  */  /* X Docs in Html format */
/* #define BuildLinuxDocPS               NO  */  /* PostScript format */
/* #define BuildAllSpecsDocs             NO  */  /* Various docs */
/* #define BuildHtmlManPages             NO  */

/* GENERAL SETTINGS: You generally want to leave these alone when
 * building X on an LFS system *********************************************/

#define GccWarningOptions         -pipe /* Speed up compiles */
#define TermcapLibrary            -lncurses
#define XprtServer                YES /* Needed by realplayer */
#define XnestServer               YES
#define XAppLoadDir               EtcX11Directory/app-defaults
#define VarLibDir                 /var/lib
#define XFree86Devel               NO
#define FSUseSyslog               YES
#define ThreadedX                 YES
#define HasPam                     NO        
#define SystemManDirectory        /usr/share/man  /* Instead of /usr/man */
#define HasLibCrypt               YES
#define InstallXinitConfig        YES
#define InstallXdmConfig          YES
#define ForceNormalLib            YES
#define BuildSpecsDocs             NO

/* End XFree86 host.def file */
EOF

Editiez le fichier suivant votre matériel et vos désirs.

Commandes de construction

Installez XFree86 en lançant les commandes suivantes:

( make WORLDOPTS="" World 2>&1 | tee xfree-compile.log && exit $PIPESTATUS ) &&
make install &&
make install.man &&
ln -sf ../X11R6/bin /usr/bin/X11 &&
ln -sf ../X11R6/lib/{X11,libGL.so{,.1}} /usr/lib &&
ln -sf ../X11R6/include/{X11,GL} /usr/include

Mettre à jour le moteur de rendu DRI (Direct Rendering Infrastructure)

Si vous possédez une des cartes DRI supportées et que vous avez activé le support de DRI dans les modules 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'XFree86. Pour cela, 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 besoin de recopier les modules du pilotes dans la bibliothèque des modules du noyau et de relancer depmod -a.

[Note]

Note

Si vous avez ajouté le support de l'AGP en module lors de la compilation du noyau, vous pouvez ajouter une ligne dans /etc/modules.conf pour vous assurer que le module agpgart est bien chargé. Par exemple, la version AGP de la carte vidéo Radeon utilisera le pilote radeon.o. Il aura besoin de cette ligne

en dessous de radeon agpgart

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

Explication des commandes

( make WORLDOPTS="" World 2>&1 | tee xfree-compile.log && exit $PIPESTATUS ) : Cette commande lance plusieurs makefiles pour constuire complètement le système. WORLDOPTS="" désactive la configuration par défaut pour continuer même en cas d'erreurs. 2>&1 redirige les messages d'erreurs vers la même sortie que la sortie standard. La commande tee permet de visusaliser la sortie en même temps que l'enregistrement des résultats dans un fichier. Les parenthèses autour de la commande lance la commande entière dans un sous-shell et, enfin, exit $PIPESTATUS nous assure que le résultat de make est renvoyé plutôt que celui de la commande tee.

[Note]

Note

Lors de la reconstruction de XFree86, une commande séparée, qui peut être utilisée seulement si des changements mineurs ont lieu dans les sources, est make Everything. Ceci ne supprime pas automatiquement les fichiers générés et reconstruit seulement les fichiers ou programmes qui ne sont plus à jour.

ln -sf ../X11R6/bin /usr/bin/X11
ln -sf ../X11R6/lib/{X11,libGL.so{,.1}} /usr/lib
ln -sf ../X11R6/include/{X11,GL} /usr/include

Ces commandes sont présentes pour permettre à d'autres packages (cassés) d'être construit avec XFree86. Nous le faisons même si FHS (Filesystem Hierarchy Standard, le Standard de Hiérarchie du système de Fichiers) dit: "En général, les logiciels ne doivent pas être installés ou gérés via les liens symboliques ci-dessus. Ils sont à l'intention des utilisateurs pour leur propre utilisation."

make -f Makefile.linux : Ceci construit les modules noyau compatible avec XFree86.

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/ : Place les modules du noyau là où celui-ci les attend.

depmod -a : Met à jour le fichier modules.dep pour la gestion des modules.

Configurer XFree86

Editez /etc/ld.so.conf et lancez /usr/X11R6/lib. Lancez

ldconfig

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

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

Lancez

source ~/.bash_profile

Configurez votre souris:

ln -s psaux /dev/mouse

Ajustez le lien symbolique comme nécessaire pour les autres types de souris. Par exemple, un souris série sur le premier port série sera lié vers ttyS1.

Créez le fichier XF86Config avec

cd ~
XFree86 -configure

L'écran va devenir noir et vous pourrez entendre des clics sur le moniteur. Cette commande va créer un fichier, XF86Config.new dans votre répertoire principal.

Editez XF86Config.new suivant votre système. Les détails de ce fichier sont indiqués dans la page man man XF86Config. Vous pourriez vouloir faire:

  • Section "Files". Changer l'ordre du chemin des polices. Vous pouvez vouloir placer les polices 100dpi avant les polices 75dpi si votre système est plus près de 100 points par pouce. Vous pourriez vouloir supprimer complètement quelques répertoires de polices.

  • 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 vouloir changer le taux de répétition automatique en ajoutant Option "Autorepeat" "250 30".

  • Section "Device". Vous pouvez initialiser certaines options disponibles dans le pilote vidéo que vous avez sélectionné. Une description des paramètres du pilote se trouve sur la page man de votre pilote.

  • Section "Screen". Ajouter une indication DefaultDepth telle que: DefaultDepth 16. Dans la sous-section (SubSection) pour votre profondeur par défaut, ajouter les lignes 'modes line' telles que: Modes "1280x1024" "1024x768". Le premier mode affiché va normalement être la résolution lors du démarrage.

Testez le system avec

XFree86 -xf86config ~/XF86Config.new

Vous obtiendrez seulement un fond d'écran gris avec un curseur de souris en forme de X, mais il confirme que le système fonctionne. Sortez avec Control-Alt-Backspace. Si le système ne fonctionne pas, jetez un oeil sur /var/log/XFree86.0.log pour voir ce qui ne va pas.

Déplacez le fichier de configuration à son emplacement final

mv ~/XF86Config.new /etc/X11/XF86Config-4

Créez .xinitrc

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

Ceci apporte un écran initial avec un xterm et une horloge géré par un gestionnaire de fenêtres simple, Tab Window Manager. Pour plus de détails sur twm, voir la page man.

[Note]

Note

Si nécessaire, XFree86 crée le répertoire /tmp/.ICE-unix si celui-ci n'existe pas. Si ce répertoire n'appartient pas à root, XFree86 ajoute un délai au lancement de quelques secondes et ajoute aussi un message d'attention dans le journal des traces. Ceci affecte aussi le démarrage des autres applications. Pour améliorer les performances, un conseil est de créer le répertoire avant que XFree86 ne l'utilise. Ajoutez le création du fichier dans /etc/sysconfig/createfiles qui est lancé 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 Windows basique fonctionnel.

Contenu

Le package XFree86 contient le système X Window pour Linux (et d'autres systèmes d'exploitation). Il inclut le serveur X, des polices, xterm, un simple gestionnaire de fenêtres (twm), des utilitaires variés, des pilotes vidéos et des pilotes d'entrées variés comme la souris et le clavier.

XFree86 contient aussi les bibliothèques et les fichiers d'entêtes pour le développement des programmes X Window.

Description

[Note]

Note

La liste suivante de programmes n'est pas extensible. La liste complète est dans /usr/X11R6/bin. Pour des informations supplémentaires sur ces programmes, voir les pages man respectives.

XFree86

XFree86 est l'implémentation X11R6 du serveur X Window.

xf86config

Un programme interactif pour générer un fichier XF86Config pour utiliser avec des serveurs X XFree86.

xf86cfg

xf86cfg est un outil pour configurer XFree86 qui peut être utilisé pour soit écrire le fichier de configuration initial soit personnaliser la configuration courante.

startx

startx est un script pour initialiser la session X. Il lance xinit.

xinit

Ce programme est utilisé pour lancer le serveur X Window.

twm

twn (Tab Window Manager) est un gestionnaire de fenêtres pour X Window.

xterm

xterm est un émulateur de terminal pour X.

xwininfo

xwininfo> est un utilitaire d'informations sur les fenêtres pour X.

x11perf

x11perf est un programme de tests de performance pour serveur X11.

xlsfonts

xslfonts est un programme pour lister les polices disponibles sur le serveur X.

xvidtune

xvidtune est un tuner de mode vidéo pour XFree86.

xload

xload affiche la charge moyenne du système pour X.

xcalc

xcalc est une calculatrice scientifique pour X.

xclock and oclock

xclock et oclock sont des horloges pour X.

xmodmap

xmodmap est un utilitaire pour modifier des plans de codage de clavier et du pointeur dans X.