XFree86-4.3.0

Introduction à XFree86

Site de téléchargement (HTTP):  
Site de téléchargement (FTP):   ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/
Version utilisée:               4.3.0
Taille du package:              137 Mo
Estimation de l'espace disque requis:  633 Mo
Estimation du temps de construction:   75 (667 MHz)

Comme XFree86 est un si gros package, vous pourriez trouver que hdparm-5.3 accélère la compilation et l'utilisation du package en coinfigurant finement votre disque dur pour une performance optimale.

XFree86 est une implémentation open-source librement redistribuable du système X Window. XFree86 apporte une interface client/serveur entre le matériel d'affichage (souris, clavier et écrans vidéo) et l'environnement de bureau tout en apportant aussi à la fois une infrastructure des fenêtres et une API standardisé.

XFree86 dépend de:
freetype-2.1.3, expat-1.95.6 et libpng-1.2.5.

Il existe plusieurs fichiers qui ont besoin d'être récupérés à partir de l'emplacement de téléchargement:
X430src-1.tgz 10736 Ko 
X430src-2.tgz  7776 Ko
X430src-3.tgz 12077 Ko
X430src-4.tgz 12604 Ko
X430src-5.tgz  4286 Ko
X430src-6.tgz  7886 Ko
X430src-7.tgz  9099 Ko

Les trois premiers packages comprennent les programmes XFree86, le quatrième et le cinquième s'occupent des polices, le sixième et le septième contiennent la documentation. Il y a aussi deux packages: doctools-1.3.1.tgz, contenant les programmes de génération de la documentation, et utils-1.1.0.tgz, contenant gnutar et zlib qui sont déjà installés sur un système LFS.

Pour vérifier l'intégrité de vos téléchargements, téléchargez le fichier SUMS.md5sum. Puis:
md5sum X430src* > md5sums &&
diff md5sums SUMS.md5sum
Les seules différences que vous devez avoir concernent 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 (Memory Type Range Registers) dans le noyau. Le noyau peut interfacer les CPUs 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:and select the chipset
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.

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

patch -Np1 -i ../4.2.0-4.2.1.diff &&
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 -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.

Explication des commandes

make World 2>&1 | tee xfree-compile.log: Cette commande lance de multiples 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

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

startx

Un script pour initialiser la session X. Il lance xinit.

xinit

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

twm

Un gestionnaire de fenêtres pour X Window.

xterm

Un émulateur de terminal pour X.

xwininfo

Un utilitaire d'informations sur les fenêtres pour X.

x11perf

Un programme de tests de performance pour serveur X11.

xlsfonts

Un programme pour lister les polices disponibles sur le serveur X.

xvidtune

Un tuner de mode vidéo pour XFree86.

xload

Un affichage de la charge moyenne du système pour X.

xcalc

Une calculatrice scientifique pour X.

xclock and oclock

Horloges pour X.

xmodmap

Un utilitaire pour modifier des plans de codage de clavier et du pointeur dans X.