X Window

De Lea Linux
Révision datée du 8 novembre 2005 à 15:43 par Fred (discussion | contributions) (Le Système X Window déplacé vers X Window)
Aller à la navigation Aller à la recherche

Le système X Window

Le système X Window
par Jean-Christophe & Serge
L'interface graphique reine sous Linux.

Normalement vous avez installé Linux avec la partie graphique, mais si vous voulez reconfigurer tout ça ou si cela n'a pas fonctionné du premier coup, et que vous en avez marre du mode texte, on va vous aider à configurer tout ça !

Attention, le système X Window existe dans plusieurs version, certaines libres comme XFree86 (il y a débat sur sa réelle liberté), X.org ou non-libre.

Remarque valable pour XFree86 pour tout l'article : le fichier de configuration de X Window, XF86Config, XF86Config-4 pour la version 4 ou xorg.conf pour X.org, se situe à divers endroits suivant votre distribution (/etc ou /etc/X11 ou ailleurs).

Définitions

Qu’est-ce que X (ou X Window ou X Window System) ?

C’est le sous-système graphique de Linux.

X Window n'est pas seulement un driver pour la carte vidéo, c'est aussi une interface (API) pour les applications, afin qu'elles affichent à l'écran et reçoivent l'entrée du clavier et de la souris.

X est aussi un serveur réseau, c'est à dire qu'il peut également offrir ses services à travers un réseau, ce qui permet d'afficher sur un écran une application qui s'exécute sur une autre machine, même si les deux architectures sont complètement différentes. C'est pourquoi on parle de serveur X pour désigner le sous-système graphique. Le système X Window tourne sur quasiment tous les Unix, et a même été porté sous Windows ou OS/2.
Presque tous les logiciels graphiques sous Linux utilisent X, vous pouvez donc les faire fonctionner à travers un réseau comme décrit ci-dessus.

L'utilisateur n'interagit pas directement avec X, mais plutôt avec ce qu'on appelle des clients X (par opposition au serveur X). Vous utilisez sans doute des clients comme un Gestionnaire de fenêtres (window manager), ou un Environnement de bureau (desktop environnment) comme KDE ou Gnome. Pour vous connecter, peut-être utilisez vous aussi un Display manager, comme KDM ou XDM. Au dessus de ces clients se trouvent les applications.
Le système X Window (ou X Window system, ou X Window, ou encore X) est une marque déposée du X Consortium. Les serveurs X libres distribués avec Linux proviennent du projet XFree86.

Remarque :
En comparaison à Windows,et autres... Dans Windows, tout est compris dans la même boîte, le sous-système graphique, l'interface graphique et des applications de base. De même pour d'autres systemes d'exploitation non-UNIX (rares en cette époque). On ne fait pas facilement la différence entre les composants.
Dans le monde de X, ce sont des composants séparés, qui pris ensemble forment l'interface graphique utilisateur. Cela semble peut-être compliqué, mais cela a un grand avantage : vous pouvez choisir chacun des composants selon votre goût et vous construire l'interface graphique qui vous plaît le plus. c'est ce qui vous permet par exemple, de remplacer le gestionnaire de fenêtre Enlightment par WindowMaker dans l'environnement de bureau Gnome.

Choisir son serveur X (version 3)

En général, lors de l'installation, votre carte vidéo a du être reconnue automatiquement par le programme d'installation, et le bon serveur X a du être installé et configuré pour répondre à vos besoins.
Recommendation 1 : lors de l'installation, dans tous les cas, installez le serveur XF86_SVGA, le VGA16 et aussi celui propre à votre carte (par exemple, XF86_S3 pour une carte à base de chipset S3) s'il existe.
Recommendation 2 : si votre carte fonctionne à la fois avec le serveur SVGA et un serveur accéléré spécifique (par exemple les carte S3, les S3 Virge, etc.) sachez que le serveur spécialement adapté à votre carte est généralement plus rapide.

Il est cependant des cas ou vous devrez/voudrez installer vous-même votre serveur X à la main.

Vous devez alors utiliser le serveur X qui correspond à votre carte graphique. Pour ce faire, vous devez trouver sa marque et son type exact. Regardez dans la documentation livrée avec l'ordinateur, ou contactez la personne qui vous l'a vendu, ou encore si vous le pouvez, ouvrez le boîtier et regardez ce qui est écrit sur la plus grosse puce présente sur la carte vidéo.

Lors de l'installation, si la carte n'est pas reconnue automatiquement, il y a de grandes chances pour que vous la trouviez dans la (longue) liste de cartes proposée par l'installation ou les programme de configuration.

Sinon, vous pouvez encore visiter les pages du projet XFree86 afin de rechercher votre carte dans la liste du matériel supporté. Si vous ne la trouvez pas, vous pouvez demander de l'aide sur les newsgroups ou les listes de distribution (mailing lists) Linux (la [../inscript.php3 liste du site] par exemple !)

Lorsque vous avez trouvé ces renseignements, une page du site XFree vous donne le serveur X à utiliser. Commencez par regarder si ce serveur n'est pas sur le CD de votre distribution, ou bien téléchargez-le depuis un des mirroirs du site XFree (vous devez télécharger un seul fichier dans le répertoire servers, environ 1 à 2 Mo).

Notez que les versions 4 et ses dérivés (X.org) n’ont plus qu’un seul serveur, la carte graphique est gérée par un module spécifique.

Que faire si votre carte graphique n'est pas supportée ?

Avez-vous bien vérifié que c'était le cas ? (regardez bien sur le site du projet XFree86 pour les compatibilités présentes et à venir, n'hésitez pas à demander de l'aide dans usenet ou les listes de diffusion, mais auparavant consultez leur FAQ et messages précédents, votre problème y est peut-être déjà).

Avez-vous visité le site du fabricant de la carte ? Certains commencent à offrir des serveurs X ou des pilotes pour leurs cartes.

Vous pouvez utiliser le mode VGA (640x480 16 couleurs !!!) : pratiquement toutes les cartes supportent ce mode.

Si cela ne vous suffit pas (étonnant non ? :) vous pouvez essayer d'utiliser le frame buffer. C'est une nouvelle fonctionnalité du noyau qui permet d'utiliser les capacités du standard VESA 2, implémenté dans la plupart des cartes vidéo assez récentes.

Enfin, vous pouvez acheter un serveur X commercial qui supporte votre matériel : leur liste de cartes supportée est plus longue et à jour que celle de XFree.

  • Metrolink fournit un serveur assez bon marché,
  • Xi Graphics fournit des serveurs réputés plus rapides, mais plus chers.

Installer un serveur X pour frame buffer

Le mode frame buffer de Linux permet de se passer totalement du mode texte, même lors du boot. Le kernel gère alors directement la carte en mode graphique, ce n'est plus le problème du serveur X.

L'installation de X pour frame buffer n'est pas de tout repos : il faut recompiler le noyau afin d'activer le support frame buffer, puis installer le serveur X pour Frame buffer. De plus, ce serveur est plus lent que le serveur prévu pour votre carte, car il ne peut pas être optimisé (le frame buffer utilise les spécifications du standard VESA 2). Cependant rassurez-vous, la lenteur n'est que relative et il est encore assez rapide. C'est donc la solution de la dernière chance si votre carte vidéo n'est [#carte_non_supportee pas supportée].

Activer le support Frame buffer dans le noyau

Il suffit (!) de compiler le noyau (voir la rubrique [../kernel/kernel.php3 noyau]), en y ajoutant les options nécessaires au Frame buffer :

Menu Code maturity level options
Prompt for development and/or incomplete code/drivers : Y
Menu Console drivers
Video mode selection support : Y
Support for frame buffer devices : Y
VESA VGA graphic console : Y

N'oubliez pas de bien spécifier les autres options du noyau (voir la rubrique [../kernel/kernel.php3 noyau]).

Installer le nouveau noyau

Installez-le suivant les indications de la rubrique [../kernel/kernel.php3 noyau], mais avant de lancer LILO, ajoutez "vga=ask" au début du fichier /etc/lilo.conf. Si vous utilisez LOADLIN, ajoutez vga=ask à la ligne de commande du noyau. Bref, passez au noyau le paramètre vga=ask lors du boot.
Lorsque plus tard, après avoir testé, vous serez décidé pour un mode, vous pourrez entrer directement vga=0x114 par exemple. Au prochain reboot, lorsque le noyau vous demandera quel mode vous souhaitez, entrez l'un des modes ci-dessous.

Table des modes disponibles (extrait de /usr/src/linux/Documentation/fb/vesafb.txt)
| 640x480 800x600 1024x768 1280x1024
----+-------------------------------------
256 | 0x101 0x103 0x105 0x107
32k | 0x110 0x113 0x116 0x119
64k | 0x111 0x114 0x117 0x11A
16M | 0x112 0x115 0x118 0x11B

Installer le serveur X pour frame buffer

Avant d'installer le serveur, vous devez démarrer votre ordinateur en mode texte (passez le paramètre '3' au noyau, par exemple, en tapant 'linux 3' au prompt de LILO).

Vous devez installer le package XFree86-Xvfb :

[root@taz root]# rpm -i /cdrom/Mandrake/RPMS/XFree86-Xvfb-*.rpm

(remplacez le chemin /cdrom/Mandrake/RPMS par celui correspondant à votre distribution).

Vérifiez que le lien /etc/X11/X pointe bien vers Xvfb, sinon faites :

[root@taz root]# rm -f X ; ln -s /usr/X11R6/bin/Xvfb /etc/X11/X

(Sur certaines distributions, ce lien X se trouve dans /usr/X11R6/bin).

Enfin, modifiez votre fichier /etc/X11/XF86Config ou bien utilisez Xconfigurator, xf86config ou un de ses potes pour configurer votre serveur. Vous pouvez vous inspirer de l'exemple ci-dessous :

Section "Files"

  RgbPath  "/usr/X11R6/lib/X11/rgb"
  FontPath "unix/:-1"
EndSection
Section "ServerFlags"
EndSection
Section "Keyboard"
  Protocol  "Standard"
  XkbRules  "xfree86"
  XkbKeymap "xfree86(fr)"
EndSection
Section "Pointer" 
  Protocol "PS/2"     # remplacez par le bon pour votre souris
  Device "/dev/mouse"
  Emulate3Buttons     # enlevez-le suivant votre souris
EndSection
Section "Monitor"
  Identifier  "moniteur"
EndSection
Section "Device"
  Identifier  "carte"
EndSection
Section "Screen"
  Driver "FBDev"
  Device "carte"
  Monitor "moniteur"
  SubSection "Display"
    Modes "default"
  EndSubSection
EndSection

Installation et configuration du serveur X

Tout d'abord, vous devez connaître trois choses :

  • quel serveur X utiliser (voir [#choisir_serveur_X ci-dessus]),
  • quelles sont les fréquences de rafraîchissement horizontales et verticales supportées par votre moniteur (regardez dans sa doc), ou au moins quel est le mode le plus haut supporté (résolution et fréquence),
  • quelles résolutions vous décidez d'utiliser.

A savoir : le serveur X en lui-même est juste un seul exécutable, d'environ 1 à 2 Mo. Si vous changez de carte vidéo par exemple, vous devez juste changer ce fichier, à partir du rpm, et adapter le fichier de configuration XF86Config.

Installation automatique

Ensuite, en tant que root, vous devez lancer l'un des programmes de configuration : Xconfigurator ou XF86Setup ou encore xf86config. Ce programme vous demandera de choisir la carte graphique, puis le moniteur. Si vous ne trouvez pas le moniteur dans la liste, pas de problème : il suffit d'en choisir un dont les fréquences ne dépassent pas celles de votre propre moniteur. Vous pouvez aussi créer un moniteur personnalisé et entrer les fréqunces exactes de votre moniteur.

Attention : ne choisissez pas les fréquences au hasard, car vous risquez d'endommager votre moniteur (surtout si celui-ci est ancien). Si quelquechose se passe mal, ne dites pas que c'est de ma faute !

Pour les écrans LCD (PC portables ou nouveaux écrans plats), c'est différent car pour eux les fréquences de rafraîchissement n'ont aucun sens . Il suffit de choisir quelquechose comme "Generic LCD 1024x768", avec la résolution que votre écran supporte.

Après avoir choisi le moniteur, vous devez sélectionner les modes d'affichage qui seront disponibles (résolution, couleurs). En fonctionnenemt, vous pourrez changer de résolution en tapant Ctrl-Alt + ou Ctrl-Alt -.

Lorsque le programme de configuration de X se termine, il crée le fichier de configuration, en général /etc/X11/XF86Config. Vous pouvez l'éditer à la main, mais vérifiez que X se lance toujours par startx avant de redémarrer votre ordinateur s'il démarre directement sous X ! (en général, tapez "init 3" sur une ligne de commande, puis "startx" pour redémarrer X. Si cela fonctionne, quittez X puis tapez "init 5" pour vous remettre en état normal.)

Installation à la main

L'installation à la main du serveur X consiste soit à :

  • installer le rpm du serveur,
  • installer un .tar.gz contenant l'exécutable du serveur.

Dans le premier cas, le serveur X va aller se mettre tout seul au bon endroit après la commande rpm -Uvh votre_serveur.rpm.
Dans le second cas, décompressez votre archive .tar.gz (ou quelquesoit son format) dans un répertoire temporaire. Cela va créer quelques fichiers : des readme et un gros fichier exécutable (1 à 2 Mo) nommé XF86_*. Déplacez ce fichier dans /usr/X11R6/bin.

Dans les deux cas, vérifiez que le lien /etc/X11/X pointe bien vers le serveur. Si ce n'est pas le cas faites :

[root@taz root]# rm -f /etc/X11/X
[root@taz root]# ln -s /usr/X11R6/bin/XF86_<votre serveur X> /etc/X11/X

Ensuite, vous devez éditer le fichier /etc/X11/XF86Config à la main afin de spécifier les différents modes, les fréquences, le clavier, la souris, etc. Il est bon de partir d'un fichier généré par un programme comme xf86config et de le modifier. Si vous changez juste de carte vidéo, vous pouvez vous inspirer fortement de l'ancien fichier.

Enfin, vous devez vérifier que cela fonctionne : en général, tapez "init 3" sur une ligne de commande, puis "startx" pour redémarrer X. Si cela fonctionne, quittez X puis tapez "init 5" pour vous remettre en état normal (dans le cas ou vous démarrez habituellement directement sous X).

Configuration avec xf86config

(partie écrite par Serge)

On va voir un premier outil de configuration en mode texte, xf86config. Connectez-vous en tant que root, et lancez-le :

[root@taz root]# xf86config

Après un petit message d'information, pressez entrée. Le logiciel va afficher différentes rubriques :

- Mouse protocol
Choisissez votre souris, le plus souvent :

Microsoft compatible : toutes les souris de type série 2 boutons standard série
Mousesystems : la plupart des souris 3 boutons séries
PS/2 : les souris sur port PS/2, quoi :)
Logitech mouse : les anciennes souris série Logitech
Microsoft intellimouse (IMPS/2) : pour les souris à molette

- Do you want to enable ChordMiddle:
Pour activer le bouton du milieu sur les anciennes souris Logitech

- Emulate3Buttons
Pour "émuler" un 3éme button sur les souris 2 boutons en cliquant simultanément sur les 2 boutons.

- Mouse device
Mettez ici le périphérique sur lequel la souris est connecté. En général /dev/mouse.
Si votre souris n'est pas détectée au démarrage de X, vérifiez que dans /dev, vous avez bien un fichier mouse. S'il n'existe pas, vous n'oublierez pas de le créer après la configuration en créant un lien symbolique sur le périphérique de votre souris :

[root@taz root]# ln -s /dev/psaux /dev/mouse

En remplaçant /dev/psaux par :
Port PS2 : /dev/psaux
Port série : /dev/ttySx (ttyS0=COM1 sous DOS, ttyS1=COM2, etc.)

- Do you want to use XKB ?
Je vous conseille tout simplement de répondre Y, ça vous permet d'activer le support clavier suivant votre pays. Autrement vous allez avoir un clavier qwerty sans accent! Validez le message d'information suivant.

- List of preconfigured keymaps
Choix du type de votre clavier (pour les claviers francais, choisir "French encoding"). Valider le message d'information suivant.

- Horyzontal sync rate
Là on commence à rentrer dans les choses techniques. Je vous conseille de tout simplement regarder la notice de votre moniteur pour voir les fréquences qu'il supporte suivant les résolutions. D'une manière générale on a :

Moniteur 14 pouces très vieux Ligne 1 (640*480 60Hz)
Moniteur 14 pouces assez vieux (plus de 4 ans) Essayer la ligne 2 (800*600 56Hz) voire la ligne 4 (1024*768 87Hz)
Moniteur 14 pouces ou 15 pouces récent Ligne 5 (800*600 60Hz), ligne 6 (1024*768 60Hz), ligne 7 (1024*768 70Hz)
Moniteur 17 pouces de plus de 4 ans Ligne 3 (1024*768 87hz)
Moniteur > ou = à 17 pouces ou plus, récent Ligne 7 ou 8 ou 9 ou 10

Commencez TOUJOURS par les choix de fréquences les plus basses possibles. Sur les vieux écrans ATTENTION une trop haute fréquence ou une fréquence non supportée peut griller l'écran et je ne pourrai pas être tenu responsable de tel dégats. Les moniteurs récents sont normalement protégés si une trop hautre fréquence leur est demandée. Soyez tout de même prudents !

- Vertical range
C'est la même chose, mais pour les fréquences verticales :

Moniteur 14 pouces très vieux 50-70
Moniteur 14 pouces assez vieux (plus de 4 ans) 50-70
Moniteur 14 pouces ou 15 pouces récent 50-90
Moniteur 17 pouces de plus de 4 ans 50-70 ou 50-90
Moniteur de 17 pouces ou plus, récent 50-100 ou 50-150

Le mieux est encore de voir avec la notice, avec les mêmes remarques qu'au dessus.

- Identifier , model, vendor:
Mettre le modèle, nom du constructeur, etc. de votre moniteur (Cela n'a pas d'importance, ce sont juste des champs de renseignements).

- Do you want to look at the card database ?
Repondez Y pour choisir votre carte vidéo dans une liste. Tapez [entrée] jusqu'à trouver votre carte ou le chipset, puis entrez le nombre.
Au menu suivant, choisissez 5. Si votre carte n'apparaît pas ou si vous ne connaissez pas son chipset tapez sur Q, et choississez le serveur SVGA.

- Do you want me to set the symbolic link ?
Répondez par Y et encore par Y au menu d'apres.

- Video memory
Choisir en fonction de la mémoire présente sur votre carte vidéo

- Identifier,vendor...
C'est la même chose que pour le moniteur. Vous pourriez tout aussi bien ne rien taper ici.

- RAMDAC
Si vous le connaissez, choisissez-le. Autrement répondez par Q.

- Clokchip
De même, si vous savez pas, tapez [entrée].

- Probeonly
Répondre par Y si votre moniteur est récent, autrement répondre par non. La plupart du temps le serveur X lors de son exécution détecte tout seul les "clock line" valides.

- Mode de résolution couleur
Choisir le menu 5, les modes sont généralement corrects, à moins que votre matériel soit très spécifique.

- Shall I write it to /etc/X11/XF86Config
Répondre par Y afin d'écrire le fichier de configuration.

Ok, maintenant on va tester : lancez "startx". Ca marche ? Bingo !
Essayez de changer de résolution en tapant Ctrl Alt + et Ctrl Alt -.

Ca ne marche pas? Voir plus le chapitre de [pbsx.php3 résolutions de problèmes]...

Copyright

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par J.C. Cardot & S. Tchesmeli le 10/11/1999.

Copyright

Copyright © 10/11/1999, J.C. Cardot & S. Tchesmeli

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike iconCreative Commons Noncommercial
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/