Il y a quelques principes fondamentaux qu'il vous faut comprendre avant de bricoler une entrée dans le fichier XF86config. Ceux-ci sont :
La fréquence de synchronisation horizontale représente simplement le nombre de fois par seconde que l'écran peut parcourir une ligne horizontale ; c'est, de toutes, la valeur la plus importante concernant votre moniteur. La fréquence de synchronisation verticale représente le nombre de fois par seconde que le moniteur peut déplacer le faisceau verticalement.
Les fréquences de synchronisation seront généralement fournies à la page "spécifications techniques" du manuel de votre moniteur. La fréquence de synchronisation verticale est typiquement exprimée en Hz (cycles par seconde), la valeur horizontale en kHz (kilo-cycles par seconde). Les plages de valeurs se situent habituellement entre 50 et 150 Hz verticalement, et entre 31 et 135 kHz horizontalement.
Si vous avez un moniteur dit multi-fréquences (multisync), ces fréquences seront données sous forme de plages. Certains moniteurs, spécialement les modèles bas de gamme, ne supportent qu'une série de fréquences fixes. Ceux-ci peuvent aussi être configurés, mais votre marge de manoeuvre sera sérieusement limitée par les caractéristiques physiques du moniteur. Choisissez la plus haute paire de fréquences pour obtenir la meilleure résolution. Et soyez prudents --- essayer de piloter un moniteur dont les fréquences sont fixes à une fréquence supérieure à celle pour laquelle il a été conçu peut aisément l'endommager.
Des versions précédentes de ce guide traitaient de façon fort légère l'utilisation de moniteurs multi-fréquences en surcapacité, les poussant au-delà du maximum nominal de leur fréquence de synchronisation verticale dans le but d'obtenir de meilleures performances. D'autres arguments ont depuis lors été portés à notre connaissance, incitant à la prudence en ce domaine ; nous reviendrons sur ce sujet dans la section Usage du moniteur en surcapacité ci-dessous.
La page des spécifications techniques du votre manuel de votre moniteur devrait mentionner sa bande passante. Si ce n'est pas le cas, jetez un oeil à la résolution maximale annoncée pour le moniteur. En première approximation, voici une table de conversion de résolution en estimation de bande passante (il s'agit donc de limites supérieures approximatives pour la fréquence pilote (dot clock) que vous pouvez utiliser) :
640x480 25
800x600 36
1024x768 65
1024x768 interlaced 45
1280x1024 110
1600x1200 185
Au demeurant, cette table n'a rien de magique ; ces valeurs sont simplement les fréquences pilotes les plus basses par résolution dans la base de données des modes standard XFree86 (exception faite de la dernière, que j'ai extrapolée). La bande passante de votre moniteur peut en réalité être plus élevée que le minimum requis pour sa résolution maximale, aussi ne craignez pas d'essayer une fréquence pilote de quelques MHz supérieure.
Notez aussi que la bande passante doit rarement être prise en ligne de compte aux fréquences pilotes inférieures à 65 MHz environ. Avec une carte SVGA et la plupart des moniteurs haute résolution, vous ne pourrez même pas approcher la limite de la bande passante de votre moniteur. En voici quelques exemples :
Marque Bande passante vidéo
------ --------------------
NEC 4D 75 Mhz
Nano 907a 50 Mhz
Nano 9080i 60 Mhz
Mitsubishi HL6615 110 Mhz
Mitsubishi Diamond Scan 100 Mhz
IDEK MF-5117 65 Mhz
IOCOMM Thinksync-17 CM-7126 136 Mhz
HP D1188A 100 Mhz
Philips SC-17AS 110 Mhz
Swan SW617 85 Mhz
Viewsonic 21PS 185 Mhz
Même les moniteurs bas de gamme n'ont en général pas de contrainte terrible au niveau de leur bande passante aux résolutions annoncées. Le NEC Multisync II en est un exemple parfait --- si l'on en croit les spécifications du constructeur, il ne parvient même pas à afficher en 800x600. Il affichera au maximum en 800x560. Pour des résolutions si basses, il n'est pas nécessaire de disposer de hautes fréquences pilotes ou une large bande passante ; le mieux que vous puissiez faire sera probablement 32 Mhz ou 36 Mhz, l'un comme l'autre ne s'écartant pas trop de la bande passante annoncée du moniteur : 30 Mhz.
A ces deux fréquences pilotes, il se peut que l'image affichée ne soit pas aussi nette qu'elle devrait l'être, mais certainement d'une qualité tolérable. Il serait plus agréable, bien sûr, que le NEC Multisync II dispose d'une bande passante vidéo supérieure à 36 Mhz, par exemple. Mais ceci n'est pas indispensable pour des tâches de base comme l'édition de texte, pour autant que l'écart ne soit pas à ce point important qu'il occasionne une forte distorsion de l'image (vos yeux vous le feraient sentir immédiatement si cela devait être le cas).
La page "spécifications techniques" du manuel de votre carte graphique mentionne sans doute le dot clock maximum de la carte (c'est à dire, le nombre total de pixels que la carte peut envoyer à l'écran par seconde).
Si vous ne possédez pas cette information, le serveur X la trouvera pour vous. Les versions récentes des serveurs X supportent tous une option --probeonly qui imprime cette information et termine sans réellement démarrer X ni changer le mode vidéo.
Si cette option n'est pas supportée dans votre cas, ne perdez pas espoir. Même si X bloque votre moniteur, il émettra une ligne de valeurs d'horloge et d'autres informations vers la sortie erreur standard (stderr). Si vous re-dirigez cela vers un fichier, les informations devraient y être conservées, même s'il vous faut redémarrer la machine pour obtenir à nouveau l'accès à la console.
Les résultats de cette détection du matériel ou les messages de démarrage devraient ressembler à l'un des exemples suivants :
Si vous utilisez XFree86 :
Xconfig: /usr/X11R6/lib/X11/Xconfig (**) stands for supplied, (--) stands for probed/default values (**) Mouse: type: MouseMan, device: /dev/ttyS1, baudrate: 9600 Warning: The directory "/usr/andrew/X11fonts" does not exist. Entry deleted from font path. (**) FontPath set to "/usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/" (--) S3: card type: 386/486 localbus (--) S3: chipset: 924 --- Chipset -- le modèle précis du processeur (ici, un ancien masque du 86C911) (--) S3: chipset driver: s3_generic (--) S3: videoram: 1024k ----- Taille de la mémoire RAM tampon de trame embarquée (**) S3: clocks: 25.00 28.00 40.00 3.00 50.00 77.00 36.00 45.00 (**) S3: clocks: 0.00 0.00 79.00 31.00 94.00 65.00 75.00 71.00 ------------------------------------------------------ Fréquences pilotes autorisées en MHz (--) S3: Maximum allowed dot-clock: 110MHz ------ Largeur de bande (**) S3: Mode "1024x768": mode clock = 79.000, clock used = 79.000 (--) S3: Virtual resolution set to 1024x768 (--) S3: Using a banksize of 64k, line width of 1024 (--) S3: Pixmap cache: (--) S3: Using 2 128-pixel 4 64-pixel and 8 32-pixel slots (--) S3: Using 8 pages of 768x255 for font caching
Si vous utilisez SGCS ou X/Inside X :
WGA: 86C911 (mem: 1024k clocks: 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71) --- ------ ----- -------------------------------------------- | | | Fréquences pilotes autorisées en MHz | | +-- Taille de la mémoire RAM tampon de trame embarquée | +-- Modèle du processeur +-- Nom du serveur
Note : effectuez ce test sur votre machine lorsqu'elle n'est pas chargée (si possible). Dans la mesure où X est une application, ses boucles de temporisation peuvent être perturbées par de l'activité sur le disque, rendant les valeur mentionnées ci-dessus imprécises. Effectuez le test plusieurs fois et veillez à ce que ces valeurs se stabilisent ; si cela ne se produit pas, éliminez autant de processus actifs que nécessaire. Le processus démon qui pilote votre souris risque très fort de vous causer des problèmes (il s'agit de gpm pour les utilisateurs Linux, de mousemgr pour les utilisateurs de SVr4).
De façon à éviter toute imprécision lors de la détection des fréquences d'horloge, vous pouvez simplement copier la liste de fréquences et la placer dans votre fichier XF86config comme valeur de la propriété "Clocks" --- ceci supprime la boucle de temporisation et fournit à X une liste précise des valeurs d'horloge qu'il peut utiliser. En utilisant les données de l'exemple ci-dessus, cela donnerait :
wga Clocks 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71
Sur des systèmes dont la charge de travail varie fortement, ceci peut vous aider à éviter de mystérieux échecs au démarrage de X. Il peut arriver que X démarre, obtienne une mauvaise temporisation à cause de la charge excessive du système, et ne soit dès lors pas capable de trouver une fréquence correspondante dans sa base de données de configuration --- ou choisisse la mauvaise !
Les plages de fréquences de synchronisation de votre moniteur, ainsi que la fréquence pilote de votre carte graphique, déterminent la résolution maximale qu'il vous sera loisible d'atteindre. Mais c'est le rôle du pilote de périphérique d'exploiter le potentiel de votre équipement. Du matériel de qualité supérieure sans un pilote d'une compétence égale est un gaspillage d'argent. D'un autre côté, avec un pilote de périphérique flexible et du matériel moins puissant, vous pouvez gagner un peu de marge de manoeuvre par rapport aux contraintes physiques. Telle est la philosophie qui présida à la conception de XFree86.
Il vous faudra sélectionner une fréquence d'horloge adaptée à la bande passante vidéo de votre moniteur. Vous bénéficierez ici d'une large marge de manoeuvre, cependant --- certains moniteurs ont une capacité réelle supérieure de 30% par rapport à leur bande passante nominale. Le risque ici est de dépasser la fréquence de synchronisation verticale annoncée du moniteur ; nous discuterons ceci en détail plus loin.
Cette connaissance de la bande passante vous permettra d'effectuer des choix plus avertis entre diverses configurations possibles. Elle peut en effet influencer les qualités visuelles de votre écran (spécialement la précision dans les petits détails).
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:22