Configurer XFree86
n'est généralement pas compliqué. Cependant si vous utilisez une carte vidéo dont
les pilotes sont en cours de développement, ou que vous désiriez améliorer la performance et la
résolution d'une carte accélératrice, la configuration de XFree86
risque de vous prendre un certain
temps.
Dans ce chapitre nous allons décrire comment créer et éditer le fichier XF86Config
qui configure le
serveur XFree86
. Dans la plupart des cas, il est recommandé de commencer avec un fichier "de base",
utilisant un mode à basse résolution, tel que 640x480
, qui est supporté par toutes les cartes vidéo
et tous les types de moniteurs. Une fois que XFree86
marchera à basse résolution vous pourrez
peaufiner la configuration afin d'exploiter toutes les capacités de votre matériel. L'idée est que
vous saurez que XFree86
peut fonctionner sur votre système, et qu'il n'y a pas d'erreur dans votre
installation avant d'attaquer la tâche plus complexe qu'est la configuration de XFree86
pour un
usage intensif.
En plus de ce document, il est recommandé de lire les documentations suivantes:
XFree86
dans /usr/X11R6/lib/X11/doc
(contenu dans le fichier de
distribution XFree86-3.1-doc
). Vous devez tout particulièrement lire le fichier README.Config
, qui est un tutoriel de la configuration de XFree86.README
leur étant relatif dans un repertoire
fils (tel que README.Cirrus
et README.S3
). Lisez ceux-ci si nécessaire.Le principal fichier de configuration de XFree86
est /usr/X11R6/lib/X11/XF86Config
.
Ce fichier contient les informations relatives à la souris, les paramètres de la carte vidéo,
etc... Le fichier XF86Config.eg
est fourni avec la distribution de XFree86
comme exemple. Copiez ce fichier en XF86Config
et utilisez le comme base de votre configuration.
Le manuel en ligne de XF86Config
détaille le format de ce fichier.
Lisez cette page maintenant si vous ne l'avez déjà fait.
Nous allons maintenant traiter un exemple de fichier XF86Config
, section par section.
Ce fichier peut ne pas avoir exactement le même aspect que le fichier d'exemple fourni dans la
distribution de Xfree86, mais la structure reste la même.
Notez que le format du fichier XF86Config
change à peu près à chaque nouvelle version de XFree86.
Ce qui suit n'est donc valable que pour la version 3.1 de XFree86.
Par ailleurs, vous ne devez pas simplement copier les fichiers présentés ci-dessous et tenter de
les utiliser sur votre système. Une tentative d'utilisation d'un fichier de configuration ne
correspondant pas à votre matériel peut engendrer un pilotage du moniteur à une fréquence trop
élevée pour lui; il a été (et il est encore, malgré ces recommandations) rapporté que des moniteurs
ont été endommagés voire détruits par une utilisation incorrecte d'un fichier XF86Config
. La règle
d'or dans la configuration de XFree86
est: SOYEZ ABSOLUMENT CERTAIN QUE LE FICHIER XF86Config
CORRESPOND A VOTRE MATERIEL AVANT DE L'UTILISER .
Mais ne vous inquiètez pas, respirez profondément~: ceci n'est pas courant~!
Chaque section du fichier XF86Config
est encapsulée entre deux lignes~:
Section "nom de la section"
...
EndSection
La première section du fichier XF86Config
est Files
, et est du style:
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection
La ligne RgbPath
configure le path vers la base des couleurs RGB de X11R6.
Ensuite chaque ligne FontPath
indique le path vers un répertoire contenant des fontes X11.
En général, vous n'avez pas à modifier ces lignes; vérifiez tout simplement qu'il y a un point
d'accès possible dans FontPath
pour chaque type de fontes que vous avez installé (pour chaque
répertoire dans /usr/X11R6/lib/X11/fonts
).
La section suivante est ServerFlags
, qui spécifie plusieurs indicateurs globaux pour le serveur.
Section "ServerFlags"
# Uncomment this to cause a core dump at the spot where a signal is
# received. This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging
# NoTrapSignals
# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
# DontZap
EndSection
Ici, chaque ligne de la section mis en commentaire.
La section suivante est Keyboard
. Je pense que vous aurez compris son rôle.
Section "Keyboard"
Protocol "Standard"
AutoRepeat 500 5
ServerNumLock
EndSection
D'autres options sont disponibles, regardez le fichier XF86Config
si vous désirez modifier la
configuration du clavier. La section ci-dessus devrait fonctionner avec la grande majorité des
claviers.
La section suivante est Pointer
et spécifie les paramètres pour le pilote de souris.
Section "Pointer"
Protocol "MouseSystems"
Device "/dev/mouse"
# Baudrate et SampleRate sont uniquement pour les souris Logitech
# BaudRate 9600
# SampleRate 150
# Emulate3Buttons est une option destinee aux souris Microsoft a 2 boutons
# Emulate3Buttons
# ChordMiddle est une option destinee a certain souris Logitech a 3 boutons
# ChordMiddle
EndSection
Les seules options qui devraient vous concerner sont Protocol
et Device
.
Protocol
spécifie le protocole (ça c'est bizarre!) utiliser par votre souris (pas le fabricant ou
la marque de votre souris, mais le protocole). Les protocoles valides sous Linux sont~:
BusMouse
doit être utilisé pour la souris busmouse
de Logitech
. Par contre, les anciennes souris
Logitech
doivent utiliser le protocol Logitech
, alors que les plus récentes utilisent les
protocoles Microsoft
ou Mouseman
. Ceci est l'un des nombreux cas montrant que le protocole n'a aucun rapport avec le fabricant de la souris.
Device
spécifie le pilote par lequel la souris peut être accessible. Sur la plupart des systèmes
il s'agit de /dev/mouse
. /dev/mouse
est généralement un lien vers le port série approprié (tel que
/dev/cua0
) pour une souris branchée sur le port série COM1, ou vers le pilote busmouse pour les
souris reliées directement au bus. Dans tous les cas, verifiez que le fichier du pilote figurant dans
Device
existe bien.
La section qui vient maintenant est Monitor
, et spécifie les caractéristiques de votre moniteur.
Tout comme certaines autres sections du fichier XF86Config
, il peut exister plus d'une section
Monitor
. Ceci est utile si vous avez plusieurs moniteurs reliés à votre système, ou si vous utilisez
le même fichier XF86Config
sous des configurations matérielles différentes. Dans la plupart des cas, vous n'aurez besoin que d'une seule section Monitor
.
Section "Monitor"
Identifier "CTX 5468 NI"
# Ces valeurs sont uniquement pour les CTX 5468NI !
# Ne les utiliser pas sur d'autres cartes video.
Bandwidth 60
HorizSync 30-38,47-50
VertRefresh 50-90
# Modes: Name dotclock horiz vert
ModeLine "640x480" 25 640 664 760 800 480 491 493 525
ModeLine "800x600" 36 800 824 896 1024 600 601 603 625
ModeLine "1024x768" 65 1024 1088 1200 1328 768 783 789 818
EndSection
La ligne Identifier
permet de spécifier un nom arbitraire à l'entrée Monitor
.
HorizSync
spécifie les fréquences de synchronisation supportées par votre moniteur, en kHz.
Si vous possedez un moniteur multisynchrone, ceci peut être une plage de valeurs (ou plusieurs
plages separées par des virgules), comme ci-dessus.
Si vous possédez un moniteur à fréquence fixe, ce sera alors une liste de valeurs discrètes, du
type:
HorizSync 31.5, 35.2, 37.9, 35.5, 48.95
Le manuel de votre moniteur doit contenir une liste de ces valeurs au chapitre spécifications techniques. Si ces informations ne sont pas disponibles, contactez votre revendeur ou le fabricant de votre moniteur afin de les obtenir.
VertRefresh
spécifie le taux de rafraichissement vertical (ou encore la fréquence de
synchronisation verticale) supportée par votre moniteur, en Hz. Tout comme HorizSync
ce champ
peut être une plage ou une liste de valeurs discrètes; ici encore le manuel de votre moniteur doit
contenir ces paramêtres.
HorizSync
et VertRefresh
sont uniquement utilisées pour vérifier que les résolutions du moniteur
que vous avez donnés sont dans des plages de valeurs valides. Ceci afin de réduire les risques de
destruction de votre moniteur au cas ou vous tenteriez d'utiliser une fréquence pour laquelle il
n'aurait pas été concu.
La directive ModeLine
permet de spécifier une unique résolution pour votre moniteur. Le format de ModeLine
est:
ModeLine nom <horloge> <valeurs pour l'horizontale> <valeurs pour la verticale>
Le nom
est une chaîne arbitraire donnée au type de résolution afin de pouvoir y faire
référence plus simplement dans la section Screen
.
L'horloge
est la fréquence d'horloge (dot-clock) à laquelle on pilote le moniteur
afin de générer les valeurs de la résolution. Celle-ci est spécifié en Mhz, et est le taux auquel la carte
vidéo doit envoyer les signaux de génération des pixels au moniteur pour cette résolution.
Les valeurs pour l'horizontale
et valeurs pour la verticale
sont des ensembles de quatre
nombres décrivant comment doit être générée chaque ligne à l'écran (allumage et extinction du canon à électron,
et tops de synchro horizontals et verticals lors du balayage).
Pour de plus amples renseignements sur ce sujet, je ne saurais trop vous conseiller de lire le Vidéo-HOWTO
.
"Comment déterminer les valeur à utiliser dans Modeline
~?"
Le fichier VideoModes.doc
décrit en détail comment déterminer ces
valeurs pour chaque résolution supportée par votre moniteur.
Mais avant tout, l'horloge doit être une valeur générable par votre carte vidéo.
Dans la distribution de XFree86
, deux fichiers peuvent inclure les données ModeLine
pour votre
moniteur: modeDB.txt
et Monitors
, tous les deux se trouvent dans /usr/X11R6/lib/X11/doc
.
Il est recommandé de commencer avec comme valeurs pour ModeLine
les valeurs par défaut du moniteur
standard VESA, la plupart des moniteurs les acceptant. modeDB.txt
contient les valeurs de timings
standardes pour les résolutions VESA. Dans ce fichier vous trouverez:
# 640x480@60Hz Non-Interlaced mode
# Horizontal Sync = 31.5kHz
# Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
#
# name clock horizontal timing vertical timing flags
"640x480" 25.175 640 664 760 800 480 491 493 525
Ceci est le timing standard VESA pour le mode 640x480
. Le "dot clock" est alors de 25.175, et votre
carte doit être capable d'utiliser ce mode. Pour inclure cette entrée dans le fichier XF86Config
,
vous devez rajouter la ligne:
ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
Remarquez que le "640x480"
est totalement arbitraire. Vous auriez tout aussi bien pu mettre quelque
chose du type "VGA"
ou "moyenne_resolution"
. Par convention, on donne comme nom à la résolution
definie le nom de la résolution standard approchante, afin que les autres lignes du fichier ou
apparait ce mode soient plus compréhensibles.
Pour chaque ModeLine
utilisé, le serveur va vérifier que les spécifications du mode soient bien
incluses dans les plages de valeurs spécifiées par Bandwidth, HorizSync et VertRefresh
. si l'une
des valeurs n'est pas incluse dans la bonne plage, le serveur vous le signalera au démarrage de X.
Le dot clock
utilisé par le mode ne doit pas être plus grand que la valeur utilisée par
Bandwidth
(cependant, dans de nombreux cas il est préférable d'utiliser des modes avec une largeur
de bande (bandwidth
) _légèrement_ plus élevée que ce que le moniteur peut supporter).
Si les valeurs de timings du standard VESA ne marche pas avec votre moniteur (vous ne le saurez
qu'après avoir essayé) alors rabattez vous sur les fichiers modeDB.txt
et Monitors
qui contiennent
les valeurs de plusieurs modes pour certains moniteurs. La méthode de création des lignes ModeLine
reste exactement la même. Faites quand même attention à utiliser des valeurs spécifiques à votre
moniteur. Les moniteurs 14 et 15 pouces supportent généralement mal les trop hautes définitions, et
1024x768
reste une résolution maximale avec des horloges déjà très basses.
Si vous ne trouvez dans ces fichiers aucune haute résolution pour votre moniteur, c'est que votre
moniteur ne peut très probablement pas supporter de telles résolutions.
Si vous êtes malgré tout incapable de trouver des valeurs pour ModeLine
vous permettant d'utiliser
convenablement votre moniteur, vous pouvez suivre les instructions du fichier VideoModes.doc
inclus
dans la distribution de XFree86, et vous permettant de calculer les valeurs de timings à partir des
spécifications se trouvant dans le manuel de votre moniteur. VideoModes.doc
contient aussi le
format de la directive ModeLine
et certains autres aspects plus sanglants du serveur XFree86.
Vérifiez aussi les boutons de réglage de votre moniteur car ils sont souvent la cause de longues recherches d'erreur inexistante.
Dans tous les cas ne lancez pas le serveur X avec dans Modeline
des valeurs ne pouvant être
supportées par votre moniteur. Ceci risquerait d'endommager votre moniteur.
La section suivante de XF86Config
est Device
, qui permet de spécifier les paramètres inhérents à votre carte vidéo. Voici un exemple~:
Section "Device"
Identifier "#9 GXE 64"
# Ensuite rien. Ca viendra plus tard.
EndSection
Cette section définie les propriétés propres à la carte vidéo.
Identifier
est une chaine arbitraire décrivant la carte; vous utiliserez
ce nom afin de faire référence à votre carte un peu plus loin.
Pour l'instant, vous n'avez pas à rajouter autre chose à cette section Device
en dehors de Identifier
. "Mais", me direz-vous, "à quoi ça sert alors cette section là si on n'y met rien dedans ?"
Et bien, c'est parce que nous allons laisser le serveur X chercher lui même les propriétés de votre carte vidéo. Ensuite, nous pourrons rentrer les données dans cette section.
Le serveur XFree86
est capable de rechercher tout seul le type de circuit vidéo, les fréquences d'horloge et la taille de la mémoire vidéo de votre carte.
Cependant, avant de faire ceci, nous devons finir d'écrire le fichier XF86Config
.
Attaquons maintenant la section Screen
, qui permet de spécifier le couple moniteur/carte vidéo
à utiliser pour un serveur.
Section "Screen"
Driver "Accel"
Device "#9 GXE 64"
Monitor "CTX 5468 NI"
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
Virtual 1024 768
EndSubsection
EndSection
La ligne Driver
spécifie le nom du serveur X que vous désirez utiliser.
Les noms possibles pour Driver
sont:
Vérifiez que le /usr/X11R6/bin/X
est bien un lien symbolique vers le serveur que vous utilisez.
La ligne Device
spécifie l'Identifier
que vous avez mis dans la section Device
et qui correspond à la carte vidéo que vous utilisez avec votre serveur. Plus haut nous avons créé
une section Device
avec la ligne~:
Identifier "#9 GXE 64"
Par conséquent, nous utiliserons "#9 GXE 64"
dans la ligne Device
de cette section.
De même, la ligne Monitor
est le nom du moniteur que vous allez utiliser.
Ici "CTX 5468 NI"
est l'Identifier
que vous avez spécifié dans la section Monitor
.
La sous-section Display
, permet de déclarer au serveur X plusieurs propriétés du couple
moniteur/carte vidéo. Le fichier XF86Config
permet de déclarer toutes ces options en détail. La plupart (pour ne pas dire toutes) de ces options sont nullement nécessaires au bon fonctionnement
de votre système.
Les options que vous devez connaître sont~:
Depth
définie le nombre de plans de couleurs ou le nombre de bits par pixel utilisés pour le codage vidéo.
Généralement, Depth
est mis à 8. Pour le serveur VGA16
,
vous devrez mettre Depth
à 4, et pour le serveur monochrome à 1.
Si vous utilisez une carte vidéo accélératrice dotée de suffisamment de mémoire pour pouvoir supporter
un codage sur un plus grand nombre de bits (et donc utiliser plus de couleurs), vous pouvez mettre
Depth
à 16, 24, ou 32. Si vous avez des problèmes en ayant mis Depth
à plus de 8,
repassez à 8 et voyez pour corriger ce problème une fois la configuration de votre serveur plus avancée.Modes
est la liste des noms modes vidéo qui ont été définis à la ligne ModeLine
dans la
section Monitor
. Plus haut nous avons utilisé des ModeLines
nommés "1024x768", "800x600", et "640x480"
. Nous indiquons donc ici~:
Modes "1024x768" "800x600" "640x480"
Le premier mode défini sera le mode par défaut que le serveur XFree86
utilisera au démarrage.
Une fois XFree86
lancé, vous pouvez passer d'un mode à l'autre en utilisant les combinaisons de touches
ctrl-alt-numeric +
et ctrl-alt-numeric -
.
Il serait fort souhaitable que vous configuriez votre serveur XFree86
afin
que vous démarriez à la résolution la plus basse (640x480) et qui a le principal
avantage de fonctionner sur la plupart des systèmes. Une fois lancé, vous pourrez alors tester
et modifier votre fichier XF86Config
pour de plus hautes résolutions.Virtual
définie la taille virtuelle de votre écran de travail (ou bureau).
XFree86
a la possibilité d'utiliser l'ensemble de la mémoire vidéo de votre carte
afin de définir un bureau plus grand que la taille réelle de votre écran.
En déplaçant le curseur de votre souris au delà des bords de votre écran, vous vous déplacerez dans
d'autres parties de votre bureau, accroissant ainsi la place disponible pour travailler (ça ne marche pas
pour jouer~! ;-)
). Ainsi, si vous utilisez le mode 800x600, vous pourrez, par exemple, donner à
Virtual
la résolution maximale supportée par votre carte (une carte avec 1Mo de mémoire vidéo
peut supporter un écran virtuel de 1024x768 avec 8 bits par pixel; une carte avec 2Mo de mémoire vidéo
peut supporter un écran virtuel de 1280x1024 avec 16 bits par pixel).
L'ensemble du bureau ne pas bien sûr visible à l'écran mais vous pourrez l'utiliser entièrement
en vous déplaçant.
Cette possibilité est très intéressante car elle permet d'utiliser l'ensemble de la mémoire
de votre carte vidéo mais reste limitée. Vous pourrez, par contre, définir un véritable écran
virtuel en utilisant certains gestionnaires de fenêtres comme fvwm
.
fvwm
permet de définir un écran virtuel nettement plus grand car il utilise un système
de masquage des fenêtres plutôt qu'un stockage en mémoire vidéo. Afin d'en savoir plus sur
fvwm
, regardez ses manuels en ligne; la plupart des distributions de Linux le fournissent
comme l'un des gestionnaires de fenêtres possibles.ViewPort
permet de définir les coordonnées du coin supérieur-gauche de votre
écran virtuel au démarrage du serveur X. ViewPort 0 0
est généralement utilisé mais
vous pouvez aussi centrer votre écran sur le bureau.De nombreuses autres options existent pour cette section. Comme d'habitude, je vous conseillerais
de lire le manuel de XF86Config
. Dans la pratique, les autres options ne sont que
rarement utilisées.
Chapitre Suivant , Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre