Chapitre 1. Installer le serveur graphique

Table des matières
1. Préliminaires
1.1. Se renseigner sur votre carte graphique
1.2. Comprendre l'accélération 3D sous X
2. Installer et configurer un serveur X
2.1. Installer les packages
2.2. Configurer le serveur X avec debconf
2.3. Recommencer ?
3. Lancer le serveur X
3.1. Installer le bureau et le gestionnaire de fenêtre
3.2. start X !
3.3. Résultat...
3.4. Le fichier de log
3.5. Reconfigurer si nécessaire
4. Peaufiner la configuration du serveur X
4.1. Les sections
4.2. Les polices de caractères
4.3. Les modules
4.4. Le clavier
4.5. La souris
4.6. La carte graphique
4.7. L'écran
4.8. La résolution
4.9. La section ServerLayout
4.10. La section DRI
4.11. FIN...
5. Manipulations de base
5.1. Zapper entre les consoles et le serveur graphique
5.2. Changer de résolution en live

1. Préliminaires

L'installation du serveur graphique n'est pas une étape facile, surtout si vous avez une carte graphique dernier cri ou exotique. Pour que le serveur graphique puisse se lancer, il faut qu'il connaisse les caractéristiques de :

1.1. Se renseigner sur votre carte graphique

La première étapez consiste à se renseigner sur votre carte graphique. Si vous connaissez le modèle exact de votre carte graphique, vous pouvez passer au paragraphe suivant. Sinon, il va falloir partir aux renseignements pour connaître le modèle exact de votre carte graphique. Vous avez trois sources d'informations :

  • la documentation et/ou la facture de votre ordinateur,

  • la commande lspci sous Linux, qui liste les périphériques PCI et AGP. Vous devez avoir un paragraphe qui commence par "VGA compatible controller", et à la suite le nom du modèle de votre carte graphique.

  • si vous avez encore un Windows installé sur votre ordinateur, regardez dans le Gestionnaire de périphériques, dans la section Carte Graphique, pour avoir le nom de votre carte.

1.2. Comprendre l'accélération 3D sous X

Trois cas se présentent :

  • votre carte graphique ne possède pas d'accélération 3D matérielle : vous n'êtes pas concerné par ce paragraphe !

  • vous avez une carte graphique possédant une puce de marque 3Dfx, ATI, Intel i810, Matrox ou SiS : pour tirer parti de leur accélération 3D matérielle, vous devez utiliser le DRM (Direct Rendering Manager) et le DRI (Direct Rendering Infrastructure). DRM est un module du noyau que vous avez dû activer avec en plus une option spécifique à votre type de carte (cf Accélération 3D de la carte graphique). DRI est un module d'XFree qu'il faudra activer lors de la configuration du serveur X.

  • vous avez une carte nVidia TNT / TNT 2 / GeForce / nForce. Vous avez alors le choix entre deux drivers : le driver OpenSource inclus dans XFree, et le driver propriétaire de nVidia. Le driver OpenSource marche très bien mais ne tire pas parti de l'accélération matérielle 3D de la carte, alors que le driver propriétaire sait en tirer parti. Le driver OpenSource ne supporte généralement pas les tous derniers modèles de cartes nVidia.

2. Installer et configurer un serveur X

2.1. Installer les packages

2.1.1. Installation et début de configuration des packages

Installez les packages nécessaires :


# apt-get install x-window-system-core

Il vous pose alors des questions de configuration :

  1. Gérer les droits de lancement du serveur X avec debconf ? ; répondez Oui.

  2. Gérer la configuration du serveur XFree86 4.x avec debconf ? ; répondez Non.

2.1.2. Installer le driver propriétaire nVidia

Si vous souhaitez installer le driver propriétaire nVidia, allez sur le site web de nVidia et cliquez sur Download Drivers, puis sur Linux, FreeBSD and Solaris Drivers, et enfin sur la dernière version des drivers de la section Linux IA32 si vous avez un processeur 32 bits ou Linux AMD64/EM64T si vous avez un processeur AMD 64 bits. Vous arriverez alors sur la page des drivers Linux : téléchargez le fichier NVIDIA-Linux-x86-version.run (tout cela peut même se faire avec w3m en console).

Ensuite, déplacez le fichier que vous venez de télécharger dans le répertoire /usr/local/src/ puis lançez l'installation :


# sh /usr/local/src/NVIDIA-Linux-x86-version.run

Une interface en mode texte s'affiche alors. Après avoir accepté la licence propriétaire des drivers, il dit qu'il ne trouve pas de driver précompilé et propose d'en télécharger un depuis le serveur FTP de nVidia : répondez Non (ils ne font pas de packages Debian pour le driver). Il vous informe ensuite que l'installeur va compiler une nouvelle interface noyau : faites OK... et si tout se passe bien, il dit ensuite : Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86 is now complete ! Faites OK pour quitter l'installeur.

Pour que le module se charge automatiquement au lancement du serveur graphique, créez un fichier /etc/modprobe.d/nvidia contenant :


alias /dev/nvidia* nvidia
alias char-major-195 nvidia

puis exécutez :


# update-modules

Note

A chaque changement de noyau, vous devrez réexécuter sh /usr/local/src/NVIDIA-Linux-x86-version.run.

Autorisez l'utilisateur toto à tirer parti de l'accélération matérielle de la carte :


# adduser toto video

2.2. Configurer le serveur X avec debconf

Vous allez maintenant configurer le serveur X avec debconf : il va vous poser une série de questions puis générer le fichier de configuration de XFree /etc/X11/XF86Config-4 :


# dpkg-reconfigure xserver-xfree86

A la question Gérer la configuration du serveur XFree86 4.x avec debconf ? répondez Oui cette fois.

2.2.1. La carte graphique

  1. Il commence par vous demander de sélectionner le pilote de votre carte graphique. C'est là où il ne faut pas se tromper ! Choisissez le driver supportant votre carte graphique dans la liste qu'il vous propose. Ce n'est pas toujours évident... En fait, chaque driver supporte plusieurs modèles de cartes graphiques, et le nom du driver est généralement le nom du constructeur de la puce graphique, ou un mix entre le nom du constructeur de la puce et le nom du modèle de la carte.

    Par exemple :

    • si vous avez une carte nVidia et que vous voulez utiliser le driver OpenSource, sélectionnez nv,

    • si vous avez une carte nVidia et que vous voulez utiliser le driver propriétaire, sélectionnez nvidia,

    • si vous avez une carte ATI et que vous avez installé la dernière version d'XFree, sélectionnez ati,

    • si vous avez une carte ATI et que vous avez installé la version d'XFree de la Woody, il y a plusieurs drivers possibles selon votre modèle (r128 pour les Rage 128, radeon pour les Radeons, ati ou atimisc pour les autres).

    Note

    Si vous avez une carte graphique non supportée par XFree ou que vous ne trouvez pas le driver qui correspond à votre carte graphique, sélectionnez le driver vesa : il marche avec quasiment toutes les cartes vidéo.

  2. Ensuite, il vous demande un identifiant : on écrit généralement le nom de sa carte graphique.

  3. Entrez l'identifiant du bus de la carte vidéo : si vous n'avez qu'une seule carte vidéo, vous pouvez laisser le champ vide.

  4. Entrez la quantité de mémoire que va utiliser votre carte vidéo : elle est normalement détectée automatiquement, vous pouvez laisser le champ vide.

  5. Utiliser l'interface framebuffer du noyau ? : répondez Non.

2.2.2. Le clavier

  1. Choisir l'ensemble XKB à utiliser : rentrez xfree86.

  2. Veuillez choisir votre type de clavier : en fonction du nombre de touches que vous avez, choisissez pc102 (clavier standard) ou pc105 (clavier standard avec les trois touches Windows en plus).

  3. Choisir la disposition de votre clavier : rentrez fr si vous avez un clavier français.

  4. Sélectionner la variante de votre clavier : laissez le champ vide.

  5. Sélectionner les options de votre clavier : laissez le champ vide également.

2.2.3. La souris

  1. Indiquez le device correspondant à votre souris : avec un noyau 2.6, un seul device rassemble toutes les souris, il s'agit de /dev/input/mice.

  2. Ensuite il vous demande de sélectionner le protocole de la souris. Choisissez :

    • PS/2 si vous avez une souris de base,

    • ImPS/2 si vous avez une souris un peu plus perfectionnée.

  3. Emuler une souris 3 boutons ? Si vous avez une souris 2 boutons, répondez Oui ; si vous avez une souris avec 3 boutons ou plus, répondez Non.

  4. Activer le défilement avec la roulette ? Si vous avez une souris avec roulette, répondez Oui.

2.2.4. L'écran

  1. Commencez par entrer un identifiant pour votre moniteur.

  2. Votre moniteur est-il de type LCD ? Répondez Oui si vous avez un écran plat ou un ordinateur portable, et Non si vous avez un écran classique.

  3. Ensuite viennnent les questions sur les réglages de l'écran. Si vous ne connaissez pas les spécifications techniques de votre écran, choisissez le mode Simple. Si vous choisissez le mode Expert, il faut connaître précisement les caractéristiques de votre écran et notamment les fréquences de rafraîchissement verticales et horizontales (c'est normalement écrit dans le manuel de votre écran).

  4. Choisissez les modes vidéo que vous désirez utiliser pour le serveur X : cochez toutes les résolutions supportées par votre écran ; il choisira la meilleur résolution possible parmi les résolutions sélectionnées (donc a priori la plus élevées de celles que vous avez sélectionnées).

  5. Choisissez la profondeur de couleur par défaut : sauf si vous avez une vieille carte graphique avec une mémoire vidéo limitée, sélectionnez 24 bits.

2.2.5. Les modules

  1. Sélectionnez les modules du serveur XFree86 chargés par défaut : ne modifiez pas la liste, sauf pour trois modules importants qui doivent être chargés ou pas selon les cas (ils concernent tous l'accélération 3D) :

    Tableau 1-1. Les modules XFree pour la 3D

    Type de module \ Nom du moduledriglxGLcore
    Driver nVidia propriétairenonouinon
    Driver nVidia OpenSourcenonouinon
    Cartes 3D avec DRI/DRMouiouioui
    Autres cartesnonnonnon
  2. Mettre une section "Files" de référence dans la configuration ? : répondez Oui.

  3. Mettre une section "DRI" de référence dans la configuration ? : répondez Oui si vous comptez utiliser le DRI.

2.2.6. Fin...

Une fois que debconf a fini sa série de questions, il génère le fichier de configuration du serveur graphique /etc/X11/XF86Config-4.

2.3. Recommencer ?

Si vous vous êtes trompé dans la configuration, vous pouvez recommencer en reconfigurant le package xserver-xfree86 :


# dpkg-reconfigure xserver-xfree86

3. Lancer le serveur X

Pour que le serveur X puisse se lancer, il faut avoir un bureau, ou au minimum un gestionnaire de fenêtre.

3.1. Installer le bureau et le gestionnaire de fenêtre

Installez le bureau KDE:



# apt-get install kde kde-i18n-fr

Il y a beaucoup de dépendances : KDE est une des plus grosses applications de Debian. Il va installer un nombre assez conséquents de packages.

Il faut ensuite spécifier que vous voulez utiliser KDE comme environnement graphique. Pour cela, en tant que simple utilisateur, créez dans votre home un fichier .xsession contenant la commande startkde :


% echo "startkde" > ~/.xsession

3.2. start X !

Maintenant que tout est prêt, vous allez pouvoir lancer le serveur X en tant que simple utilisateur (on ne lance jamais un server graphique en root) avec la commande suivante :


% startx

3.3. Résultat...

Il y a trois scénarios possibles :

  • votre serveur X plante.

  • le serveur X se lance, et vous arrivez dans un beau bureau KDE... mais la souris devient folle dès que vous la bougez. Pour fermer le serveur graphique, utilisez la combinaison de touches Ctrl-Alt-Backspace.

  • le serveur X se lance, et vous arrivez dans un beau bureau KDE avec une souris qui bouge normalement... VICTOIRE ! Vous pouvez passer directement au chapitre suivant Le bureau KDE si vous êtes pressé.

3.4. Le fichier de log

A chaque lancement ou tentative de lancement du serveur X, celui-ci produit un fichier de log /var/log/XFree86.0.log qui contient tous les messages qui ont défilé très vite sur votre écran quand vous avez lancé le serveur graphique et que vous n'avez pas pu lire.

Ce fichier va vous permettre de comprendre les problèmes de votre serveur X et éventuellement de vérifier qu'il marche de façon optimale. Il faut donc en particulier consulter attentivement ce fichier après chaque plantage.

Editez /var/log/XFree86.0.log. Après les messages au début du fichier, vous trouvez des lignes qui commencent par des sigles qui ont leur importance :

  • (**) informe de quelque chose lu dans le fichier de configuration,

  • (==) informe d'un paramètre mis par défaut,

  • (II) correspond à un message d'information,

  • (WW) correspond à un avertissement,

  • (EE) correspond à une erreur.

Vous devez donc vous concentrer tout particulièrement sur les lignes qui commencent par (WW) ou (EE) et essayer de comprendre l'origine du problème. C'est généralement la configuration de la souris ou de la carte graphique qui pose problème. Il ne faut pas trop se préoccuper des messages d'avertissement qui concernent les polices (en anglais fonts) et l'APM, il ne sont jamais à l'origine de plantages ou de problèmes avec la souris !

3.5. Reconfigurer si nécessaire

Une fois que vous avez une petite idée de la cause du mauvais fonctionnement du serveur X, relancez la procédure de configuration :


# dpkg-reconfigure xserver-xfree86

Note

Si vous avez un serveur X qui marche mais une souris folle dès que vous la bougez, vous n'aurez probablement qu'à changer le protocole de la souris.

Puis testez de nouveau le fonctionnement du serveur X :


% startx

Si vous ne parvenez pas à faire marcher votre serveur graphique après plusieurs tentatives infructueuses de lancement et reconfiguration, lisez attentivement la section suivante...

4. Peaufiner la configuration du serveur X

La configuration du serveur X est contenue dans le fichier /etc/X11/XF86Config-4. Vous pouvez éditer ce fichier pour modifier à la main la configuration de votre serveur X.

4.1. Les sections

Le fichier est divisé en plusieurs sections, qui ont des liens entre-elles :

Figure 1-1. Liens entre les sections

Les liens entre les sections sont assurés par des identifiants appelés Identifier. Si vous modifiez un Identifier, n'oubliez pas de le modifier à deux endroits : là où il est défini et là où il est appelé (cf les liens sur le schéma précédent) !

Il existe aussi des sections indépendantes des autres :

  • une section Files qui contient les chemins des polices de caractères,

  • une section optionnelle ServerFlags qui peut contenir un certain nombre d'options,

  • une section Module qui contient la liste des modules à charger,

  • une section DRI qui contient les permissions pour l'utilisation du DRI (Direct Rendering Infrastructure).

Nous vous précisons ci-dessous les paramètres importants dans chaque partie, en suivant l'ordre du fichier :

4.2. Les polices de caractères

La section Files contient les chemins vers les polices de caractères. Supprimez la ligne correspondant au serveur de polices local ainsi que la ligne correspondant aux polices de l'alphabet cyrillic (nous n'avons pas installé les packages correspondants, car nous n'en avons pas besoin). Pour avoir par défaut des polices de 75dpi plutôt que des polices de 100dpi (100dpi est un peu trop gros à mon goût...), mettez les lignes contenant 75dpi avant les lignes contenant 100dpi. La section devient alors :


Section "Files"
        FontPath        "/usr/lib/X11/fonts/misc"
        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/Type1"
        FontPath        "/usr/lib/X11/fonts/Speedo"
        FontPath        "/usr/lib/X11/fonts/75dpi"
        FontPath        "/usr/lib/X11/fonts/100dpi"
EndSection

4.3. Les modules

Normalement, si vous avez suivi mes consignes lors de la configuration avec debconf, vous n'avez pas besoin de modifier la section Modules.

4.4. Le clavier

  • L'option XkbLayout permet de préciser la nationalité du clavier (français, américain, etc...).

  • L'option XkbModel fixe le nombre de touches du clavier (pc102, pc104,...).


Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "keyboard"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xfree86"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "fr"
EndSection

4.5. La souris

Debconf génère deux sections pour la souris :

  • une première section dont l'identifiant est Configured Mouse et qui a une option CorePointer qui désigne la souris principale ;

  • une deuxième section dont l'identifiant est Generic Mouse et qui a une option SendCoreEvents qui désigne une souris d'appoint (par exemple une souris externe sur un ordinateur portable).

Note

Dans le cas où les deux souris sont utilisées en même temps, les mouvements s'additionnent.

Si vous n'avez qu'une seule souris, supprimez la section dont l'identifiant est Generic Mouse et supprimez également la ligne correspondante dans la section ServerLayout.

  • L'option Device définit le périphérique correspondant à la souris.

  • L'option Protocol définit le langage parlé par la souris.

  • L'option Emulate3Buttons doit être activée si vous avez une souris 2 boutons et que vous voulez pouvoir faire du copier-coller sous X quand même (ce sera expliqué au chapitre Les bases de Linux en mode graphique).

  • L'option ZAxisMapping doit être réglée à "4 5" pour faire marcher la roulette si votre souris en as une.

Cela donne par exemple :

  • pour la souris principale :

    
Section "InputDevice"
            Identifier      "Configured Mouse"
            Driver          "mouse"
            Option          "CorePointer"
            Option          "Device"                "/dev/input/mice"
            Option          "Protocol"              "imps/2"
    # Décommentez la ligne suivante si vous avez une souris 2 boutons
    #       Option          "Emulate3Buttons"       "true"
    # Décommentez la ligne suivante si vous avez une roulette
    #       Option          "ZAxisMapping"          "4 5"
    EndSection
    
  • pour la souris d'appoint éventuelle :

    
Section "InputDevice"
            Identifier      "Generic Mouse"
            Driver          "mouse"
            Option          "SendCoreEvents"        "true"
            Option          "Device"                "/dev/input/mouse1"
            Option          "Protocol"              "imps/2"
    # Décommentez la ligne suivante si vous avez une souris 2 boutons
    #       Option          "Emulate3Buttons"       "true"
    # Décommentez la ligne suivante si vous avez une roulette
    #       Option          "ZAxisMapping"          "4 5"
    EndSection
    

4.6. La carte graphique

  • Le paramètre Driver fixe le pilote utilisé par le serveur X pour votre carte graphique. Le nom du driver correspond exactement à la liste présente dans debconf à l'étape de sélection du driver de la carte graphique. Vous trouverez des informations intéressantes à ce sujet dans le répertoire /usr/share/doc/xserver-xfree86.


Section "Device"
        Identifier      "Generic Video Card"
        Driver          "nvidia"
EndSection

4.7. L'écran

  • Le paramètre HorizSync précise la plage des fréquences de synchronisation horizontale en kHz.

  • Le paramètre VertRefresh précise la plage des fréquences de rafraîchissement verticale en Hz.

  • L'option DPMS active l'option d'économie d'énergie si vous avez un écran qui supporte la norme DPMS.

Toutes ces informations techniques sont normalement écrites dans le manuel de l'écran.


Section "Monitor"
        Identifier      "Generic Monitor"
        HorizSync       28-50
        VertRefresh     43-75
        Option          "DPMS"
EndSection

4.8. La résolution

  • Le paramètre Device assure le lien avec la section concernant la carte graphique : il doit être exactement identique aux paramètres Identifier de la section Device.

  • Le paramètre Monitor assure le lien avec la section concernant l'écran : il doit être exactement identique au paramètres Identifier de la section Monitor.

  • Le paramètre DefaultDepth définit sur combien de bits sont codées les couleurs (1 bit = noir et blanc, 8 bits = 256 couleurs, 16 bits = 65536 couleurs, 24 bits = 16 millions). Elle renvoie à une des sous sections suivantes.

Il y a ensuite un certain nombre de sous-sections. Seule la section dont le paramètre Depth est égale au paramètre DefaultDepth est prise en compte par le serveur X.

Les paramètres des sous-sections sont les suivants :

  • Le paramètre Depth définit sur combien de bits sont codées les couleurs.

  • Le paramètre Modes définit une liste de résolutions de l'écran. Le Serveur X va choisir la plus haute résolution possible dans la liste.


Section "Screen"
        Identifier      "Default Screen"
        Device          "Generic Video Card"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           1
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           8
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

4.9. La section ServerLayout

Elle sert principalement à assurer le lien avec d'autres sections :

  • Le paramètre Screen assure le lien avec la section concernant la résolution : il doit être exactement identique au paramètres Identifier de la section Screen.

  • Le paramètre InputDevice assure le lien avec le clavier et la souris : il doit donc être présent deux fois.

  • On peut éventuellement rajouter le paramètre OffTime qui fixe le nombre de minutes d'inactivité au bout duquel un écran DPMS se met en mode d'économie d'énergie. Pour que ça marche, il faut également avoir activé l'option DPMS dans la section Monitor.

Cela donne par exemple :

  • si vous n'avez qu'une seule souris :

    
Section "ServerLayout"
            Identifier      "Default Layout"
            Screen          "Default Screen"
            InputDevice     "Generic Keyboard"
            InputDevice     "Configured Mouse"
            Option          "OffTime"           "20"
    EndSection
    
  • si vous avez une souris principale et une souris d'appoint :

    
Section "ServerLayout"
            Identifier      "Default Layout"
            Screen          "Default Screen"
            InputDevice     "Generic Keyboard"
            InputDevice     "Configured Mouse"
            InputDevice     "Generic Mouse"
            Option          "OffTime"           "20"
    EndSection
    

4.10. La section DRI

Cette section permet de fixer les permissions pour l'utilisation du DRI. Si vous n'utilisez pas le DRI (parce que vous avez une carte nVidia par exemple), alors ne mettez pas cette section dans votre fichier de configuration. Avec la section d'exemple ci-dessous, vous donnez le droit d'utiliser DRI à tous les utilisateurs du système :


Section "DRI"
       Mode    0666
EndSection

4.11. FIN...

Une fois que le fichier de configuration est au point, vous n'avez plus qu'à enregistrer les changements et à relancer le serveur X.

5. Manipulations de base

5.1. Zapper entre les consoles et le serveur graphique

  • Pour passer du serveur graphique à la console numéro X, utilisez la combinaison de touches Ctrl-Alt-FX.

  • Pour passer de la console X à la console Y, utilisez la combinaison habituelle Alt-FY.

  • Pour revenir sur le serveur graphique, utilisez la combinaison de touches Alt-F7.

5.2. Changer de résolution en live

Quand le serveur X se lance, il génère une liste de résolutions valides (i.e. supportées par l'écran) à partir du paramètre Modes de la sous-section active de la section Screen du fichier de configuration. Sous X, vous pouvez changer de résolution sans redémarrer le serveur graphique en utilisant les combinaisons de touches suivantes :

  • Ctrl-Alt- + (du pavé numérique) pour passer à la résolution suivante dans la liste,

  • Ctrl-Alt- - (du pavé numérique) pour revenir à la résolution précédente.