XFree86-4.3.0.1

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

Recommendé

Les packages suivants sont inclus dans le package XFree86, néanmoins ils sont plus souvent mis à jour que le package XFree86 et sont hautement recommendés: expat-1.95.6, FreeType-2.1.5 et Fontconfig-2.2.1

Note : Si vous choisissez de ne pas installer ces packages séparés, 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:

  • X430src-1.tgz

  • X430src-2.tgz

  • X430src-3.tgz

  • X430src-4.tgz

  • X430src-5.tgz

  • X430src-6.tgz

  • X430src-7.tgz

Vous pouvez aussi télécharger le correctif: ftp://ftp.xfree86.org/pub/XFree86/4.3.0/fixes/4.3.0-4.3.0.1.diff.gz

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é.

Le sous-répertoire fixes contient aussi un SUMS.md5sum. Notez que c'est le même nom de fichier que les sommes des sources principales, donc vous devez renommer le fichier si vous le télécharger. Sinon, vous pouvez juste y jetez un oœl; et l'utiliser avec le fichier correctif:

md5sum 4.3.0-4.3.0.1.diff.gz

Après le déballage des fichiers X430src-?.tgz et le décompressage du fichier diff, modifiez le répertoire xc et lancez:

patch -Np1 -i ./4.3.0-4.3.0.1.diff

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 le 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). Voir la section DRI plus bas pour une liste. Si vous activez le DRI ici, assurez-vous de sélectionner la carte vidéo, en tant que module, carte vidéo pour laquelle vous souhaitez disposer du support.

Si vous faites tout changement dans la configuration du noyau, recompilez-le avec

make dep &&
make bzImage &&
make modules &&
make modules_install

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 : 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 : 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 hosts.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 instuctions */
/* #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 s3virge rendition \
                        cirrus vmware tseng chips apm \
                        fbdev i128 \
                        ati AgpGartDrivers DevelDrivers ark cyrix \
                        vesa vga XF86OSCardDrivers

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

/* These setting should be set by default, but we are making sure. *********/

#define BuildFontServer          YES  /* Need for GhostScript Print Server */
#define SharedLibFont            YES  
#define CompressAllFonts         YES
#define GzipFontCompression      YES

/* These setting ensure we use the proper version of freetype **************/
#define HasFreetype2             YES
#define HasFontconfig            YES
#define BuildFreetype2Library     NO
#define Freetype2Dir            /usr

/* 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    /* X Docs in PostScript format */
#define BuildAllSpecsDocs             NO    /* Various docs */
#define BuildHtmlManPages             NO

/* Linux Distribution Information - Not essential that it is totally right.*/

#define LinuxDistribution         LFS 

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

#define GccWarningOptions         -pipe
#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 HasZlib                   YES
#define HasNCurses                YES
#define HasPam                     NO        
#define SystemManDirectory        /usr/share/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:

WORLDOPTS="" make World 2>&1 | tee xfree-compile.log &&
make install &&
make install.man &&
ln -sf /usr/X11R6/bin /usr/bin/X11 &&
ln -sf /usr/X11R6/lib/X11 /usr/lib/X11 &&
ln -sf /usr/X11R6/include/X11 /usr/include/X11

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

Avertissement

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.

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 World 2>&1 | tee xfree-compile.log: 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.

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 /usr/X11R6/bin /usr/bin/X11, ln -sf /usr/X11R6/lib/X11 /usr/lib/X11 et ln -sf /usr/X11R6/include/X11 /usr/include/X11: 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

Ajoutez /usr/X11R6/bin à votre variable d'environnement PATH dans .bash_profile. Vous devriez apercevoir quelque chose comme PATH=$PATH:/usr/X11R6/bin et être placé avant la commande export PATH.

Lancez

source ~/.bash_profile

Configurez votre souris:
cd /dev
ln -s psaux 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:

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.

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 : 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 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.