Règler les problèmes d'X Window

De Lea Linux
Révision datée du 20 mai 2014 à 14:10 par Jiel (discussion | contributions) (licence etc)
Aller à la navigation Aller à la recherche


/!\ Cette documentation est obsolète /!\

Régler les problèmes avec X Window

par Jean-Christophe et Serge

La célèbre chasse aux troubles.


Ce chapitre recense les problèmes les plus fréquemment rencontrés avec X Window et des pistes de solutions plus ou moins complètes pour chacun. Bonne chance !

Problèmes et questions

Reconfiguration de X

Si vous avez besoin de reconfigurer X, surtout ne réinstallez pas Linux !

Conseil : sauvegardez dans un coin votre fichier de configuration /etc/X11/XF86Config au cas ou la nouvelle ne fonctionne pas.

Lancez juste l'un des programmes de configuration (Xconfigurator ou XF86Setup ou encore xf86config) depuis une console en tant que root.

Testez votre configuration avant tout redémarrage :

  1. Mettez-vous sur une console libre (CTRL+ALT+Fn ou n est entre 1 et 6)
  2. Connectez-vous en root
  3. Tapez : init 3 pour passer en mode 'TEXTE'
  4. Lancez X Window : startx
  5. Si ça fonctionne, repasser en mode démarrage X Window (si c'est votre mode de démarage par défaut) : init 5 . Sinon corriger le problème jusqu'à ce que cela fonctionne.

Changer la résolution

Il y a de nombreuses façons de changer la résolution d'affichage sous Linux.
D'abord, regardez si votre distribution ne dispose pas d'un outil graphique pour le faire. Par exemple, Mandrake à partir de la version 7 permet de régler la résolution via drakconf à la souris.
Essayez aussi les programmes comme Xconfigurator ou XF86Setup ou encore xf86config, qui vous permettent de régler le fonctionnement de X.

Enfin, vous pouvez le faire à la main, en modifiant le fichier de configuration /etc/X11/XF86Config :
Ouvrez ce fichier dans un éditeur de textes.

Dans la Section "Monitor", vous trouvez des lignes du genre :
# 640x480 @ 60 Hz, 31.5 kHz hsync
Modeline "640x480"Â Â 25.175 640Â 664Â 760Â 800Â Â 480Â 491Â 493Â 525
# 800x600 @ 56 Hz, 35.15 kHz hsync
ModeLine "800x600"Â Â 36Â Â Â Â 800Â 824Â 896 1024Â Â 600Â 601Â 603Â 625
# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsync
Modeline "1024x768"Â 44.9Â 1024 1048 1208 1264Â Â 768Â 776Â 784Â 817 interlace

Ces lignes commencant par Modeline définissent trois résolutions possibles pour ton serveur X ; il y en a plein d'autres... La même résolution peut même être définie plusieurs fois : c'est normal. Au lancement X sélectionne la ligne optimale en fonction des paramètres de la carte vidéo et de l'écran (fréquences).

Dans la Section "Screen", il y a plusieurs définitions de combinaison entre carte vidéo et écran. Il faut trouver celle qui correspond à votre configuration. Une fois cette section trouvée, dans la sous-section Subsection "Display", il y a une ligne du type :

   Modes    "1024x768"

Il suffit de la transformer en :

   Modes    "1280x1024" "1024x768" "800x600"

pour avoir 3 modes vidéo possibles, ou en :

   Modes    "800x600"

pour changer la résolution.

Enregistrez le fichier, relancez le serveur X (par exemple par Ctrl-Alt-BackSpace), afin de disposer du ou des nouveaux modes vidéo possibles que nous venons de définir.

Pour passer d'une résolution à l'autre, il faut taper la combinaison de touches :
[Ctrl] [Alt] [+] et [Ctrl] [Alt] [-]
(avec les touches [+] et [-] du pavé numérique).

Remarque : La ligne virtual présente éventuellement dans la même sous-section permet de définir un bureau virtuel plus grand que l'écran (dans ce cas l'écran défile lorsque la souris arrive sur l'un des bords). La valeur de virtual doit être au minimum la plus grande résolution ; si vous ne voulez pas d'écran virtuel, supprimez cette ligne. Cependant, si vous spécifiez plusieurs résolutions, vous aurez toujours un écran virtuel égal à la plus grande des résolutions.


Réglages manuels dans /etc/X11/XF86Config

(partie écrite par Serge)

Bon, vous en avez assez de démarrer en mode 640x480 en 16 couleurs, avoir à appuyer sur CTRL ALT + pour changer votre résolution, spécifier le nombre de couleur, etc. ? On va régler deux trois trucs à la main. Editez le fichier /etc/X11/XF86Config. Repérez les lignes ressemblant à :

Section "Screen"
 Driver "svga"
 Device "Generic VGA"
 Monitor "My Monitor"
 Subsection "Display"
   Depth 8
     # cette ligne règle le nombre de couleurs
   Modes "640x480" "800x600" "1024x768"
     # et celle-ci les résolutions possibles
   ViewPort 0 0
   Virtual 1024*768
 EndSubsection
EndSection

Si vous n'utilisez qu'un seul mode (1024*768 par exemple), ne laissez que celui-ci dans la ligne Modes. Choisissez aussi le nombre de couleur par défaut que vous voulez utiliser en fixant Depth :

Â

Depth 4 16 couleurs
Depth 8 256 couleurs
Depth 16 65536Â couleurs
Depth 24 16 millions de couleurs sur 24 bits
Depth 32 True color sur 32 bits

Certaines cartes (S3 virge 4Mo par exemple) font du 16 millons de couleurs que sur 24 bits et non pas sur 32 bits.

Le "Virtual" permet de mettre un résolution plus haute que celle de la carte :Â grâce a la souris, on peut alors se déplacer sur les bord de l'écran virtuel et faire scroller l'écran. Si vous ne voulez pas d'écran virtuel, fixez sa valeur à celle de la résolution que vous utilisez.


Changer de carte vidéo

Si vous changez de carte video sur un système ou Linux est déjà installé, vous devrez changer (en général) de serveur X.
Afin de ne pas avoir de mauvaise surprise au démarrage, si votre ordinateur démarre habituellement en mode graphique, après le changement de carte et avant d'avoir mis à jour le serveur X, démarrez-le en mode console. Pour ce faire, passez le paramètre "3" au noyau, ce qui indique au noyau en quel mode (runlevel) il doit démarrer.
Si vous démarrez avec LILO, tapez "linux 3" au boot, si vous démarrez avec LOADLIN, ajoutez "3" à votre ligne de commande, etc.

Enfin, [x.php3#configuration installez et configurez le serveur X]. Il suffit en fait de changer l'exécutable du serveur X (voir la partie 'installation à la main') et de le configurer.

Sous ubuntu, la commande sudo dpkg-reconfigure xserver-xorg si vous êtes sous xorg ) ou dpkg-reconfigure xserver-xfree86 ( si vous êtes encore sous xfree ) est très efficace; elle reconfigure aussi le clavier.



Gestionnaires de fenêtres et Environnements de Bureau

Ou Window Managers et Desktop Environments.
Voir le glossaire, entrée [../docs/glossaire.php3#gestionnaire_fenetres Gestionnaire de fenêtres] ou [../docs/glossaire.php3#environnement_bureau Environnement de bureau].


Changer de Display Manager (xdm, kdm, gdm...)

Ou Bannière de login.
Voir le glossaire, entrée [../docs/glossaire.php3#display_manager Display manager].

Le display manager que vous utilisez est défini dans le fichier /etc/inittab. Dans ce fichier, vous devez avoir une ligne ressemblant à la suivante (en gras ci-dessous) :

[root@taz ~]# less /etc/inittab
 [...]
 # Run xdm in runlevel 5
 # xdm is now a separate service
 x:5:respawn:/etc/X11/prefdm -nodaemon

Ici, le système utilise prefdm comme bannière de login. prefdm est un [../docs/glossaire.php3#lien_symbolique lien symbolique] vers le vrai display manager :

[root@taz ~]# cd /etc/X11/
[root@taz /etc/X11]# ls -l prefdm
lrwxrwxrwx 1 root root  12 nov 18 04:14 prefdm -> /usr/bin/kdm*

Afin de changer de display manager, je vous conseille, si vous n'utilisez pas encore prefdm, de le faire, c'est-à-dire de remplacer la ligne de votre /etc/inittab par la ligne "x:5:respawn:/etc/X11/prefdm -nodaemon", puis de faire pointer prefdm vers le display manager voulu (ici, gdm) :

[root@taz /etc/X11]# whereis gdm
gdm: /usr/bin/gdm
[root@taz /etc/X11]# ln -sf /usr/bin/gdm prefdm
[root@taz /etc/X11]# ls -l prefdm
lrwxrwxrwx 1 root root  12 déc 5 18:51 prefdm -> /usr/bin/gdm*

La même méthode s'applique pour XDM ou n'importe quel autre display manager.


L'image sur le moniteur est trop petite / trop grande / décalée / tordue, etc.

Bon, là c'est (presque) un faux problème : normalement, si vous avez un moniteur pas trop vieux, vous pouvez contrôler l'apparence de l'image (taille & position, géométrie (rotation, pincussion, trapezoid, balanced pincussion, parallélogramme, j'en passe et des meilleures).

Si vous n'avez pas de chance, vous avez l'ignoble (et je pèse mes mots) "win-moniteur" Philips qui ne peut être réglé que par un logiciel sous Windows.

Enfin, vous pouvez utiliser le programme xvidtune, qui permet de modifier légèrement la position et la taille de l'image sur l'écran. Attention, c'est un outil avancé, qui modifie les 'timings vidéo' et les fréquences. Pour les vieux écrans à fréquence fixée, il peut en outre être dangereux. Par contre, sur les moniteurs pas trop vieux qui acceptent des plages de fréquences, c'est un outil qui peut s'avérer utile.


KDE ne fonctionne plus correctement

(partie écrite par Fred)

  • La variable $KDEDIR n'existe plus ou désigne un autre répertoire que celui de l'installation de KDE


Pour une raison ou une autre, les fichiers .bashrc et consorts ont été modifiés (voir en particulier les fichiers de /etc/profile.d/) et $KDEDIR n'existe plus ou est fausse. Pour le savoir : [user@becane home]$ echo $KDEDIR
/usr Si KDE est installé dans /usr tout va bien, votre problème est ailleurs, si KDE est installé ailleurs ou si aucune valeur est renvoyée, il faut modifier la variable KDEDIR par une commande du type : [user@becane home]$ export KDEDIR=/usr si kde est installé dans /usr/bin (c'est l'option par défaut avec la Mandrake). Si ça règle votre problème, il faut modifier vos fichiers de configuration (par exemple /etc/bashrc, /etc/profile, etc...) de façon que cette variable soit fixée.
Â

  • Vos fichiers de démarrage de KDE sont corrompus


Le problème est de savoir lequel. Une méthode pénible est de déplacer le répertoire ~/.kde vers ~/kde.bak et de redémarrer KDE, puis de refaire la configuration à la main. Vous pouves aussi copier depuis ~/kde.bak vers ~/.kde les fichiers de configuration dont vous êtes sûr qu'ils n'empêchent pas KDE de démarrer correctement.
Â

  • Vous avez un problème avec les types mime


Déplacez le répertoire ~/.kde/share/mimelnk et redémarrez KDE. Puis copiez un par un les mimelnk pour trouver le fautif.

  • à compléter.

Impossible de démarrer X

  • Je n'ai pas l'écran de connexion, et l'écran clignote. Que faire ?

Ce problème arrive fréquemment si vous avez modifié la configuration de X, essayé d'ajouter des fontes ou modifié la configuration du serveur de fontes xfs, ceci sans tester que X démarrait toujours avant de rebouter votre ordinateur. Bon, pour une raison ou une autre, X refuse de démarrer. Et si votre PC démarre habituellement en mode graphique, l'écran est noir et n'arrête pas de clignoter (voire il émet des claquements), et vous ne pouvez rien faire. Nous allons essayer de résoudre le problème. D'abord, nous allons devoir redémarrer en mode texte (runlevel 3) afin de pouvoir faire quelquechose. Pour rebouter proprement, pressez Ctrl-Alt-Suppr. Vous allez alors voir la procédure habituelle d'arrêt.
Pour démarrer en runlevel 3, il faut passer au noyau le paramètre "3", ce qui indique au noyau en quel mode (runlevel) il doit démarrer.
Si vous démarrez avec LILO, tapez "linux 3" au boot, si vous démarrez avec LOADLIN, ajoutez "3" à votre ligne de commande, etc. Ensuite, connectez vous en tant qu'un utilisateur normal (appelons le user), et démarrez X à la main pour voir ce qui ne va pas :

[user@taz user]$ startx > startx.log 2>&1
La suite de la ligne de commande après le startx fait que toutes les sorties écran ont été redirigées vers le fichier startx.log. Ce fichier contient tous les messages habituels de démarrage, plus les erreurs. 

Vous pouvez le consulter avec la commande :

[user@taz user]$ more startx.log
([Espace] pour avancer d'une page, [B] pour revenir en arrière, [Q] pour quitter). 
Les messages présents dans ce fichier devraient vous indiquer la cause du problème, et vous pourrez la résoudre. S'il y a un problème avec le 'font server' ou un problème de 'font path "unix/:-1"', il est probable que vous avez un problème avec votre serveur de fontes. Reportez-vous à la [#serveur_fontes rubrique correspondante]. Sinon, vérifiez que vous avez le bon serveur X, essayez de vous rappeler ce que vous avez changé auparavant, et lisez attentivement le fichier généré pour voir ce qui ne va pas.
  • Un autre problème qui peut arriver : vous avez l'écran de connexion, vous tapez votre nom d'utilisateur et votre mot de passe, mais l'écran s'efface, puis vous revenez à l'écran de connexion.


Comme expliqué dans le glossaire, lorsque vous lancez votre ordinateur sous Linux, si vous avez choisi le mode de démarrage graphique, vous arrivez sous X sur un écran vous permettant de saisir votre username et votre mot de passe. C'est le display manager, ou DM. Le DM de base s'appelle XDM ou X Display Manager. Il est livré avec le serveur X. KDE ou Gnome proposent leurs propres DM, respectivement KDM et GDM, qui ont le même look que l'environnement d'où ils sont tirés. Lorsque vous vous connectez, le DM "disparaît" (laisse le controle du terminal tty7 à un programme particulier défini dans /etc/X11/xdm/Xsession serait plus précis) pour laisser la place à un gestionnaire de fenêtre (fvwm2, etc.) ou à un environnement de bureau (Gnome, KDE...). Lorsque vous quitterez ce client X, le système redémarrera le DM (le DM reprendra la main, en fait il n'a jamais disparu, puisque on peut se connecter plusieurs fois, via ce DM, à cette machine par le réseau avec par exemple X -indirect <MACHINE>) et vous vous retrouvez à l'écran de connexion. Vous commencez à voir ce qui cloche ? Vraisemblablement, votre gestionnaire de fenêtre ou votre environnement de bureau est mal configuré, et s'arrête tout de suite, sans même afficher une boîte de dialogue. (Cela arrive souvent quand vous avez un installez un window manager dans un répertoire qui n'est pas dans le PATH.) Le display manager redémarre alors tout de suite. Essayez alors de vous connecter en changeant d'environnement. Si vous utilisez KDM choisissez failsafe comme mode de connexion, et lancer votre environnement habituel à la main : startkde pour KDE, gnome-session pour Gnome, enlightenment pour enlightenment. Observer en particulier si les chemins sont valides. Si vous n'utilisez pas KDM, changez le programme de démarrage de manière que celui-ci soit xterm (c'est ce que fait le mode failsafe de KDM) cela vous permettra de lancer tous les programmes que vous souhaitez pour résoudre le problème. Attention : dans les deux cas vous n'avez, au début, pas de gestionnaire de fenetre, ce qui vous oblige à faire attention aux positions des fenetres à la main, et faites attention à mettre le curseur de la souris dans la fenetre dans laquelle vous souhaitez taper. Si cela ne fonctionne pas, passez sur une console texte (Ctrl-Alt-F2 par exemple), puis connectez vous en tant que simple utilisateur. Lancez ensuite à la main "startx" : l'environnement graphique va se lancer, puis devrait s'arrêter. Vous verrez alors dans votre console texte les messages d'erreur relatifs au problème qui vous occupe. Pour voir l'ensemble des messages affichés par startx, vous pouvez taper :

[root@taz root]# startx > startx.log 2>&1
puis consulter le fichier startx.log qui contiendra tout ce qui s'affiche normalement à l'écran. 

Note: si le DM est chargé, ce qui précéde ne fonctionnera pas tant que vous l'aurez pas déchargé. La méthode la plus simple est de se connecter en tant que superutilisteur sur une console texte et de passer en runlevel 3 par :

[root@taz root]# init 3
Vous pouvez aussi essayez de démarrer le display manager en enregistrant les messages qu'il produit : 
[root@taz root]# /etc/X11/prefdm -nodaemon > prefdm.log 2>&1
Le fichier prefdm.log contient tous les messages, normaux et d'erreur. Essayez ensuite de vous connecter, puis quittez le display manager et regardez le fichier prefdm.log afin de diagnostiquer l'erreur. 

Quand vous réglez le problème, repassez en runlevel 5 (init 5). Note : prefdm représente votre display manager préféré, prefdm a été introduit avec les distributions RedHat 6.0 / Mandrake 6.0. Dans d'autres distributions, vous pourrez avoir besoin de remplacer /etc/X11/prefdm par votre display manager (xdm, kdm, gdm, etc...), peut-être avec son chemin d'accès (exemple : /usr/X11R6/bin/xdm ou /usr/bin/kdm).

  • Vous venez d'installer XFree86 4.0 via les rpms XFree86*-4.0-6mdk.i586.rpm (disponibles sur rufus.w3.org)


Il y a un petit problème, après avoir lancé xf86config pour configurer le nouvel XFree86 tout neuf, le lien /etc/X11/X ne pointe pas vers /usr/X11R6/bin/XFree86, donc créez le ! Modifier aussi le fichier /etc/X11/XF86Config en décommantant la ligne Load "glx" pour que le support de OpenGL soit correctement pris en compte ! A propos d'OpenGL, les binaires XFree86-4.0 n'inclu pas libGLU.so.* il faut les trouver dans Mesa-3.2 (aussi sur rufus) attention vous aurez un problème avec libGL.so.* qui est présent dans les deux rpm, utilisez --force --nodeps pour forcer l'installation de Mesa en premier - pour que le libGL soit celui de XFree86-4.0 !)


Problèmes de fontes : le serveur de fontes (xfs)

Les distributions actuelles (à partir de RedHat 6.0, Mandrake 6.0) utilisent par défaut un serveur de fontes : xfs. En fait, vous n'êtes pas obligés d'avoir un serveur de fontes : X sait très bien se débrouiller tout seul pour un certain nombre de fontes. Cependant, l'utilisation d'un serveur de fontes améliore un certain nombre de choses, dont la qualité de l'affichage des fontes, et la gestion des fontes True Type.

Mais qu'est-ce que le serveur de fontes ? C'est un programme à qui X s'adresse pour calculer l'image des fontes demandée par les clients X (les applications tournant sous X). Le serveur de fontes, comme les programmes sous X, bénéficie d'une interface réseau : sur votre réseau, il suffit de faire tourner un seul serveur de fontes sur un seul ordinateur, les autres pouvant s'en servir comme point central pour récupérer les fontes.

Configuration de X pour utiliser le serveur de fontes :

Il suffit de modifier le fichier /etc/X11/XF86Config, et d'ajouter une ligne FontPath dans la section Files.
Par exemple :

Section "Files"
   RgbPath    "/usr/X11R6/lib/X11/rgb"
   FontPath   "unix/:-1" EndSection

Note : il peut etre plus judicieux de faire en sorte que le port de communication entre le serveur X et xfs ne soit pas -1 mais plutot 7100 (et suivant) en modifiant le script /etc/rc.d/init.d/xfs de façon que les lignes :
xfs -port -1 soient remplacées par xfs -port 7100. Ce qui permet d'utiliser, dans un réseau, un seul serveur de police sur une seule machine ([#execution_distante voir plus bas]).

L'installation par défaut de RedHat ou Mandrake laisse juste une ligne FontPath pointant vers le serveur de fontes, comme ci-dessus. Néanmoins, s'il arrive quelquechose au serveur de fontes (par exemple si à cause d'une mauvaise configuration, il refuse de démarrer au boot), X ne pourra pas démarrer, ce qui pourra conduire à l'impossibilité de se connecter à votre ordinateur (voir [#inpossible_demarrer ci-dessus]). Aussi, il peut être bon d'ajouter un ou deux FontPaths après celui du serveur, afin que X démarre même si xfs est tombé, comme ci-dessous :

Section "Files"
  RgbPath   "/usr/X11R6/lib/X11/rgb"
  FontPath  "unix/:-1"
  FontPath  "/usr/X11R6/lib/X11/fonts/75dpi/"
  FontPath  "/usr/X11R6/lib/X11/fonts/misc/"
EndSection

Attention, n'ajoutez pas de FontPath pointant vers un répertoire de fontes True Type : X est incapable de les gérer seul, sans serveur de fontes (voir ci-dessous pour [#inserer_fontes installer les fontes True Type]).


Problèmes de fontes : installer/ajouter des fontes True Type

Préliminaire : vous avez le [#serveur_fontes serveur de fontes] xfs qui est installé. Les distributions RedHat et Mandrake à partir de leur version 6.0 l'incluent, vérifiez si vous l'avez installé (rpm -qa | grep xfs par exemple). Sinon, installez le package rpm correspondant (rpm -Uvh xfs-*.rpm). Une autre méthode consiste à utiliser un deuxième serveur de fontes, xfstt, à essayer si ce qui suit ne fonctionne pas chez vous (voir [#xfstt plus bas]).

Regardons d'abord si un endroit est déjà prévu pour les fontes True Type :

[root@taz root]# chkfontpath --list

ou encore, regardez le contenu du fichier de configuration du serveur de fontes :

[root@taz root]# more /etc/X11/fs/config

Vous devriez voir un chemin avec le mot TrueType ou ttf dedans ou... Par exemple /usr/share/fonts/TrueType ou /usr/X11R6/lib/X11/fonts/ttfonts.
Â

  • Créer un répertoire :


Bien que vous puissiez ajouter les fontes True Type directement dans l'un des répertoire cités ci-dessus, je vous recommande de créer un autre répertoire pour vos propres fontes. C'est souvent nécessaire parce que quelques fontes du répertoire ttfonts peuvent être cassées et entraîner un fichier font.dir corrompu si utilisé avec 'ttmkfdir' et 'mkfontdir'. Par exemple :

[root@taz root]# mkdir /usr/X11R6/lib/X11/fonts/userttfonts
[root@taz root]# cd /usr/X11R6/lib/X11/fonts/userttfonts
Mettez-lui les mêmes permissions que les autres répertoires de fontes (avec chmod, voir rubrique [../admin/permissions.php3 permissions]). 
Â
  • Copier les fontes dans le répertoire :


Une fois là, vous pouvez soit copier les fontes dans ce répertoire, soit simplement placer dans ce répertoire des liens symboliques vers des fontes se trouvant ailleurs. Supposons par exemple que vous souhaitiez récupérer les fontes présentes dans votre Windows 95, dont la partition est montée dans /dosc.
Pour les copier faites :

[root@taz userttfonts]# cp /dosc/windows/fonts/*.ttf .
ou bien, faites juste des liens dessus (vous économiserez de la place, mais vous devez vous assurer que la partition /dosc est montée en permanence) : 
[root@taz userttfonts]# ln -s /dosc/windows/fonts/*.ttf .
Remarque : assurez-vous que les noms des fichiers copiés ou des liens soient en minuscules. 
Â
  • Ajouter le répertoire à la liste des répertoires de fontes :


soit en éditant le fichier de configuration du serveur de fontes, soit en tapant :

[root@taz userttfonts]# Â Â  chkfontpath --add /usr/X11R6/lib/X11/fonts/userttfonts


Â

  • Faire prendre en compte les fontes par le serveur :


Il vous reste juste à enregistrer les fontes dans le serveur, c'est à dire de créer le fichier fonts.dir, puis de relancer le serveur de fontes par les commandes (dans /usr/X11R6/lib/X11/fonts/userttfonts) :

[root@taz userttfonts]# ttmkfdir > fonts.scale
La commande précédente crée le fichier fonts.scale, dont va se servir mkfontdir pour créer le fichier fonts.dir : 
[root@taz userttfonts]# mkfontdir
Remarque : 

Chez moi, j'utilise parfois un autre programme : mkttfdir qui reconnait parfois plus de fontes, parfois moins, ou d'autres fontes... Bref, vous pouvez l'essayer. mkttfdir provient du package perlftlib (si vous ne l'avez pas sur le CD de votre distrib, cherchez-le par exemple sur rufus.w3.org). Comme je disais, mkttfdir ne reconnaît pas toutes les fontes TrueType. Si c'est votre cas, éditez le fichier fonts.dir dans votre éditeur de texte préféré, et copiez une ligne quelconque en l'adaptant à la fonte que mkttfdir n'a pas vue ; ajoutez aussi 1 au nombre qui se trouve sur la première ligne. Pour utiliser mkttfdir et créer le fichier fonts.dir, remplacez les deux commandes précédentes par :

[root@taz userttfonts]# mkttfdir
  • Afin que les fontes soient disponibles tout de suite (et non après redémarrage), vous devez demander au serveur X de relire la liste des fontes. Pour ce faire, l'utilisateur actuellement connecté sous X doit taper dans une console :
[user@taz user]$ xset fp rehash
ou bien, redémarrez X (par l'appui simultané de [Ctrl]-[Alt]-[Backspace]). 

Avant de redémarrer, lisez la [#note_X note] ci-dessous, cela pourra vous épargner bien des problèmes. Attention : pour tourner, X a besoin d'un minimum de fontes. Si votre nouvelle configuration les lui supprime, que vous ayez accidentellement supprimé un répertoire de fontes, ou que le serveur de fontes ne redémarre pas, je vous conseille de modifier le fichier de configuration de X afin de lui permettre d'utiliser certaines fontes, même sans serveur de fontes, et de pendre certaines précautions :
Â

  • Dans le fichier /etc/X11/XF86Config ajoutez quelques répertoires de fontes après le FontPath du serveur de fontes "unix/:-1" :
Section "Files"
   RgbPath    "/usr/X11R6/lib/X11/rgb"
   FontPath   "unix/:-1"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc/"    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/" EndSection
Attention, n'ajoutez pas de FontPath pointant vers un répertoire de fontes True Type : X est incapable de les gérer seul, sans serveur de fontes. 
Â
  • Dans le fichier de configuration du serveur de fontes (/etc/X11/fs/config), ajoutez après le chemin des fontes True Type, le chemin des fontes "normales", dont /usr/X11R6/lib/X11/fonts/misc/, etc.
  • Enfin, après avoir redémarré le serveur de fontes, vérifiez que tout s'est bien passé :
[root@taz userttfonts]# /etc/rc.d/init.d/xfs restart
[root@taz userttfonts]# /etc/rc.d/init.d/xfs status
Si xfs ne toune pas, corrigez les erreurs ou bien revenez en arrière, et relancez-le puis vérifiez son statut, jusqu'à ce que celui-ci soit bon. 
Ces précautions vous épargnerons bien des problèmes par la suite ([#inpossible_demarrer impossible de démarrer], etc.).


Solution alternative : utiliser xfstt
xfstt est un autre serveur de fontes, qui reconnaît nativement les fontes true type. Plutôt que de modifier la config de xfs, vous pouvez faire cohabiter les deux serveurs de fontes sans problème, et utiliser xfstt pour les fontes true type.

Pour trouver ce serveur, allez par exemple le chercher sur freshmeat ou rufus, puis installez-le.

De la même manière que ci-dessus, copiez (ou liez) vos fontes true type dans /usr/share/fontes/truetype (répertoire par défaut de xfstt, qui peut être modifié), puis dans ce répertoire, faire :

[root@taz truetype]# xfstt --sync

Enfin, dans /etc/X11/XF86Config (Redhat et compatibles) ou /etc/XF86Config (Slackware), ajoutez un FontPath du type :

FontPath "unix/:7101"

et dans un script de démarrage (/etc/rc.d/rc.local par exemple) placer la ligne ci-dessous :

xfstt &

A partir de là, pour faire prendre les fontes en compte, soit vous redémarrez simplement (beurk), soit : 1. dans une console texte, en root, vous lancez "xfstt &", 2. vous redémarrez X par [Ctrl]-[Alt]-[Backspace].


Problèmes de lenteur de X

Deux causes principales peuvent rendre X Window très lent :
Â

  1. Pas assez de mémoire : le système swappe comme un fou
    Les applications graphiques sont assez gourmandes en mémoire. Si vous n'avez que peu de mémoire vive (32 Mo est le minimum minimorum conseillé), le système va swapper constamment (le disque dur "gratte") et être très (trop) lent :(
    La seule solution consiste soit à ajouter de la mémoire, soit à utiliser des applications moins gourmandes en mémoire (KDE est gourmand, sur une petite configuration, vous pouvez le remplacer avec bonheur par Window Maker par exemple).
  2. Réseau mal configuré
    Sous Linux tout est basé sur le réseau, X ne déroge pas à la règle et se sert aussi de la configuration réseau de la machine.
    Les lenteurs de ce style sont souvent dues à un réseau mal configuré (même si vous n'avez pas de carte réseau, la couche réseau existe et est configurée de façon minimale) : par exemple un gateway (routeur) ou un nameserver (serveur de noms, DNS) inexistants, etc.
    La solution consiste à vérifier tous les paramètres réseau, notamment ceux donnés lors de l'installation. Regardez le contenu de /etc/resolv.conf, des fichiers de config réseau dans /etc/sysconfig (distribs RedHat ou Mandrake par exemple), ou des scrips de démarrage dans /etc/rc.d à la partie traitant de la mise en route du réseau...

Utilisation d'un poste comme terminal X

(partie écrite par Fred)

Supposons que vous ayez deux (ou plus) postes Linux correctement configurés pour le réseau et pour X et que l'un des postes ne dispose que d'un petit disque dur, de peu de RAM d'un processeur très ancien... bref c'est un sassefépu, et l'autre c'est un poste dernier cri (un Pentium IV - 50 Gigahertz 50 Go de ram, 50 To de disque dur...), il peut être intéressant de ce connecter depuis le "petit" poste vers le "gros" (se seront les noms réseau que je vais utiliser) comme si on était toujours sur le gros ! En effet, le petit poste ne gèrera alors plus que l'affichage, et profitera de la rapidité du gros. La solution : éditer le fichier /etc/inittab du "petit" et transformer la ligne :

x:5:respawn:/etc/X11/prefdm -nodaemon

en :

x:5:respawn:/etc/X11/X -query gros

puis de redémarrer votre "petit" poste. Attention le "gros" poste doit être disponible, sinon vous allez voir l'écran de votre "petit" poste clignoter et faire des bruits suspects jusqu'a ce que vous vous décidiez à abréger ses tourments.

Un problème va rapidement apparaître : sur votre "gros" poste vous avez installé 200 000 polices de caractères et seulement 10 sur le "petit" poste et vous n'en voyez donc que 10 depuis n'importe quelle application utilisée depuis le "petit" poste meme si elle s'exécute sur le "gros" ! C'est pas sympa !
La solution numéro un, est d'installer toutes vos polices sur le "petit", c'est pénible, et si vous avez 200 "petits" postes ce n'est pas une solution envisageable si vous souhaitez pouvoir ajouter des polices régulièrement !
La meilleure solution est fournie par X soi-même : le serveur de polices xfs ! Il faut démarrer le serveur de police sur le "gros" et n'utiliser que ce chemin - gardez quand même les chemins des polices nécessaires au fonctionnement de X - pour vos polices en faisant attention que le port de communication de xfs ne soit pas -1 (ce port ne peut être utilisé qu'en local !) prendre comme port, par exemple, 7100 (et suivants). Et utiliser, pour tous les petits postes le serveur de polices du "gros", (pour information le chemin à utiliser est tcp/gros:7100)

Sur une distribution Mandrake, le démarrage du serveur de police est assuré par le script /etc/rc.d/init.d/xfs. Mais le port utilisé est -1 ! Il suffit de le changer en 7100, de modifier /etc/XF86Config (remplacer Fontpath "unix:-1" par Fontpath "tcp/gros:7100" ) pour refléter ce changement et de redémarrer le serveur de polices et X sur le gros. Ne pas oublier, sur les "petits" postes de ne pas démarrer le serveur de police : ça occupe inutilement le CPU des petits postes.

Si vous avez plusieurs "gros" postes, la configuration est la même. Mais pour les petits, il est intéressant de pouvoir choisir sur quel "gros" se logguer, la solution : remplacer /etc/X11/X -query gros par /etc/X11/X -indirect gros sur les "petits" /etc/inittab. A noter, lors du choix de la machine sur laquelle se logguer, on peut voir la charge de celle-ci, cela peut aider à faire son choix.



@ Retour à la rubrique Environnement graphique

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

© 10/11/1999 Jean-Christophe Cardot et Serge Tschesmeli

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 4.0 :
https://creativecommons.org/licenses/by-sa/4.0/