Un grand merci a Thomas Parmelan qui a restaure ce fichier au peril de sa vie lorsqu'il etait perdu et a J.M. Vansteene pour m'avoir reenvoye ma derniere version par mail.
1234567891123456789212345678931234567894123456789512345678961234567897123456789 8 Linux Xfree Videomodes setup HOWTO v1.01 Marc MERLIN (marcsoft@magic.metawire.com) Septembre 1995 I Introduction ============== Débarrassons-nous d'abord de la partie juridique avant de rentrer dans le vif du sujet: Les documents HOWTO Linux sont placés sous copyright par leurs auteurs respectifs. Les documents Linux HOWTO peuvent être reproduits et distribués en tout ou partie, par quelque moyen physique que ce soit, sans l'autorisation de l'auteur. Les traductions et travaux dérivés sont également permis sans autorisation expresse. La distribution a titre commercial est permise et même encouragée; cependant, l'auteur souhaiterait en être averti. IMPORTANT: l'auteur ne peut en aucun cas être rendu responsable de quelque dommage ou perte causée directement ou indirectement par l'utilisation de ce document. Il faut savoir que même si en suivant les recommandations données, le risque est quasi nul, que la configuration de modes vidéos avec Xfree peut causer des dommages à votre moniteur et à votre carte vidéo. Enfin, Xfree/XFree86 est une marque déposée par The XFree86 Project, Inc. Ce document n'est pas la première aide pour la création de modes vidéo pour Xfree, il existe déjà différents documents dont certains ont été traduits en Français. Ce document se suffit à lui-même pour ceux qui savent déjà mettre en place le fichier de configuration de Xfree (XF86Config) et qui veulent pouvoir tirer simplement le meilleur parti de leur couple carte vidéo-moniteur et créer leurs propres modes graphiques. Mon but premier lorsque j'ai décidé d'écrire cette aide était de fournir quelque chose de court et simple à utiliser avec des recettes précises en faisant un peu abstraction du côté technique. Après coup, je me rends compte que je n'ai pas tout à fait atteint mon but vu que ce document n'est pas si court que cela, et que je n'ai pas pu m'empêcher de donner un minimum d'explications techniques pour ne pas parachuter des formules qui n'auraient aucun sens sans explications sur leur provenance, mais j'espère qu'il vous conviendra quand même. N'hesitez pas a me faire part de vos critiques et ameliorations. Pour ceux qui ont besoin d'aide supplémentaire pour d'autres aspects de la configuration, celle-ci se trouve sous deux formes: 1) Aide sous forme écrite ------------------------- ConfigXF86.txt était un fichier d'aide fournit avec un programme de permettant de générer le fichier de configuration pour Xfree86 2.x. Je ne sais pas s'il est encore facilement disponible aujourd'hui, mais il a de toute façon perdu une partie de son utilité avec l'arrivée de XFree86 3.x.x Un autre document, encore plus ancien :-) mais très complet, bien qu'assez technique, est par contre toujours disponible et d'actualité: /usr/X11/lib/X11/doc/VideoModes.doc (present au moins dans la Slackware) The Hitchhiker's Guide to X386/XFree86 Video Timing (or, Tweaking your Monitor for Fun and Profit) (from an original by Chin Fang; portions derive from a how-to by Bob Crosson , as revised and expanded by Eric S. Raymond ; Ce document est de loin le plus complet que je n'aie jamais lu sur le sujet et je lui dois une bonne partie de mes connaissances actuelles, mais je le trouve un peu technique et fastidieux à lire pour le néophyte pressé ;-) Je lui reproche aussi de présenter beaucoup de théorie qui ne colle pas toujours à la pratique. C'est pourquoi j'ai rédigé ce document dans le but de donner des recettes simples et efficaces pour tirer le meilleur parti de son matériel vidéo (carte graphique & moniteur). J'ai également une bonne nouvelle pour ceux qui sont encore un peu fâchés avec l'Anglais: Le Xfree86-Howto a été traduit en Français par Nat Makarevitch, et Jean-Michel Vansteene a traduit le Hitchhiker's guide nommé ci-dessus et a rajouté d'autres informations sur la constitution du fichier XF86Config dans la Video-Howto. 2) Aide sous forme de programme ------------------------------- Pour faire fonctionner X, comme vous devez le savoir, il faut un fichier /etc/XF86Config (ou /etc/X11/XF86Config pour la Redhat). Ce document ne s'occupe que de la partie configuration graphique qui est la plus complexe. Pour le reste, il y a plusieurs méthodes à votre disposition: a) utiliser comme base le fichier XF86Config.eg qui se trouve dans /usr/X11/lib/X11 (emplacement dans la slackware) comme base et utiliser ensuite le man XF86Config (les majuscules comptent !) b) faire ça 'à l'ancienne' en récupérant des modelines pour votre moniteur dans /var/X11R6/lib/doc/Monitors et les clocks de votre carte dans /var/X11R6/lib/doc/modeDB.txt (vous comprendrez plus tard) c) utiliser le programme xf86config qui se trouve dans /usr/X11/bin. C'est de loin la meilleure méthode aujourd'hui d'obtenir un fichier en général assez fonctionnel (du moins si vous avez une version récente de Xfree). d) utiliser, si vous avez la distribution RedHat, le program Xconfigurator Si vous êtes pressés, la méthode b n'en reste pas moins assez efficace (si vous avez un doute, répondez à la question et corrigez le XF86Config généré avec l'aide du man cité en a). Petite note à propos des répertoires si vous vous baladez dans l'arborescence de Xfree: dans les distributions Slackware, une partie se trouve sous /var et l'autre sous /usr. La raison en est très simple: c'est pour permettre d'avoir /usr sur une partition montée en read-only. Pour cette raison, tous les fichiers et répertoires contenant des données susceptibles de changer se trouvent sous /var. Vous comprendrez mieux le lien qui peut sembler bizarre entre /usr/X11/bin/X et /var/X11R6/bin/X qui lui ne fait que repointer sur le serveur graphique pour votre carte qui se trouve dans /usr/X11/bin/XF86_*. En général, vous n'utiliserez qu'un seul serveur graphique pour votre carte, mais il peut arriver, si vous avez peu de mémoire, de vouloir utiliser 2 ou 3 serveurs suivant la résolution souhaitée: a) le serveur spécifique à votre carte b) XF86_VGA qui fonctionne en 16 couleurs et permet de loger deux fois plus de points dans la mémoire vidéo de votre carte c) XF86_Mono qui lui fonctionne en 2 couleurs et permet de loger 8 fois plus de points dans la mémoire vidéo. Pour passer d'un serveur à l'autre, il suffit alors de changer le lien /var/X11R6/bin/X et de le faire pointer sur le serveur de votre choix. (Si vous êtes intéresses par la structure des répertoires adoptée dans la plupart des distributions de Linux, je vous conseille la lecture de Linux Filesystem Structure dispo sur sunsite et donc les miroirs comme ftp.ibp.fr dans sunsite/docs/fsstnd/ ainsi que dans un endroit comparable sur Renux et sûrement les autres BBS linux). II Généralités ============== Revenons-en au fichier XF86Config: Maintenant que ce fichier est généré, nous allons nous occuper des modes graphiques. Comme vous avez pu le remarquer si vous avez utilisé la méthode c, on vous a demandé deux renseignements sur votre moniteur: sa fréquence de rafraîchissement verticale (VSF, soit Vertical Sync Frequency en Hz) et sa fréquence de rafraîchissement horizontale (HSF, soit Horizontal Sync Frequency en kHz). C'est une bonne idée de rajouter dans le fichier la bande passante du moniteur qui désigne la fréquence d'horloge maximale qui peut être générée par la carte (DCF, soit Driving Clock Frequency) cependant il semble que XFree n'en tienne pas compte en autorisant des modes vidéo utilisant une fréquence d'horloge plus grande que la bande passante spécifiée (c'est du moins le cas du serveur X que j'utilise dans ma distribution de Xfree). Ces valeurs ont la fonction suivante: elles permettent d'éviter d'endommager l'écran en générant des modes vidéos pour lesquels il n'est pas prévu, en faisant office de garde fou car XFree refuse de générer un mode vidéo si celui- ci ne rentre pas dans les spécifications du moniteur. En effet il est possible d'avoir une carte vidéo plus performante que l'écran et de ce fait de générer des fréquences trop grandes pour celui-ci, ce qui pourrait l'endommager. Dans la situation inverse (carte vidéo peu performante par rapport à l'écran), je ne peux que vous conseiller d'acheter une carte vidéo plus performante si vous voulez utiliser à fond les performances de l'écran, mais si vous restez avec votre carte actuelle, sachez que vous ne risquez pas de l'endommager en le faisant peu travailler :-D L'HSF donne le nombre de lignes horizontales qui sont tracées par seconde. On remarque à ce niveau deux types de moniteurs: les multisynchros qui supportent une fourchette de fréquence (comme 30-70 kHz) et les multifréquences qui supportent des fréquences bien déterminées (31.5, 35.15, 35.5 kHz par exemple). Dans le premier cas, Xfree s'assurera uniquement qu'on se trouve dans la fourchette de fréquences alors que dans le 2ème cas, il vérifiera que chaque mode vidéo possède une HSF très proche de l'une des fréquences disponibles sur le moniteur. La génération automatique du fichier XF86Config contient des modes écrans standards qui devraient d'après le programme fonctionner sur votre carte vidéo et votre moniteur. Cependant, ces modes sont loin d'être optimaux et je vous conseille grandement de lire la suite si vous voulez les affiner et surtout si vous voulez générer des modes qui exploitent plus à fond votre matériel. III Ajustement d'une modeline déjà créée ======================================== Venons en maintenant à la génération d'une image proprement dite: on part de la DCF qui est en fait la fréquence d'horloge générée par la carte vidéo. Les cartes vidéos possèdent plusieurs DCFs qui sont utilisées suivant les modes vidéos souhaités. Une fréquence de 45MHz représente à peu près l'équivalent de 45 million de pixels tracés par seconde. Je dis à peu près, car en fait, il y a une partie du signal vidéo qui n'est pas affiché et qui se trouve à droite, à gauche, en haut et en bas de la zone visible à l'écran. Nous allons maintenant parler de HFL (Horizontal frame length, ce qui désigne la taille horizontale de l'image en points) et de VFL (Vertical frame length). La pratique montre que la HFL est environ 20% plus grande que la résolution horizontale de l'écran et que la VFL est environ 5% plus grande que la résolution verticale. Ceci est du au fait qu'une fois arrivé à droite de l'écran, il faut un peu de temps pour que le canon à électrons se repositionne à gauche de l'écran, il y a de plus une petite marge à droite et à gauche de la zone affichable. La même chose est valable lorsque l'on arrive en bas de l'écran. Xfree désigne les modes écrans par une "Modeline" qui a la structure suivante: 1 2 3 4 5 6 7 8 Modeline "640x480a" 45 640 688 776 808 480 481 501 502 ^^ ^^^ ^^^ ^^^ ^^^ Fréquence d'horloge en Mhz | HFL | VFL Résolution horizontale Résolution verticale Avant de commencer, notons que pour 1, 2, 3, et 4, les valeurs doivent être des multiples de 8 (Xfree ajuste tout seul si vous vous trompez). Lorsque l'on construit une telle ligne, on ajoute 32 à la résolution horizontale pour obtenir le chiffre 2 qui désigne la marge à droite. Le chiffre 4 quant à lui désigne la marge à gauche et on peut également partir de la valeur 3 et y ajouter 32. reste le chiffre 3 qui doit être suffisamment grand pour que 4 soit environ 20% plus grand que 1. Comme vous voyez, la méthode est très empirique. Vu que 3-2 désigne le nombre d'impulsions utilisées par le canon à électrons pour revenir à gauche de l'écran, s'il est un peu trop faible, la partie gauche de l'image sort de la portion visible de l'écran et s'il est encore plus faible, l'image devient totalement désynchronisée. J'ai remarqué, toujours empiriquement (ce n'est donc pas forcément vrai partout), que le fait d'avoir une différence 3-2 un peu trop faible est équivalent au fait d'avoir la différence 4-3 un peu trop faible. On peut donc pour simplifier, décider de garder 4=3+32 et ne jouer que sur la différence 3-2 pour régler la marge gauche. Notons que c'est une bonne idée de régler en premier la marge gauche avec 2-1, puis de régler la marge droite avec 3-2. Le seul inconvénient, c'est que tout changement de 4-1, change l'amplitude de 2-1 et 3-2 si bien qu'après avoir réglé la marge droite, il faut souvent réaffiner la marge de gauche qui a un peu changé. Pour la résolution verticale, la méthode est exactement identique à l'exception du fait que la marge peut cette fois-ci être quasi nulle et que tout se joue sur 7-6 (bien qu'il faille parfois jouer un peu sur 6-5 pour régler la marge basse). Il reste un dernier paramètre à prendre en compte: tous les nouveaux moniteurs ont également des réglages internes pour permettre d'ajuster l'image à l'écran. En théorie, les réglages par défaut devraient faire l'affaire, mais il arrive que l'on puisse (ou doive) s'aider de ces réglages. Dans tous les cas, ne changez rien si vous utilisez déjà le même mode écran sous un autre OS et prenez en compte le fait que si vous avez deux modes Xfree qui sont perçus de la même manière par votre écran, le réglage pour le 1er déréglera le 2nd. (J'entends par 'perçu de la même manière par le moniteur' le fait que le moniteur semble reconnaître le mode écran et positionne automatiquement des réglages mémorisés pour celui-ci (en général, vous avez un petit écran LCD qui confirme le changement de mode)). Bien que ce soit pénible, il arrive d'ailleurs que lorsque l'on est sur le point d'avoir une image suffisamment grande, lorsqu'on rajoute encore 8 au nombre de la colonne 4, cela fasse changer la résolution détectée par le moniteur et ruine tout votre travail de mise au point vu que le moniteur essaye alors de cadrer l'image différemment. A ce moment, vous avez deux solutions: a) revenir à l'ancien mode, même s'il n'est pas parfait. b) mettre au point le nouveau mode (ce qui est souvent la seule solution possible, car la solution a n'est pas réellement utilisable). Ne pas désespérer, car par exemple, il m'est arrivé pour un certain mode d'avoir deux sauts de détection par le moniteur avant de tomber sur un mode stable. Vous savez maintenant régler une modeline. Comme il faut souvent s'y reprendre plus d'une fois pour avoir l'affichage souhaité, c'est une bonne idée de garder le XF86Config dans une fenêtre texte, et d'essayer le mode écran en lançant X ou startx dans une autre (garder les doigts sur CTRL-ALT-BKSP pour quitter X tout de suite si vous obtenez un mode désynchronisé vu qu'il pourrait endommager votre moniteur). Pour gagner un peu de temps une fois que vous aurez compris la procédure, vous pourrez utiliser un programme du genre xvditune (présent au moins dans la distribution RedHat) qui permet d'ajuster simplement vos modelines en vérifiant le résultat à l'écran en temps réel et qui vous sort le contenu des modelines qui donnent ce que vous avez obtenu à l'écran. Il ne reste plus qu'à les recopier dans votre XF86Config. Notez que ce programme, même s'il simplifie la vie, ne choisit pas la clock (fréquence d'horloge de la carte video) à votre place et qu'il ne fait que modifier des modelines existantes (ce qui explique l'intérêt de ce qui suit). IV Création de vos propres modes vidéos ('from scratch') ======================================================== Jusqu'à maintenant, vous avez vu comment ajuster les modes vidéos auto-générés par un programme comme xf86config. Cependant, si vous voulez tirer le meilleur parti de votre moniteur et de votre carte vidéo (en augmentant la résolution de vos modes écran et/ou leur stabilité), le mieux est de créer vos modelines à la main. A ce stade, on ne se demande pas 'comment créer un mode vidéo avec telle résolution', mais plutôt l'une des deux questions suivantes: - Comment créer un mode vidéo avec telle résolution tout en ayant le meilleur rafraîchissement vertical (ce qui équivaut au scintillement de l'écran) - Quelle est la meilleure résolution (à peu de choses près) que je puisse obtenir, tout en gardant une vitesse de rafraîchissement verticale (RR) convenable 'Convenable' dépend de vous et de vos yeux. La norme VESA préconise un rafraîchissement de 72Hz mais je pense qu'on peut descendre un peu en dessous. Personnellement, je commence à distinguer un scintillement vers 60Hz, et ça commence à être pénible en dessous (quand je pense que certains d'entre nous ont travaillé à l'époque sur des téléviseurs avec un rafraîchissement de 50Hz... personnellement, maintenant que j'ai été habitué à bien plus, je me demande comment je faisais pour supporter 50Hz à l'époque :-D) De plus, les résolutions ne sont pas prises totalement au hasard: pour le confort de la vue, et l'habitude on essaie de garder un rapport 4/3 entre HR et VR (résolution horizontale et verticale). Cependant, on travaille typiquement avec HFL et VFL (Horizontal et Vertical Frame Length), sachant qu'empiriquement HFL=HR*1.25 (HR = Horizontal Resolution) et VFL=VR*1.05. Pour que le faisceau parcoure une ligne à l'écran, il faut HFL tics d'horloge (venant de la carte vidéo). De manière similaire, pour tracer un écran, il faut HFL*VFL tics d'horloge. (Pour plus de détails techniques, consulter le Hitchhiker's Guide to Video Timing). Au niveau de la carte vidéo, on parle de DCF (Driving Clock Frequency), à savoir le nombre de tics d'horloge générés par seconde. On se retrouve avec l'équation suivante: DCF=HFL*VFL*RR (RR étant Refresh Rate: le nombre de fois où votre écran est rafraîchi par seconde). Un rapide calcul montre que VFL=12/19*HFL, si bien qu'on se retrouve avec: DCF 12 --- = -- x HFL² RR 19 On fixe DCF en choisissant une 'clock' de votre carte vidéo (en général la plus grande qu'elle et votre moniteur supportent à un détail près pour les basses résolutions comme expliqué ci-dessous). Comme vous pouvez voir, on reste avec HFL²=k/RR, ce qui veut dire que plus vous voulez une grande résolution, plus le rafraîchissement de l'écran en pâtira (et l'opposé du contraire bien sûr ;-D). Notez que la relation n'est _pas_ linéaire. Occupons-nous maintenant de nos deux problèmes: A) Avoir un confort visuel maximal avec une résolution donnée ---------------------------------------------------------- La solution est très simple, il suffit de prendre la fréquence d'horloge de votre carte vidéo la plus élevée qui soit supportée par votre moniteur (notez qu'en général celui-ci peut supporter 20 à 30% de plus qu'indiqué dans la documentation), et construisez votre mode comme l'exemple suivant: 1152 x 900 (résolution courante sous Unix vu que 128*9=1152 et 1152*900=1036800, ce qui fait presque 1 meg de mémoire vidéo et 1152/900= 1.28 =~ 1.25). On crée donc la ligne suivante: 1152 1184 1408 1440 900 902 942 944 1440=1152*1.25, 1184=1152+32, et 1408=1440-32 (en fait, il faut prendre plus de 32 pour les grandes résolutions). 944=900*1.05, 902=900+2, et 942=944-2 (ou 1 ou 3 ou un peu plus). Notez que ce ne sont que des valeurs de départ qu'il vous faudra ajuster en vous reportant à la section III: Ajustement d'une modeline déjà créée. Même si les résolutions sont habituelles, c'est souvent mieux de ne pas partir d'une modeline déjà existante (dans /var/X11R6/lib/doc/modeDB.txt par exemple), car la clock disponible dans cette modeline est en général inférieure à celle que vous aviez prévu de prendre et le reste de la modeline (vu qu’il est inadapté à votre clock) ne sera pas convenable. Par exemple, voici trois modelines que j'utilise, notez que l'influence de la DCF sur la partie horizontale de la modeline: # VR 71Hz, 66.4 kHz hsync (fine this time) Modeline "1152x900a" 100 1152 1200 1472 1504 900 901 930 931 # VR 73Hz, 67.6 kHz hsync (still not wide enough, out of range also) Modeline "1152x900b" 108 1152 1216 1532 1580 900 901 930 931 # VR 73Hz, 68 kHz hsync (not wide enough) Modeline "1152x900c" 110 1152 1240 1552 1616 900 901 930 931 Notez au passage, que pour la dernière ligne, on a bien: 110MHz (DCF) / 1616 (HFL) = 68kHz (HSF) et 68kHz/931 (VFL) = 73.1Hz (RR) Tout n'est quand même pas si hydilique: il y a deux facteurs qui limitent l'utilisation de la DCF la plus élevée possible: 1) HSF augmente avec DCF, et HSF est limitée par votre moniteur. Il est donc primordial quand vous choisissez un moniteur, d'avoir une fréquence de rafraîchissement la plus grande possible (au moins 65kHz, si possible plus de 70kHz pour les moniteurs haut de gamme). Ceci est également vrai pour RR, vu que la fréquence de rafraîchissement de l'image se situe en général entre 80 et 150MHz, mais ce n'est quasiment jamais le facteur délimitant. 2) En général, les moniteurs multifréquences essayent de régler les paramètres de l'écran en fonction de la DCF fournie et pensent en déduire la résolution. Cela marche à peu près pour les modes VESA, mais peut mal fonctionner pour ces modes 'fait main', un peu boostés. Un problème typique est une vision 16/9ème (avec des bandes noires en haut et en bas qu'on ne peut pas supprimer). Souvent, on ne peut pas changer les paramètres de l'écran, car vous 'déformeriez' alors une autre résolution. Un autre problème pour deux de ces modes par exemple, c'est que mon écran (Mag) me dit 'Non Registred Setup' si bien que je ne peux de toute façon pas sauvegarder d'éventuels réglages. Pour le 'fun', je me suis crée le mode suivant: # VR 119Hz, 60.1 kHz hsync (too shallow) Modeline "640x480b" 50 640 688 824 832 480 481 504 505 L'image est cependant clairement en 16/9ème, et de toute façon un rafraîchissement supérieur à 80Hz est relativement inutile. On peut donc retenir que 'pousser' la DCF pour n'est utile que pour les hautes résolutions afin de s'approcher des 72Hz de rafraîchissement. En effet: les basses résolutions standard possèdent en général déjà un rafraîchissement suffisant. B) Résolution maximale supportée par un couple carte vidéo/moniteur ---------------------------------------------------------------- Cette fois-ci, le but du jeu est d'obtenir une résolution maximale en partant d'un couple carte vidéo/moniteur donné, et en imposant une troisième constante: le rafraîchissement vertical minimum désiré. Reprenons la formule précédente: DCF 12 --- = -- x HFL² RR 19 Cette fois-ci, on fixe DCF (clock maximale de la carte vidéo qui soit également supportée par l'écran) et RR (valeur minimale de rafraîchissement de l'écran que vous êtes prêt à supporter visuellement parlant). On peut donc réécrire l'équation de la manière suivante: ________ / / 19 DCF HFL= / -- x --- \/ 12 RR De cette manière, vous obtenez HFL, puis HR, avec HR=HFL*0.8 Il faut quand même vérifier que HSF reste également dans les limites de ce que votre moniteur accepte, et diminuer DCF si besoin est (on a toujours HSF=DCF/HFL). Cependant, le but étant d'avoir HFL maximal HSF ne devrait pas être trop grand (à moins que vous cherchiez a obtenir un rafraîchissement vertical très grand avec DCF très grand pour compenser). Exemple: ma clock ma plus rapide est 85MHz et je suis prêt à accepter une VR de 60 HZ. Cela me donne HFL=1497 tics d'horloge, soit HR=1198 points. Je vérifie HSF: HSF=85.000.000/1497=56.7 kHz (ce qui ne pose pas de problème vu que mon moniteur supporte un rafraîchissement horizontal pouvant atteindre 65kHz). En fait, on arrondi HR au multiple de 8 le plus proche, et on essaye de préférence de prendre une valeur un peu plus ronde (genre multiple de 32 et/ou 64). En l'occurrence, on pourrait prendre 1152 (valeur standard sous Unix) ou a défaut 1200. A partir de là, vous pouvez calculer les données manquantes: VFL, puis remplir la modeline de la même manière que vu précédemment. Entrelacement ------------- Pour finir, une manière d'obtenir une résolution plus grande est de sélectionner un rafraîchissement entrelacé. Le mieux avant d'expliquer est que je donne un exemple de modeline: # VR 2*31Hz, 40.8 kHz hsync Modeline "1528x1024" 85 1528 1608 1800 2080 1024 1160 1260 1320 Interlace Un rapide calcul montre que le rafraîchissement vertical devrait être 31Hz, ce qui est bien trop faible. Pour cette raison, on rajoute le mot-clé 'Interlace' qui permet au rafraîchissement de se faire deux fois plus vite (62Hz) mais en ne rafraîchissant qu'une ligne sur deux a chaque balayage écran. Cela introduit un scintillement assez désagréable, mais il reste parfois utile de pouvoir passer dans une grande résolution pendant une période assez courte. (Je n'ai par contre jamais vu l'utilité pratique des mots clés HSync, VSync, Composite et cie). IV Exemples de fichiers XF86Config ================================== 1) Carte Cirrus Logic 5428 sur un écran générique 15" ----------------------------------------------------- # # Copyright (c) 1994 by The XFree86 Project, Inc. # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF # OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # # Except as contained in this notice, the name of the XFree86 Project shall # not be used in advertising or otherwise to promote the sale, use or other # dealings in this Software without prior written authorization from the # XFree86 Project. # # ********************************************************************** # Refer to the XF86Config(4/5) man page for details about the format of # this file. # ********************************************************************** # ********************************************************************** # Files section. This allows default font and rgb paths to be set # ********************************************************************** Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" # Multiple FontPath entries are allowed (which are concatenated together), # as well as specifying multiple comma-separated entries in one FontPath # command (or a combination of both methods) FontPath "/usr/X11R6/lib/X11/fonts/misc/" # FontPath "/usr/X11R6/lib/X11/fonts/Type1/" # FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" # FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" EndSection # ********************************************************************** # Server flags section. # ********************************************************************** Section "ServerFlags" # Uncomment this to disable the server abort sequence # DontZap EndSection # ********************************************************************** # Input devices # ********************************************************************** # ********************************************************************** # Keyboard section # ********************************************************************** Section "Keyboard" Protocol "Standard" AutoRepeat 500 5 ServerNumLock # Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1)) # Xleds 1 2 3 # To set the LeftAlt to Meta, RightAlt key to ModeShift, # RightCtl key to Compose, and ScrollLock key to ModeLock: LeftAlt Meta RightAlt ModeShift RightCtl Compose ScrollLock ModeLock EndSection # ********************************************************************** # Pointer section # ********************************************************************** Section "Pointer" Protocol "MouseSystems" Device "/dev/mouse" # Emulate3Buttons is an option for 2-button Microsoft mice # Emulate3Buttons # ChordMiddle is an option for some 3-button Logitech mice # ChordMiddle EndSection # ********************************************************************** # Monitor section # ********************************************************************** # Any number of monitor sections may be present Section "Monitor" Identifier "ETC" VendorName "ETC" ModelName "ETC Color Monitor" # Bandwidth is in MHz unless units are specified Bandwidth 65 # HorizSync is in kHz unless units are specified. # HorizSync may be a comma separated list of discrete values, or a # comma separated list of ranges of values. # NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S # USER MANUAL FOR THE CORRECT NUMBERS. HorizSync 30 - 65 # VertRefresh is in Hz unless units are specified. # VertRefresh may be a comma separated list of discrete values, or a # comma separated list of ranges of values. # NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S # USER MANUAL FOR THE CORRECT NUMBERS. VertRefresh 52 - 120 # Modes can be specified in two formats. A compact one-line format, or # a multi-line format. # 640x480 @ 72 Hz, 37.9 kHz hsync (VESA, almost ok) Modeline "640x480" 31.5 640 664 704 832 480 489 492 520 # 800x600 @ 77 Hz, 48.8 kHz hsync (VESA, almost ok) Modeline "800x600" 50 800 848 976 1024 600 604 610 632 # 1024x768 dot clock: 75 (1160 horizontal dots min) # VR 72 Hz, 56.8 kHz hsync (VESA, ok) Modeline "1024x768" 75 1024 1040 1296 1320 768 768 772 792 # VR 62 Hz, 52.4 kHz hsync (8514/A, too small) #Modeline "1024x768" 75 1024 1096 1400 1432 768 790 830 840 # 1024x768 dot clock: 80 (1232 horizontal dots min) # VR 74 Hz, 58.8 Khz hsync (VESA, a bit too small) #Modeline "1024x768" 80 1024 1040 1344 1360 768 768 772 794 # VR 62 Hz, 52.9 Khz hsync (VESA 48K, too small) #Modeline "1024x768" 80 1024 1140 1444 1512 768 800 840 848 # 1024x768 dot clock: 85 (1312 horizontal dots min) # VR 62 Hz, 50.1 kHz hsync (8514/A, too narrow) #Modeline "1024x768" 85 1024 1224 1596 1696 768 768 770 802 # VR 74 Hz, 59.0 kHz hsync (VESA, still too narrow) #Modeline "1024x768" 85 1024 1068 1220 1440 768 768 772 794 # 1152x800 dot clock: 85 (1312 horizontal dots min) # VR 68 Hz, 56.8 kHz hsync (VESA, pin cushion problem, too high) Modeline "1152x800" 85 1152 1168 1416 1496 800 802 816 836 # VR 54 Hz, 52.6 kHz hsync (8514/A, too narrow) #Modeline "1152x800" 85 1152 1232 1600 1616 800 808 830 842 # 1152x864 dot clock: 85 (1312 horizontal dots min, exact 4/3 ratio) # VR 62 Hz, 56.8 kHz hsync (VESA, pin cushion problem, too high) Modeline "1152x864" 85 1152 1168 1416 1496 864 866 880 910 # VR 54 Hz, 52.6 kHz hsync (8514/A, too narrow) #Modeline "1152x864" 85 1152 1232 1600 1616 864 864 880 900 # 1152x900 dot clock: 85 (1312 horizontal dots min) # VR 58 Hz, 56.8 kHz hsync (VESA, pin cushion problem, too high) Modeline "1152x900" 85 1152 1168 1424 1496 900 916 926 980 # VR 54 Hz, 52.6 kHz hsync (8514/A, too narrow) #Modeline "1152x900" 85 1152 1232 1600 1616 900 900 902 970 # 1528x1024 dot clock: 85 # VR 2*31Hz, 40.8 Khz hsync (user mode 2) Modeline "1528x1024" 85 1528 1608 1800 2080 1024 1160 1260 1320 Interlace EndSection # ********************************************************************** # Graphics device section # ********************************************************************** # Any number of graphics device sections may be present Section "Device" Identifier "CL" VendorName "Cirrus Logic" BoardName "CL-5428" Chipset "clgd5428" VideoRam 1024 Clocks 25.23 28.32 41.16 36.08 31.50 39.99 45.08 49.87 Clocks 64.98 72.16 75.00 80.01 85.23 Option "fast_dram" # Option "fifo_aggressive" Option "fifo_conservative" # Option "noaccel" # Option "no_bitblt" # Option "linear" (won't work since I have 32Megs of RAM) # MemBase 0x04e00000 EndSection Section "Device" Identifier "Gen" VendorName "Cirrus Logic" BoardName "CL-5428 in dumb generic VGA mode" Chipset "generic" VideoRam 1024 Clocks 25.23 28.32 41.16 36.08 31.50 39.99 45.08 49.87 Clocks 64.98 72.16 75.00 80.01 85.23 EndSection # ********************************************************************** # Screen sections # ********************************************************************** # The Colour SVGA server Section "Screen" Driver "svga" Device "CL" Monitor "ETC" Subsection "Display" Depth 8 # Omit the Modes line for the "Generic VGA" device Modes "1152x864" "1024x768" "800x600" "640x480" #ViewPort 0 0 #Virtual 1152 864 EndSubsection Subsection "Display" Depth 16 Modes "800x600" "640x480" #ViewPort 0 0 #Virtual 800 600 EndSubsection EndSection # The 16-color VGA server (of no use since high res don't work) Section "Screen" Driver "vga16" Device "Gen" Monitor "ETC" Subsection "Display" Modes "1152x864" "1024x768" "800x600" "640x480" #ViewPort 0 0 #Virtual 1152 800 EndSubsection EndSection # The Mono server Section "Screen" Driver "vga2" Device "CL" Monitor "ETC" Subsection "Display" Modes "1528x1024" "1152x900" #ViewPort 0 0 #Virtual 1528 1024 EndSubsection EndSection 2) Carte Kelvin Farenheit (chip CL 5434 sur un écran MAG 17") ------------------------------------------------------------- (...) # ********************************************************************** # Monitor section # ********************************************************************** # Any number of monitor sections may be present Section "Monitor" Identifier "MX17H" VendorName "MAG" ModelName "Magic View 17H" # Bandwidth is in MHz unless units are specified Bandwidth 100 # HorizSync is in kHz unless units are specified. # HorizSync may be a comma separated list of discrete values, or a # comma separated list of ranges of values. # NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S # USER MANUAL FOR THE CORRECT NUMBERS. HorizSync 30 - 68.4 # VertRefresh is in Hz unless units are specified. # VertRefresh may be a comma separated list of discrete values, or a # comma separated list of ranges of values. # NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S # USER MANUAL FOR THE CORRECT NUMBERS. VertRefresh 50 - 120 ############# bpp 8 modes ############## # Dot clock 45 Mhz (661 dots < HFL < 1500 dots) # VR 110Hz, 55.7 kHz hsync Modeline "640x480a" 45 640 688 776 808 480 481 501 502 # Dot clock 50 Mhz (735 dots < HFL < 1666 dots) # VR 119Hz, 60.1 kHz hsync (too shallow) Modeline "640x480b" 50 640 688 824 832 480 481 504 505 # VR 73Hz, 48.8 kHz hsync (fine) Modeline "800x600a" 50 800 872 976 1024 600 640 665 667 # Dot clock 65 Mhz (955 dots < HFL < 2166 dots) # VR 98Hz, 61.6 kHz hsync (too shallow) Modeline "800x600b" 65 800 848 1024 1056 600 601 624 625 # Dot clock 90 Mhz (1323 dots < HFL < 3000 dots) # VR 84Hz, 67.7 kHz hsync Modeline "1024x768" 90 1024 1064 1296 1328 768 769 799 800 # Dot clock 95 Mhz (1397 dots < HFL < 3166 dots) # Dot clock 100 Mhz (1470 dots < HFL < 3333 dots) # VR 71Hz, 66.4 kHz hsync (fine) Modeline "1152x900a" 100 1152 1200 1472 1504 900 901 930 931 # Dot clock 108 Mhz (1588 dots < HFL < 3600 dots) # VR 73Hz, 67.6 kHz hsync (still not wide enough though, out of range also) Modeline "1152x900b" 108 1152 1216 1532 1580 900 901 930 931 # Dot clock 110 Mhz (1617 dots < HFL < 3666 dots) # VR 73Hz, 68 kHz hsync (not wide enough though) Modeline "1152x900c" 110 1152 1240 1552 1616 900 901 930 931 # VR 61Hz, 66.1 kHz hsync Modeline "1280x1024" 110 1280 1312 1632 1664 1024 1032 1072 1072 # VR 60Hz, 66.1 kHz hsync Modeline "1280x1056" 110 1280 1312 1632 1664 1056 1062 1104 1104 # VR 55Hz, 60.3 kHz hsync Modeline "1400x1056" 110 1408 1496 1784 1824 1056 1062 1104 1104 # VR 2*44Hz, 55 kHz hsync Modeline "1600x1200" 110 1600 1720 1932 2000 1200 1202 1263 1264 Interlace ############# bpp 16 modes ############## # Dot clock 75 Mhz (1096 dots < HFL < 2500) # VR 72 Hz, 56.8 kHz hsync Modeline "1024x768_16" 75 1024 1064 1280 1312 768 768 772 800 # Dot clock 85 Mhz (1242 dots < HFL < 2833 dots) # VR 68 Hz, 56.8 kHz hsync Modeline "1152x800_16" 85 1152 1200 1384 1496 800 802 816 836 # VR 62 Hz, 56.8 kHz hsync Modeline "1152x864_16" 85 1152 1200 1384 1496 864 866 880 910 # VR 58 Hz, 56.8 kHz hsync Modeline "1152x900_16" 85 1152 1200 1384 1496 900 916 926 980 EndSection # ********************************************************************** # Graphics device section # ********************************************************************** # Any number of graphics device sections may be present Section "Device" Identifier "Kelvin" VendorName "Orchid" BoardName "CL-5434" Chipset "clgd5434" VideoRam 2048 # Clocks 25.23 28.32 41.16 36.08 31.50 39.99 45.08 49.87 # Clocks 64.98 72.16 75.00 80.01 85.23 90.00 95.02 100.23 # Clocks 108.03 109.77 # Option "fast_dram" Option "slow_dram" Option "sw_cursor" # Option "fifo_aggressive" Option "fifo_conservative" # Option "noaccel" # Option "no_bitblt" Option "linear" MemBase 0x02000000 EndSection Section "Device" Identifier "Gen" VendorName "Orchid" BoardName "CL-5434 in dumb generic VGA mode" Chipset "generic" VideoRam 2048 EndSection # ********************************************************************** # Screen sections # ********************************************************************** # The Colour SVGA server Section "Screen" Driver "svga" Device "Kelvin" Monitor "MX17H" Subsection "Display" Depth 8 Modes "1280x1056" "1400x1056" "1600x1200" "1280x1024" "1152x900a" "1152x900b" "1152x900c" "1024x768" "800x600a" "800x600b" "640x480a" "640x480b" ViewPort 0 176 Virtual 1520 1056 EndSubsection Subsection "Display" Depth 16 Modes "1152x900_16" "1152x864_16" "1152x800_16" "1024x768_16" "800x600a" "640x480a" EndSubsection EndSection