X window system

Installation et configuration de base du système de fenêtres X.

A propos

Ce chapitre décrit l'installation et la configuration du système X window sur SliTaz. Nous allons installer, les bibliothèques pour les polices, expat, XML, un server graphique (Xvesa), un émulateur de terminal (XTerm), divers petits outils, et un gestionnaire de fenêtres (JWM). Nous vous proposons aussi d'installer les bibliothèques JPEG et le navigateur web Links (en français).

Variable d'environnement ($fs)

Pour ne pas spécifier tout le chemin vers le répertoire rootfs, export de la variable d'environnement:

 # export fs=$PWD/rootfs

Pour vérifier:

 # echo $fs

expat-2.0.0 - XML parser library

Expat (http://expat.sourceforge.net/) contient des bibliothèques d'analyse XML:

 # cd ..
 # wget http://switch.dl.sourceforge.net/sourceforge/expat/expat-2.0.0.tar.gz
 # tar xzf expat-2.0.0.tar.gz
 # cd expat-2.0.0
 # ./configure --sysconfdir=/etc --prefix=/usr \
   --mandir=/usr/share/man
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip -v _pkg/usr/lib/*
 # strip -v _pkg/usr/bin/*

Par la suite nous allons installer 'xterm' qui a besoin de libexpat.so.0, il suffit de créer un lien symbolique sur libexpat.so.1.5.0, et le tour est joué. Ensuite vous pouvez installerles bibliothèques, et l'application 'xmlwf' dans le rootfs:

 # cd _pkg/usr/lib
 # ln -s libexpat.so.1.5.0 libexpat.so.0
 # cp -a *.so* $fs/usr/lib
 # cd ..
 # cp -a bin/* $fs/usr/bin
 # cd ../..

libs

Bibliothèques uitilisées par xmlwf:
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0x40021000)
        libc.so.6 => /lib/tls/libc.so.6 (0x40041000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

freetype-2.3.1 - Bibliothèques de police sytème

Le paquet freetype (http://www.freetype.org/) contient des bibliothèques utilisées par X pour la configuration des polices du système:

 # cd ..
 # wget http://download.savannah.gnu.org/releases/freetype/freetype-2.3.1.tar.bz2
 # tar xjf freetype-2.3.1.tar.bz2
 # cd freetype-2.3.1
 # ./configure --sysconfdir=/etc --prefix=/usr \
   --mandir=/usr/share/man
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip -vs _pkg/usr/lib/*
 # cp -a _pkg/usr/bin/* $fs/usr/bin
 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib

fontconfig 2.4.2 - Outils de gestion des polices

Le paquet fontconfig (www.fontconfig.org/wiki/) fourni la bibliothèque libfontconfig, utilisée par de nombreux programme sous X. Note: XFree86 fournit aussi ces bibliothèques, et les utilitaires. Nous avons choisi d'utiliser le paquet original, car il fonctionne mieux avec JWM:

 # cd ..
 # wget http://fontconfig.org/release/fontconfig-2.4.2.tar.gz
 # tar xzf fontconfig-2.4.2.tar.gz
 # cd fontconfig-2.4.2
 # ./configure --sysconfdir=/etc --prefix=/usr \
   --mandir=/usr/share/man --localstatedir=/var
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip -v _pkg/usr/bin/*
 # strip -v _pkg/usr/lib/*
 # cp -a _pkg/usr/bin/* $fs/usr/bin
 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
 # cp -a _pkg/etc $fs
 # cp -a _pkg/var $fs

libs

Un 'ldd' sur fc-cache donne, le bibliothèques ci-dessous. Vous pouvez utiliser libfreetype d'Xfree86:

        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7f12000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb7eff000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7edf000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7eb0000)
        libc.so.6 => /lib/tls/libc.so.6 (0xb7d7b000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7f8c000)

Xserver - Serveur graphique Xvesa d'Xfree86

Nous allons utiliser la versions binaires du serveur Xvesa et les polices distribuée par Xfree86.org (www.free86.org/). Nous allons par contre, copier les bibliothèques d'Xorg depuis le système hôte, car elle seront utilisées par la compilation des applications X, Xvesa fonctionne très bien comme ça et cela simplifie les choses. Vous pouvez aussi recompiler les paquets d'Xorg sur votre système de développement.

Xtinyx server - Xvesa

Le serveur Xvesa est très léger, et utilise peut de bibliothèques, il se trouve dans l'archive Xtinyx.tgz. Téléchargement et install dans /usr/bin du rootfs de SliTaz:

 # cd ..
 # mkdir -p XFree86-4.6.0 && cd XFree86-4.6.0
 # wget http://ftp.xfree86.org/pub/XFree86/4.6.0/binaries/Linux-ix86-glibc23/Xtinyx.tgz
 # tar xzf Xtinyx.tgz
 # cp bin/Xvesa $fs/usr/bin
 # strip $fs/usr/bin/Xvesa
 # chmod 4711 $fs/usr/bin/Xvesa

libs pour Xvesa

        libz.so.1 => /usr/lib/libz.so.1 (0xb7ed6000)
        libm.so.6 => /lib/tls/libm.so.6 (0xb7eb1000)
        libc.so.6 => /lib/tls/libc.so.6 (0xb7d7e000)
        /lib/ld-linux.so.2 (0xb7ef8000)

rgb.txt - Les couleurs RGB sous X

Le fichier de configuration des couleurs utilisée par le serveur X se nomme rgb.txt, nous vous proposons de copier celui du système hôte. La bibliothèque libX11.so d'Xorg va chercher les fichiers de configuration dans /usr/share/X11, et le serveur Xvesa dans /usr/X11R6/lib/X11, nous allons créer un lien dans /usr/share/X11 afin de satisfaire cela:

 # mkdir -p $fs/usr/share/X11
 # cp /usr/share/X11/rgb.txt $fs/usr/share/X11
 # chroot $fs /bin/ash
 /# mkdir -p /usr/X11R6/lib/X11/
 /# ln -s /usr/share/X11/rgb.txt /usr/X11R6/lib/X11/rgb.txt
 /# exit

Xfnts - Les polices

Pour que le serveur fonctionnent il nous faut les polices de base, que vous pouvez télécharger depuis xfree86.org, les compiler depuis les paquets d'Xorg, ou les copier depuis votre système hôte. Les polices du système peuvent se mettre dans différents dossiers, et une fois installées pour devez lancer lc-cache pour mettre à jour le cache. Attention les fonts prennent de la place, vous pouvez ne copier que le minimum. Le répertoire /usr/share/fonts contient les polices truetype tels que biststream-vera:

 # wget http://ftp.xfree86.org/pub/XFree86/4.6.0/binaries/Linux-ix86-glibc23/Xfnts.tgz
 # tar xzf Xfnts.tgz
 # mkdir -p $fs/usr/X11R6/lib/X11/fonts
 # mkdir -p $fs/usr/share/fonts/truetype

 Copie des polices...
 (# cp -a lib/X11/fonts/* $fs/usr/X11R6/lib/X11/fonts)
 (# cp -a /usr/share/fonts/truetype/* $fs/usr/share/fonts/truetype

Pour regénérer le fichier fonts.dir, il vous faut lancer mkfontdir sur le réperoire en question:

 # mkfontdir $fs/usr/X11R6/lib/X11/fonts/75dpi

Les fichiers de configuration de fontconfig, se trouvent dans /etc/fonts, fourni par le paquet fontconfig. Vous pouvez maintenant lancer 'fc-cache', et pour connaître la liste des polices vous pouvez utiliser 'fc-list'. Vous pouvez faire cela avec un chroot dans le rootfs:

 # chroot $fs /bin/ash
 # fc-cache -v
 # fc-list
 # exit

Xlib locale - Les fichiers de localisation

Sur SliTaz nous avons installé que 4 locales, C, iso8859-1, iso8859-15, et iso8859-2 provenant de la compilation d'Xorg. Vous pouvez copier les fichiers depuis le système hôte ou utiliser les fichiers distribuées par XFree86. Exemple de copie de toutes les locales depuis le système hôte:

 # mkdir -p $fs/usr/share/X11/locale
 # cp -a /usr/share/X11/locale/* $fs/usr/share/X11/locale

Utilisation de X

A noter que vous pouvez déjà utiliser Xvesa comme terminal X, si vous avez une machine sur le réseau acceptant les connexions Xdmcp. Pour cela vous pouvez lancer le server avec l'option -query, exemple:

 # Xvesa -ac -shadow -screen 1024x768x24 -query 192.168.0.2

xterm - Emulateur de terminal

Le paquet Xterm (invisible-island.net/xterm/)fournit un émulateur de terminal pour X:

 # wget ftp://invisible-island.net/xterm/xterm-223.tgz
 # tar xzf xterm-223.tgz
 # cd xterm-223
 # ./configure --prefix=/usr --sysconfdir=/etc \
   --mandir=/usr/share/man --localstatedir=/var \
   --with-app-defaults=/usr/share/X11/app-defaults \
   --build=i486-pc-linux-gnu --host=i486-pc-linux-gnu
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip _pkg/usr/bin/*
 # cp _pkg/usr/bin/* $fs/usr/bin
 # cp -a _pkg/usr/share/X11/* $fs/usr/share/X11

libs

Un ldd sur XTerm, nous fait copier les bibliothèques manquantes depuis le système hôte et n'oubliez pas de stripper le tout à la fin:

    libXft.so.2 => /usr/lib/libXft.so.2 (0xb7f09000)
    libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7f00000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7ed5000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7e68000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb7e54000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0xb7d68000)
    libXaw.so.7 => /usr/lib/libXaw.so.7 (0xb7d0f000)
    libXmu.so.6 => /usr/lib/libXmu.so.6 (0xb7cfa000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0xb7cec000)
    libXt.so.6 => /usr/lib/libXt.so.6 (0xb7c9e000)
    libSM.so.6 => /usr/lib/libSM.so.6 (0xb7c96000)
    libICE.so.6 => /usr/lib/libICE.so.6 (0xb7c7f000)
    libncurses.so.5 => /lib/libncurses.so.5 (0xb7c3c000)
    libc.so.6 => /lib/libc.so.6 (0xb7b2c000)
    libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7b0b000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0xb7b08000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7b03000)
    libdl.so.2 => /lib/libdl.so.2 (0xb7aff000)
    libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb7aee000)

libpng-1.2.18 - Bibliothèques PNG

Les bibliothèques PNG (http://libpng.org/pub/png/libpng.html)permettent de manipuler et d'utiliser les images au format .png:

 # wget http://puzzle.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.18.tar.bz2
 # tar xjf libpng-1.2.18.tar.bz2
 # cd libpng-1.2.18
 # ./configure --enable-shared --prefix=/usr \
   --mandir=/usr/share/man
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip _pkg/usr/lib/*.so*
 # cp -a _pkg/usr/lib/libpng12.so* $fs/usr/lib
 # cp -a _pkg/usr/bin/libpng12* $fs/usr/bin

jwm-2.0 - Gestionnaire de fenêtres

Joe's Window Manager (http://www.joewing.net/programs/jwm/) est un gestionnaire de fenêtres ultra léger, et convivial. C'est le window manager par défaut de SliTaz. Le fichier de configuration principal est dans /etc/jwm/system.jwmrc, comprenant la config du menu et du style:

 # cd ..
 # wget http://www.joewing.net/programs/jwm/releases/jwm-2.0.tar.bz2
 # tar xjf jwm-2.0.tar.bz2
 # cd jwm-2.0
 # ./configure --prefix=/usr --mandir=/usr/share/man \
   --sysconfdir=/etc/jwm --disable-xinerama
 # make
 # strip src/jwm
 # cp src/jwm $fs/usr/bin
 # mkdir $fs/etc/jwm
 # cp example.jwmrc $fs/etc/jwm/system.jwmrc

libs

Les bibliothèques que ldd nous aura fourni:

    libX11.so.6 => /usr/lib/libX11.so.6 (0xb7e35000)
    libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7e12000)
    libXft.so.2 => /usr/lib/libXft.so.2 (0xb7e00000)
    libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7df7000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7dcc000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7d5f000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb7d4a000)
    libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb7d3a000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0xb7d2c000)
    libc.so.6 => /lib/libc.so.6 (0xb7c1c000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0xb7c19000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7c14000)
    libdl.so.2 => /lib/libdl.so.2 (0xb7c0f000)
    libm.so.6 => /lib/libm.so.6 (0xb7bea000)
    libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7bc9000)

Vous pouvez démarrer le server X et JWM avec la commande ci-dessous, ou en créant un script, tel que /usr/bin/startx avec pour contenu:

Xvesa -ac -shadow -screen 1024x768x24 & exec jwm

Sur SliTaz

SliTaz utilise le fichier ~/.xsession pour lancer un session grahique. La commande 'startx' vérifie si il existe, si oui il le lance, sinon il lance le script 'tazx' pour configurer le système X. La page du guide de l'utilisateur au sujet d'X window est dans: /usr/share/doc/slitaz/user-guide/x-window.html, et sur le site web.

Nous avons choisi d'utiliser les icons du thème Tango: http://tango.freedesktop.org/, que nous n'avons pas compilé. Nous utilison seulement le minimum, et des images au format 16x16 que nous mettons dans /usr/share/icons.

Pour tester JWM, avec une ISO en cuisson:

 # Xvesa -ac -shadow -screen 800x600x24 & exec jwm

jpeg-6b - Bibliothèques JPEG

Les bibliothèques de manipulation des images JPEG, et quelques petits utilitaires:

 # wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
 # tar xzf jpegsrc.v6b.tar.gz
 # cd jpeg-6b
 # ./configure --enable-shared --prefix=/usr \
   --mandir=/usr/share/man
 # make
 # strip .libs/*
 # cp -a .libs/*.so* $fs/usr/lib
 # cp .libs/{cjpeg,djpeg,jpegtran} $fs/usr/bin

tiff-3.8.2 - Bibliothèques et utilitaires TIFF

Les bibliothèques de manipulation des images TIFF, et quelques petits utilitaires en option:

 # wget ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.8.2.tar.gz
 # tar xzf tiff-3.8.2.tar.gz
 # cd tiff-3.8.2
 # ./configure  --prefix=/usr --mandir=/usr/share/man
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip _pkg/usr/bin/*
 # strip _pkg/usr/lib/*.so*
 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib

A vous d'installer les utilitaires que vous voulez.

links-2.1pre29 - Navigateur web graphique et texte

Links (links.twibright.com) est un navigateur web proposant un mode texte et un mode graphique, il est traduit dans de multiples langues, dont le français:

 # cd ..
 # wget http://links.twibright.com/download/links-2.1pre28.tar.gz
 # tar xzf links-2.1pre28.tar.gz
 # cd links-2.1pre28
 # ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \
   --without-directfb --without-ssl --enable-graphics --enable-javascript
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip -v _pkg/usr/bin/*
 # cp -v _pkg/usr/bin/* $fs/usr/bin

libs

    libtiff.so.3 => /usr/lib/libtiff.so.3
    libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7ede000)
    libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7eba000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb7ea7000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0xb7dbb000)
    libdl.so.2 => /lib/tls/libdl.so.2 (0xb7db7000)
    libpcre.so.0 => /usr/lib/libpcre.so.0 (0xb7d96000)
    libm.so.6 => /lib/tls/libm.so.6 (0xb7d70000)
    libc.so.6 => /lib/tls/libc.so.6 (0xb7c3e000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0xb7c3b000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7c36000)
    /lib/ld-linux.so.2 (0xb7f5d000)

Génération de l'initramfs, et d'une image ISO

Pour créer une nouvelle image ISO vous pouvez utiliser 'mktaziso' contenu dans SliTaz tools. Ou vous pouvez créer un nouvelle image initramfs, et la copier dans /boot de la racine de cd-rom (rootcd), et pour finir créer un image ISO avec genisoimage:

 # cd $fs
 # find . -print | cpio -o -H newc | gzip -9 > ../rootfs.gz
 # cd ..
 # cp rootfs.gz rootcd/boot
 # genisoimage -R -o slitaz-cooking.iso -b boot/isolinux/isolinux.bin \
   -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
   -V "SliTaz" -boot-info-table rootcd

Suite

La suite logique du cookbook passe par l'installation des bibliothèques GTK décrite dans le chapitre : GTK+ libs.

Copyright © SliTaz - GNU General Public License;
Documentation publiées sous GNU Free Documentation License et codée en xHTML 1.0 valide.