  Video HOWTO
  Jean-Michel          VANSTEENE,     <vansteen@frcl.bull.fr>,
  <vanstee@worldnet.net>
  v1.1, 13 Octobre 1995

  Ce document  souhaite apporter une aide a  la configuration  de  votre
  environnement   graphique   sous Linux, plus specifiquement concernant
  votre sous-systeme  video.   La   premiere  partie   sera  entierement
  consacree aux  serveurs XFree86 et au  fichier de configuration corre-
  spondant.   La   deuxieme decrira quelques programmes     qui     met-
  tent       en    oeuvre       les      methodes  etudiees.  Toutes vos
  remarques   concernant  la   forme  ou   le  fond   sont   les  bienv-
  enues.   Elles permettront    de  faire  de   ce document    une  aide
  precieuse pour tirer le meilleur de votre materiel.  Vous  pouvez  les
  envoyer aux adresses ci-dessus.  Bonne lecture.

  11..  IInnttrroodduuccttiioonn

  L'environnement  X  permet aux systemes fonctionnant sous Unix d'avoir
  un environnement graphique  de qualite.  C'est un systeme  de  gestion
  de      fenetres base   sur    un   fonctionnement  en reseau.    Bien
  entendu il    est   utilisable   sur une   machine isolee,  mais  cela
  signifie  qu'il prend naturellement en compte votre reseau si vous  en
  avez un. Les programmes  peuvent tourner  sur des machines  distantes,
  la visualisation  se faisant sur  la station de travail locale.

  Sous   Linux,  l'environnement X  est  le systeme X-Window du MIT.

  11..11..  GGeenneerraalliitteess ssuurr XX

  L'environnement  X  est relativement complexe  mais nous en degagerons
  les   grands points. Il  existe une   litterature  importante  sur  ce
  sujet.

  11..11..11..  AAffffiicchhaaggeess eett eeccrraannss

  L'environnement X est un  systeme de multi-fenetrage graphique en mode
  point (_b_i_t_m_a_p).  Il  supporte la couleur,  les niveaux de gris  et  le
  monochrome.   Un  systeme     d'affichage  sous  X   (appele  _d_i_s_p_l_a_y)
  correspond a un  ensemble comprenant uunn  ccllaavviieerr,  uunn   ssyysstteemmee     ddee
  ppooiinnttaaggee    et     uunn     oouu   pplluussiieeuurrss eeccrraannss. Ceci  est fondamental
  et  lors de la configuration  de cet  environnement,  notamment   sous
  Linux,   c'est  cet ensemble  complet  qu'il faudra configurer.   Nous
  n'etudierons   en   detail  que    la  configuration  du  sous-systeme
  video.  Pour les  deux autres sous-systemes       il     existe    des
  documents  fort   bien realises   dont une liste  est     fournie   au
  chapitre   ``Les documents a consulter''.

  11..11..22..  LLee mmooddeellee cclliieenntt--sseerrvveeuurr

  X   est  donc  un  systeme    de  gestion de fenetres oriente reseaux.
  La      visualisation       est      completement   independante    de
  l'execution  des   applications.    Alors  que  plusieurs applications
  tournent    sur votre  machine,   plusieurs  autres  pourront  tourner
  sur   des   machines  distantes,  envoyer des   requetes a travers  le
  reseau vers  votre affichage  (_d_i_s_p_l_a_y)  et  recevoir  des  evenements
  provenant  du clavier  ou   de  la souris. Bien entendu la pile TCP/IP
  est utilisee.

  Le programme qui controle  chaque  affichage  est  un  _s_e_r_v_e_u_r.  Votre
  station    est   serveur  des que    votre  affichage  est  accessible
  (eventuellement  via   le  reseau)    aux  clients   que    sont   les
  applications.

  11..22..  EEtt LLiinnuuxx ddaannss ttoouutt cceellaa

  XFree86  est   le  nom  generique  du   serveur  X  sous  Linux.  Nous
  traiterons ici de XFree versions 3 et suivantes (X11R6).

  Sa configuration   est un  point  important   et   parfois  difficile.
  Il est fortement conseille d'y apporter un soin particulier.

  Une  bonne     configuration   permettra  d'obtenir   le  meilleur  de
  votre  sous-systeme    video,     mais     une     tres       mauvaise
  configuration pourra l'endommager.

  Si  vous   suivez  les conseils  donnes  dans  la suite, vous  devriez
  reussir  assez    rapidement   a   obtenir    un   systeme  pleinement
  operationnel.   Bien   entendu,   devant   la  diversite  du  materiel
  existant,    nous    ne    pourrons    indiquer      l'ensemble    des
  configurations   possibles,   mais seulement un   methode.  Il  existe
  beaucoup de     documents  plus   specifiques     a    chaque materiel
  (_/_u_s_r_/_l_i_b_/_X_1_1_/_d_o_c_/_R_E_A_D_M_E_._*).    A    utiliser   avec  la  connaissance
  necessaire !

  22..  VVuuee dd''eennsseemmbbllee ddee llaa mmeetthhooddee ddee ccoonnffiigguurraattiioonn

  La  methode  decrite dans   ce  document    s'applique  a  toutes  les
  versions  de  XFree86.   Elle s'appuiera neanmoins, pour les exemples,
  sur   la  distribution  _X_F_r_e_e_8_6_-_3_._1_._1.

  Il    y  a  deux   etapes    majeures   pour   installer  le   systeme
  graphique  et    le  rendre  operationnel.   La   premiere  consiste a
  selectionner    le  serveur approprie.    La seconde  etape   consiste
  a   le  configurer,   c'est-a-dire rediger  un    fichier   XXFF8866CCoonnffiigg
  correct.     Ce     fichier  decrira      les      trois    principaux
  elements   d'un  systeme    d'affichage  (_d_i_s_p_l_a_y) :   le ccllaavviieerr,  la
  ssoouurriiss et l'eeccrraann.

  Le  fichier XF86Config contient  plusieurs  sections ; les paragraphes
  suivants  vous  aideront a remplir  chacune d'elles. Vous trouverez en
  general dans toute distribution de Linux un fichier d'exemple tel  que
  _/_u_s_r_/_l_i_b_/_X_1_1_/_X_F_8_6_C_o_n_f_i_g_._e_g ou similaire.

  Pour  ne    pas partir  de  rien,  vous   pouvez copier   ce   fichier
  dans _/_u_s_r_/_l_i_b_/_X_1_1 et le nommer  _X_F_8_6_C_o_n_f_i_g.   C'est  l'endroit  ou  le
  serveur  (quel qu'il soit) ira le chercher.  Plusieurs pages de manuel
  en ligne sont livrees  avec XFree86  concernant  XF86Config(4/5).   Il
  est    vivement           conseille        de        les     parcourir
  (fichier _X_F_r_e_e_8_6_-_3_._1_._1_/_X_3_1_1_d_o_c_._t_g_z).

  Les sections du fichier XF86Config sont les suivantes :

     FFiilleess
        Decrit les chemins d'acces  aux fontes et  fichiers  RGB  (Rouge
        Vert Bleu)

     SSeerrvveerr  FFllaaggss
        Decrit   les   options   generales du serveur.  Reportez-vous au
        manuel en ligne pour connaitre les options possibles.

     KKeeyybbooaarrdd
        Configure le clavier, et quelques parametres optionnels.

     PPooiinntteerr
        Decrit   le  peripherique      de   pointage,   et      quelques
        parametres optionnels

     MMoonniittoorr
        Decrit votre moniteur.

     GGrraapphhiiccss DDeevviiccee
        Decrit votre carte video.

     SSccrreeeenn
        Decrit  comment   le   moniteur    et la carte     video doivent
        etre utilises.

  22..11..  CChhooiissiirr llee sseerrvveeuurr XX aaddeeqquuaatt

  Plusieurs serveurs  peuvent  se trouver  sur   votre machine  en  tant
  que fichiers executables.   Un seul  doit etre defini comme le serveur
  X de votre systeme. Vous devez donc choisir le bon.

  Les   serveurs    sont  generalement    localises dans _/_u_s_r_/_X_1_1_R_6_/_b_i_n.
  Le  nom   "officiel"   du   serveur qui   sera execute        est "X".
  Il           est generalement commode de  creer un lien symbolique  de
  X vers le serveur que vous aurez choisi.

  Les differents serveurs sont :

     XXFF8866__MMoonnoo
        (S)VGA       monochrome,         pour        les       materiels
        monochromes, par exemple Hercules.

     XXFF8866__VVGGAA1166
        Serveur couleur VGA 16 couleurs.

     XXFF8866__SSVVGGAA
        Serveur   Super   VGA. Il     peut  etre utilise     pour   tout
        materiel    SVGA.       Il    supporte  les     caracteristiques
        acceleratrices des    cartes  Cirrus  542{0,2,4,6,8,9},  Western
        Digital  90C3{1,3},  Oak  Technologies  Inc. OTIO87. Les  autres
        cartes ne sont pas accelerees.

     XXFF8866__SS33
        Serveur accelerateur pour cartes a base de circuit S3.

     XXFF8866__MMaacchh88
        Serveur accelerateur pour cartes ATI Mach8.

     XXFF8866__MMaacchh3322
        Serveur accelerateur pour cartes ATI Mach32.

     XXFF8866__MMaacchh6644
        Serveur accelerateur pour cartes ATI Mach64.

     XXFF8866__88551144
        Serveur accelerateur pour cartes 8514/A.

     XXFF8866__PP99000000
        Serveur accelerateur pour cartes P9000.

     XXFF8866__AAGGXX
        Serveur accelerateur pour cartes AGX

     XXFF8866__WW3322
        Serveur accelerateur pour cartes ET4000/W32.

  Il existe un manuel en ligne pour chacun  de ces serveurs.  Il est bon
  d'en  prendre  connaissance, notamment pour les particularites liees a
  celui qui vous interesse.

  Il  est   a noter qu'il   est   possible  de  modifier   les   pilotes
  configures  dans  un  serveur   via le _L_i_n_k_K_i_t ; Il  existe un fichier
  README a   ce propos.  Le  binaire  du serveur peut ne   pas  contenir
  tous  les  pilotes  possibles,    selon    la  distribution  que  vous
  utilisez.       Lancez       /usr/X11R6/bin/X   -showconfig       pour
  visualiser  les  pilotes configures.  Si vous  avez besoin de modifier
  votre serveur, referez vous au fichier README.

  33..  LLaa ppaarrttiiee ffaacciillee dduu ffiicchhiieerr XXFF8866CCoonnffiigg

  Comme le titre l'indique, cette partie ne pose que tres  rarement  des
  problemes. Pour ne pas depasser le cadre que nous nous sommes fixes et
  ne  pas  faire   d'ombre  aux    documents   existants,    nous   nous
  contenterons  de  vous  aiguiller  vers  quelques-uns  d'entre eux qui
  devraient vous permettre de vous en sortir.

  33..11..  LLeess ddooccuummeennttss aa ccoonnssuulltteerr

  Vous pourrez utilement consulter :

  +o  Les fichiers README du repertoire _/_u_s_r_/_l_i_b_/_X_1_1_/_d_o_c.

  +o  Les page de manuel en ligne XF86Config(4/5).

  +o  Le XFree86-HOWTO en francais ou anglais.

  +o  Le  chapitre concernant _X _W_i_n_d_o_w  du meeeer-veil-leux ;-) livre "Le
     systeme  Linux" de MMaatttt WWeellsshh et LLaarr KKaauuffmmaann et traduit en francais
     par le meeeer-veil-leux Rene Cougnenc.

  +o  Les  groupes  _U_s_e_n_e_t ccoommpp..ooss..lliinnuuxx..xx   et  ffrr..ccoommpp..ooss..lliinnuuxx.  Avant
     de   poser  des  questions,  prenez  bien  soin  de verifier que la
     reponse ne se  trouve pas dans  un de  ces documents  ou   dans  ce
     qui  suit.  Rappelons que le site ffttpp..iibbpp..ffrr  tient a jour la liste
     et le contenu de tous les   messages  emis  dans  ffrr..ccoommpp..ooss..lliinnuuxx.
     Ils se trouvent dans _/_p_u_b_/_l_i_n_u_x_/_f_r_e_n_c_h_/_f_r_._c_o_m_p_._o_s_._l_i_n_u_x

  44..  LLaa ppaarrttiiee ddiiffffiicciillee dduu ffiicchhiieerr XXFF8866CCoonnffiigg

  44..11..  LLaa sseeccttiioonn MMoonniittoorr

  C'est  de   loin  la  plus difficile a  configurer.    Cette partie va
  etre   tres detaillee  afin   que  vous puissiez  comprendre   comment
  decrire  tous   les  timings  correspondant  a  votre materiel. Il est
  important de faire tres attention lors de la  configuration  de  cette
  section.  Certaines erreurs peuvent etre fatales pour  le moniteur  ou
  la carte video.   Meme si   la methode que nous   allons voir  devrait
  permettre  d'aboutir   a  une  configuration correcte du premier coup,
  nous ne saurions (l'auteur et tous ceux qui lui ont  permis   d'ecrire
  ce  document) etre tenus pour responsables  de pannes  resultant d'une
  mauvaise configuration (Rassurez-vous, ce n'est quand meme pas courant
  ;-)).

  44..11..11..  CCoommmmeenntt ffoonnccttiioonnnnee vvoottrree eeccrraann ??

  Cette  connaissance  est essentielle  pour comprendre les  calculs que
  vous allez  devoir effectuer.  Les  valeurs obtenues seront  utilisees
  par le serveur pour controler l'affichage au plus bas niveau.

  L'ecran   genere  une   image  a   partir  d'une succession de points.
  Les points sont arranges de  la gauche vers la droite pour former  une
  ligne.  Les lignes sont arrangees du haut vers le bas  pour former une
  image.  Un point est  lumineux lorsque  le faisceau  electronique  est
  actif   et   qu'il   rencontre  la  couche  phosphorescente  du   tube
  cathodique. Le  faisceau   balaie l'ecran  de facon reguliere.

  LLeess  ppaarraaggrraapphheess   ssuuiivvaannttss ssoonntt  rreepprriiss   dd''uunn  oorriiggiinnaall     ddee  CChhiinn
  FFaanngg <<ffaannggcchhiinn@@lleellaanndd..ssttaannffoorrdd..eedduu>>  eett   ddee ppoorrttiioonnss dd''uunn   hhoowwttoo  ddee
  BBoobb CCrroossssoonn <<ccrroossssoonn@@ccaamm..nniisstt..ggoovv>>

  Le    faisceau  electronique demarre  sa   course  en haut et a gauche
  de   l'ecran.   Il parcourt l'ecran en  lignes droites successives  de
  gauche  a droite.  A  l'extreme droite d'une     ligne,   il  s'arrete
  momentanement  pour   etre  devie rapidement  vers la gauche et  d'une
  ligne vers le bas, et   ainsi  de  suite.    Ce  schema   est   repete
  jusqu'a     la  derniere  ligne.     Le  faisceau    est alors deplace
  du   coin  inferieur   droit   vers  le   coin  superieur  gauche   de
  l'ecran, et un  nouveau  balayage peut etre commence.

  Le  demarrage   du    faisceau  en  haut  et   a   gauche   est appele
  le debut d'une trame.   La  trame   se  termine  lorsque  le  faisceau
  atteint     a    nouveau    l'angle     superieur   gauche,  provenant
  directement de l'angle inferieur droit.

  Une trame est faite de toutes les  lignes que le faisceau  a  tracees.
  Si  le  faisceau   electronique etait allume durant  tout le parcours,
  tous les points seraient illumines.   Il n'y aurait  pas  de  bordures
  noires  de  chaque   cote  de   l'ecran.   Aux  coins,  l'image serait
  deformee en  raison  de  la  diffculte a controler le  faisceau en ces
  endroits.   Pour  reduire  la  distorsion,  les  points  aux angles et
  sur  les bords  ne sont   pas illumines, meme  si  le  faisceau   peut
  passer dessus.  La zone visible de l'ecran est donc reduite.
  Il  est  egalement important de comprendre  ce que devient le faisceau
  lorsqu'il     n'est    pas   en  train     d'illuminer    une   partie
  visible  de  l'ecran. Le temps que le faisceau utiliserait a illuminer
  les bords gauche et droit hors de la  zone visible, sert  au retour de
  balayage de ligne, consistant a le faire passer rapidement au debut de
  la  ligne  suivante.  Le  temps  que  le   faisceau  utiliserait  pour
  illuminer  les  bords  hauts et bas hors de  la zone visible,  sert au
  retour de balayage de trame,  faisant  passer  le  faisceau   du  coin
  inferieur droit au  coin superieur gauche.

  La   carte   video   genere  les  signaux   permettant  au moniteur de
  controler le faisceau  electronique afin de rendre une image  correcte
  dans  la  zone  visible.    La  carte  controle aussi le retour     de
  balayage de  ligne    en   generant un signal appele   synchronisation
  horizontale    (hhssyynncc)  et   le   retour  de  balayage  de   trame  en
  generant un signal  de synchronisation verticale (vvssyynncc).    Un signal
  _h_s_y_n_c  est   emis  a chaque fin de ligne.  Un signal _v_s_y_n_c  est emis a
  la fin de chaque trame.

  La technique des   signaux video necessite  qu'un temps court mais non
  nul  soit  insere  avant  et  apres  les  signaux  de  synchronisation
  horizontale et  verticale  de  facon  que  la  position   du  faisceau
  electronique  puisse   se stabiliser.  Sans cela l'image ne serait pas
  tres stable.

  44..11..22..  LLeess cchhoosseess aa  ccoonnnnaaiittrree ccoonncceerrnnaanntt vvoottrree ccaarrttee vviiddeeoo eett  vvoottrree
  mmoonniitteeuurr

  Avant  de bidouiller votre fichier  de configuration, plusieurs choses
  sont a connaitre :

  1.   Les  plages  de  frequences  de  synchronisation  horizontale  et
     verticale  de  votre moniteur.  Ces  valeurs seront  indiquees dans
     les  parties HHoorriizzSSyynncc et VVeerrttRReeffrreesshh.

  2.  La  plage de frequences  d'horloge  de  votre   carte,  ou  "  dot
     clock " (horloge point ou pixel).

  3.   La  largeur  de  bande  passante de votre  moniteur. Cette valeur
     alimentera la partie BBaannddwwiiddtthh.

  LLeess ffrreeqquueenncceess ddee ssyynncchhrroonniissaattiioonn ddee vvoottrree mmoonniitteeuurr ::

  La frequence de synchronisation  horizontale correspond au  nombre  de
  lignes   horizontales   que le moniteur  peut  ecrire  en une seconde.
  C'est  la  valeur  la  plus  importante  concernant  votre   moniteur.
  La   frequence  de   synchronisation  verticale   est  le  nombre   de
  balayages verticaux que le moniteur peut effectuer en une seconde.

  Les  frequences de  synchronisation sont   generalement  donnees  dans
  les  pages  des  specifications  techniques  de  votre  moniteur.   La
  frequence   de  synchro   verticale est  un     nombre exprime  en  Hz
  (cycles  par  secondes), la frequence horizontale etant donnee  en kHz
  (milliers  de  cycles par seconde).  Les valeurs courantes  sont    de
  l'ordre  de   50 a 80 Hz  pour  les premieres et 31 a 135 kHz pour les
  secondes.

  Si vous possedez un   moniteur multi-synchro, ces   frequences  seront
  donnees    sous  forme   d'intervalle(s). Certains moniteurs possedent
  plusieurs   frequences fixes.   Elles  peuvent etre utilisees,    mais
  vos   options  seront   limitees  en raisons   des    caracteristiques
  intrinseques     de  votre moniteur. Choisissez le  couple de  valeurs
  les   plus    elevees  possibles    pour  une   meilleure  resolution.
  Attention, piloter un moniteur  a frequences  fixes a  des  frequences
  trop elevees peut l'endommager.

  LLeess ffrreeqquueenncceess dd''hhoorrllooggee ddee vvoottrree ccaarrttee ::

  Votre   manuel   de specifications      de votre carte    video decrit
  generalement     la ou   les   frequences  d'horloge  auxquelles  elle
  peut  travailler,    autrement dit, le  nombre total de points qu'elle
  peut ecrire par seconde.  Si vous n'avez  pas  cette  information,  le
  serveur  X les  obtiendra pour vous.  Meme si ce dernier ne fonctionne
  pas bien, il inscrira  sur la sortie  standard d'une  console  une  ou
  plusieurs   lignes   de   valeurs    d'horloges   ainsi  que  d'autres
  informations.    Si vous  redirigez  le tout    dans un  fichier,   ce
  sera  sauvegarde,   meme  si    vous  avez  a  relancer  votre systeme
  pour retrouver votre affichage.

  Voici un exemple des valeurs  obtenues pour   un   adaptateur  S3  (le
  serveur SGCS est utilise) :

       WGA: 86C911 (mem: 1024k clocks 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71)

     WWGGAA ::
        type de serveur

     8866CC991111 ::
        processeur video

     11002244kk ::
        taille de la memoire video

  Les valeurs indiquees sont des frequences en Mhz.

  Les   frequences  dont nous   disposons maintenant  serviront  dans la
  section    DDeevviiccee  et dans    la      section  MMoonniittoorr.   Nous    nous
  interesserons  a  cette  derniere   dans  ce  chapitre.    Le  suivant
  decrira rapidement la  configuration de ces valeurs  dans  la  section
  Device.

  LLaa bbaannddee ppaassssaannttee ddee vvoottrree mmoonniitteeuurr ::

  Enfin,   il     est   important  et   utile  de  connaitre   la  bande
  passante video    de   votre   moniteur.      Vous  deduirez     ainsi
  approximativement la plus grande valeur possible pour l'_h_o_r_l_o_g_e _p_o_i_n_t.
  Il y a pas mal de donnees  possibles, sachant que  certains  moniteurs
  sont   capables  de    fonctionner   30 %  au  dessus  de   leur bande
  passante nominale !

  La   connaissance   de  la  bande    passante    va   vous   permettre
  d'effectuer    des   choix    plus    intelligents   parmi   plusieurs
  configurations possibles.  Cela peut  affecter  la   qualite  visuelle
  de   l'affichage  (finesse des details, scintillement, ...).

  La  bande passante de votre moniteur doit etre indiquee dans le manuel
  qui  l'accompagne.  Si ce n'est pas  le cas, regardez la  plus  grande
  resolution   qu'il    supporte.     Voici  des  correspondances   tres
  courantes entre  resolution  et bande  passante (et donc   les  valeur
  maximales pour l'_h_o_r_l_o_g_e _p_o_i_n_t utilisable) :

               640 x 480               25
               800 x 600               36
               1024 x 768              65
               1024 x 768 entrelace    45
               1280 x 1024             110

  De  toute   facon,  il  n'y  a  rien   de magique dans tout cela ; ces
  valeurs   sont  les plus petites    frequences d'horloge  pour  chaque
  resolution  dans  la   base   de donnees des  modes  video standard de
  XFree86.   La  bande  passante  de   votre  moniteur  peut  etre  plus
  elevee  que   le   minimum   necessaire pour   sa resolution maximale,
  ne   soyez   dont   pas  affole   de   pouvoir  utiliser  une   valeur
  legerement superieure.

  Notez     egalement    que la    bande     passante est  rarement   un
  probleme  pour les frequences   d'horloge  en  dessous   de   65  Mhz.
  Avec    un  moniteur    SVGA     ou   haute   resolution,   vous    ne
  frolerez pas la limite de la bande passante de votre moniteur.   Voici
  quelques exemples :

                       Marque                  Bande passante video
                       ------                  --------------------

                       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

  Meme   les   moniteurs   bas   de  gamme  ne  sont   generalement  pas
  terriblement  limites   par   la    largeur   de  bande   pour    leur
  resolution.   L'ecran   NEC  Multisync   II en   est  un  bon exemple.
  D'apres ses  specifications, il ne peut afficher  800  x  600  points,
  mais seulement 800 x 560.  Pour de telles resolutions, vous n'avez pas
  besoin d'horloge tres rapide ni d'une bande passante tres large  ;  il
  est  probable que  le meilleur que vous puissiez obtenir   corresponde
  a  des   frequences de   l'ordre de 32 a  36  Mhz,  les  deux  n'etant
  pas tres loin de la bande passante du moniteur qui est de 30 Mhz.

  A  ces  frequences, votre image ne sera peut etre pas aussi fine qu'il
  le    faudrait      mais     certainement   d'une   qualite tolerable.
  Bien    sur,   il    serait   preferable  d'avoir  une  bande passante
  superieure,  disons  au   moins  36  Mhz.   Ce  n'est  toutefois   pas
  critique  pour    la   plupart   des applications   comme l'edition de
  texte, du   moment qu'il  n'y   a  pas   de   distorsion  severe  dans
  l'image (vos yeux vous le diraient).

  LLeess ccoonnttrroolleess ::

  La   gamme  de frequences     de synchronisation de   votre  moniteur,
  associee a   la  frequence    de   l'horloge   de    votre  adaptateur
  video,  determine  la  resolution  maximale  que vous pourrez obtenir.
  Mais il appartient  au  pilote  de  pouvoir  gerer  au    mieux  votre
  materiel.   Un    materiel  de  plus  haut  niveau  sans  un pilote de
  peripherique apte  a en tirer partie est un  gachis   !    D'un  autre
  cote,  avec   un  tres  bon pilote et un materiel peu performant, vous
  pourrez pousser votre materiel a son maximum. C'est la philosophie  de
  XFree86.

  44..11..33..  IInntteerrpprreetteerr lleess ssppeecciiffiiccaattiioonnss ddee bbaassee

  Cette  section  explique en detail les specifications dont nous venons
  de  parler,  ainsi     que  d'autres   choses  dont    nous     aurons
  besoin.      D'abord,  quelques  definitions.   Entre parentheses sont
  indiques    les    noms  symboliques    que    nous  utiliserons  pour
  effectuer les calculs.

     FFrreeqquueennccee ddee ssyynncchhrroonniissaattiioonn hhoorriizzoonnttaallee ((HHSSFF))
        Nombre de parcours horizontaux par seconde (voir ci-dessus)

     FFrreeqquueennccee ddee ssyynncchhrroonniissaattiioonn vveerrttiiccaallee ((VVSSFF))
        Nombre  de  parcours  verticaux  par  seconde  (voir ci-dessus).
        Importante car  elle  correspond  au  taux  de  rafraichissement
        maximal.

     FFrreeqquueennccee dd''hhoorrllooggee  ppooiinntt ((DDCCFF))
        Plus           formellement       "  frequence    d'horloge   de
        pilotage " ;   quelquefois appelee a tort  bande  passante.   La
        frequence    de   l'oscillateur   (VCO)   de  votre  adaptateur,
        correspondant  au   nombre maximum   de  points   par    seconde
        qu'il  puisse emettre.

     LLaarrggeeuurr ddee bbaannddee ppaassssaannttee vviiddeeoo ((VVBB))
        La  plus  haute   frequence  que  le  signal de votre   moniteur
        puisse atteindre.  Cela limite l'horloge point que  vous  pouvez
        utiliser et donc la finesse de votre image.

     LLoonngguueeuurrss ddee ttrraammee ((HHFFLL,, VVFFLL))
        La  longueur     de  trame  horizontale  (HFL)    correspond  au
        nombre  de tops d'horloge  necessaire   pour   que  le  faisceau
        electronique   de  votre moniteur  parcoure  une ligne (incluant
        les   bords gauche et  droit inactifs).  La  longueur  de  trame
        verticale  (VFL)   correspond au nombre de lignes  balayees pour
        une  image entiere (y compris les bords superieur  et  inferieur
        inactifs).

     TTaauuxx ddee rraaffrraaiicchhiisssseemmeenntt ((RRRR))
        C'est  le  nombre   d'images  par  seconde.    Les  plus  hautes
        frequences  sont  les  meilleures,  puisqu'elles  reduisent   le
        scintillement.   60  Hz est  correct, mais   la valeur  standard
        VESA  est  de  72  Hz. Le  calcul donne :

          RR = DCF / (HFL * VFL)

     A noter que le produit au  denominateur  ne  correspond  pas  a  la
     resolution  visible du moniteur, mais bien  a quelque chose de plus
     grand. Nous verrons les details apres.

  AA pprrooppooss ddee llaa llaarrggeeuurr ddee bbaannddee

  Les  fabricants  de  moniteurs  aiment   annoncer   de  larges  bandes
  passantes,  parce     que  cela  determine   directement la  precision
  des changements    de   l'intensite       et   des     couleurs     de
  votre  ecran. Une   plus grande bande passante   signifie souvent  une
  plus grande finesse des details.

  Votre  moniteur   utilise     des    signaux    electroniques     pour
  presenter   une   image   a    vos  yeux.    De   tels  signaux   sont
  convertis sous  forme analogique a  partir d'un signal  digital.   Ils
  peuvent  etre  consideres   comme  une   combinaison  d'ondes simples,
  chacune ayant une  frequence fixe,  la  plupart  d'entre  elles  etant
  dans   la  gamme  du  megahertz,  disons  de l'ordre de 20 a  70  MHz.
  La largeur   de bande  de  votre moniteur  correspond effectivement  a
  la  plus  haute  frequence de signal analogique qu'il puisse supporter
  sans distorsion.

  Dans notre cas,  la largeur de bande   est  surtout  importante  comme
  point  de  coupure approximatif pour la plus  grande  valeur d'horloge
  point que  nous pourrons utiliser.

  FFrreeqquueenncceess ddee ssyynncchhrroonniissaattiioonn eett ttaauuxx ddee rraaffrraaiicchhiisssseemmeenntt

  Le  trace  d'une   ligne   horizontale    a  l'ecran    ne  correspond
  qu'a   la    portion  visible de     la trame horizontale entiere.  Il
  n'y a a un moment  donne qu'un seul point reellement actif.   Le  taux
  de   rafraichissement  est suffisant pour que, grace  a la persistence
  retinienne, vous ayez une image complete.

  Souvenez-vous que  le parcours du faisceau est  un  zig-zag ; il va de
  gauche a droite et revient rapidement a gauche en descendant.

  Maintenant,    nous   pouvons evoquer   les relations  entre   taux de
  rafraichissement,    horloge  point et     taille   de  trame.     Par
  definition, un hertz (Hz) est  une unite de  frequence correspondant a
  un cycle par seconde. Donc  si la longueur de  trame  horizontale  est
  HFL,   et   la   longueur  de  trame verticale    est VFL, l'ecran est
  entierement couvert en (HFL * VFL) tops d'horloge.     Puisque   votre
  carte    emet     DCF tops par   seconde, manifestement   le  faisceau
  electronique   de  votre moniteur peut balayer  l'ecran  de  gauche  a
  droite   et    de  haut   en  bas DCF / (HFL * VFL) fois  par seconde.
  C'est  le taux de rafraichissement (RR)  de votre ecran,  c'est-a-dire
  le nombre de fois par seconde que votre image sera redessinee.

  Vous    devez    bien  assimiler  ce  concept    pour   effectuer  une
  configuration correcte     avec   le    meilleur     compromis   entre
  resolution  et scintillement.

  44..11..44..  CCoommpprroommiiss ddaannss llaa ccoonnffiigguurraattiioonn ddee vvoottrree ssyysstteemmee

  La      formule    suivante    est   obtenue      a  partir   de    la
  precedente :

       DCF = RR * HFL * VFL

  Votre _h_o_r_l_o_g_e _p_o_i_n_t  est fixee  par  les   caracteristiques  de  votre
  carte  video.   Vous  pouvez utiliser ce capital de points par seconde
  pour  acheter   soit  du  taux    de  rafraichissement,  soit  de   la
  resolution   horizontale   ou verticale. Si   l'un augmente, un ou les
  deux autres doivent diminuer.

  Notez cependant que  le   taux   de  rafraichissement  ne   peut  etre
  superieur  a  la   frequence  maximum  de  synchro verticale de  votre
  moniteur.  Pour un   moniteur donne  et une horloge  point donnee,  il
  y  a  un minimum  dans les longueurs  de trames en dessous duquel vous
  ne pouvez pas descendre.

  En  choisissant vos parametres,  n'oubliez pas : si RR est trop petit,
  vous serez gene par le scintillement.

  Vous  ne souhaiterez donc pas descendre votre taux de rafraichissement
  en dessous de 60 Hz.  C'est le minimum acceptable  en  dessous  duquel
  l'oeil  fatigue  vite ; si vous  etes tres sensible, choisissez 72 Hz,
  valeur standard VESA.

  La  sensibilite  au scintillement est   tres personnelle  mais  depend
  aussi   de  l'environnement  de   travail.  Si vous travaillez sur des
  fonds noirs   et   des   couleurs   tres  contrastees,   vous  pourrez
  descendre a 45 Hz.

  Faites  un essai :   ouvrez une fenetre  xterm -bg  white -fg black et
  agrandissez-la au maximum.  Reglez  votre moniteur aux trois quarts de
  son  intensite  et  ne regardez pas l'ecran.  Jetez ensuite des  coups
  d'oeil sur  votre  ecran, sans le   regarder  droit  devant   mais  en
  utilisant  la vision peripherique ; ce sont les cellules visuelles qui
  sont le plus sensibles au  scintillement.   Si  vous  estimez  que  la
  vision est  confortable ou tolerable, le taux de rafraichissement vous
  convient, sinon augmentez-le de facon a ne pas vous exposer a des maux
  de tete !

  Disons   qu'a   ce stade   vous   disposez d'une   valeur de taux   de
  rafraichissement.  Avec le choix de HFL et VFL, nous avons encore  pas
  mal de marge de manoeuvre.

  44..11..55..  TTaaiillllee mmeemmooiirree nneecceessssaaiirree

  La  quantite  de memoire video dont vous disposez limite la resolution
  que vous pouvez atteindre pour un affichage couleur ou  a  niveaux  de
  gris.  Ce  n'est   probablement pas un critere pour les ecrans noir et
  blanc.

  Pour  les affichages  a  256 couleurs,  un  octet  de   memoire  video
  permet   de  coder  un  point.    Cet   octet  contient  l'information
  determinant  le  melange  de  Rouge,  Vert  et  Bleu  necessaire  pour
  l'obtention     de   la  couleur.        Pour   une  resolution     de
  800 x 600  points  avec  un  octet    par    point,  il     faut  donc
  800 * 600 = 480.000 octets de memoire sur votre carte video.

  Plus     generalement,    les   besoins    en    memoire   seront   de
  (HR * VR) / 1024 kilo-octets   de RAM     (DRAM      ou  VRAM).   Dans
  le  cas  d'une   resolution de 936 x 702 points, nous aurons besoin de
  (936 * 702) / 1024, soit 642 ko.  Si  vous  disposez  d'un  megaoctet,
  c'est parfait.

  Si  vous   n'avez que 512 ko,  il  vous faudra choisir  une resolution
  inferieure.   Meme  avec  un  moniteur  tres  performant,  une  taille
  memoire  insuffisante    ne permet pas  de   tirer pleinement avantage
  de celui-ci.  D'autre part, si vous disposez d'un  megaoctet  et   que
  votre  ecran  ne   supporte que 800  x  600,  vous ne pourrez depasser
  cette resolution.

  La  memoire  en  supplement   n'est  jamais  perdue.   XFree86   saura
  l'utiliser   pour  gerer  un   ecran   virtuel   plus  grand  que   la
  resolution utilisee (voir la configuration  de la  taille  d'un  ecran
  virtuel   dans   XF86Config).   Souvenez-vous   qu'une  taille memoire
  de  512  ko correspond a  512 * 1024 = 524288 octets.

  Si vous vous contentez  de  16  couleurs,  vous  pouvez   indiquer  au
  serveur  que  vous    n'utiliserez     que  4 bits     par   point  et
  ainsi doubler   la resolution que votre  carte  peut  supporter.   Les
  cartes    S3,  par  exemple,  savent    gerer  1024 x 768 x 256.  Vous
  pouvez passer a 1280 x 1024 x 16 avec 4 bits par point (Depth 4,  voir
  ce parametre dans XF86Config).

  44..11..66..  CCaallccuulleerr lleess ttaaiilllleess ddee ttrraammeess

  Attention  :         cette   methode     a      ete developpee    pour
  les    moniteurs     multi-synchro.    Elle  fonctionnera  sans  doute
  pour  les  moniteurs  a frequence fixe, sachant  que   vous ne  devrez
  pas  vous  permettre de  depasser les frequences imposees  par  celui-
  ci.

  Commencons  par   diviser DCF par  la plus  grande valeur  de HSF pour
  obtenir le nombre minimum de points par ligne disponibles.

  Par exemple, supposons  que vous ayez une  carte   SVGA  Sigma  Legend
  avec une horloge a    65  MHz et   un  moniteur avec    une  frequence
  horizontale de 55 kHz.   La valeur (DCF / HSF)  est donc 1181.

  Maintenant, un peu de magie ;-).  Arrondissez cette valeur a  la  plus
  proche  valeur  multiple  de  8.   La  plupart  des  cartes SVGA et S3
  utilisent en effet des registres 8 bits decales de   3  bits  vers  la
  gauche,  ce  qui  fait reellement 11 bits.  De toute facon, ca ne fait
  pas de mal. Donc, nous obtenons 1176.

  Ceci  correspond a la valeur  de HFL minimum utilisable.   Une  valeur
  superieure  de  HFL  (donc  une meilleure resolution horizontale) peut
  etre  obtenue,  en  diminuant    la  valeur    de   HSF.   Mais     le
  scintillement   sera   superieur.   Au  debut  une  petit  gymnastique
  intellectuelle    est   necessaire.     Dites-vous   bien     que   la
  frequence   d'horloge  de votre  carte  video donne  un nombre maximal
  de points par seconde.  Evidemment, plus vous  mettez  de  points  par
  ligne,  plus  vous  mettez de temps a la  parcourir, et moins vous  en
  parcourerez.

  Continuons !    De  maniere       un    peu    brutale   (cela      se
  demontre,    mais  l'on   tomberait  dans des    calculs  certes  plus
  precis, mais rebarbatifs), disons   que 8800 %% de   la  longueur  de  la
  trame  horizontale  est disponible pour  la partie visible de la ligne
  balayee. Cela laisse  la  marge necessaire pour les bords et le retour
  de balayage. Nous obtenons donc la valeur de 944.

  Maintenant,  pour  obtenir  une  image au  format 4:3, definissons  la
  resolution  verticale  aux  33//44 de   la   resolution horizontale.   Ce
  qui  nous  donne  708.  Enfin, la valeur reelle de VFL est obtenue  en
  mmuullttiipplliiaanntt cette  valeur par  1.05 (toujours pour  les  bords  et  le
  retour de balayage).  Nous obtenons 743.

  La  encore,  cela   semble  tres empirique, mais nous considerons pour
  cette  methode  que vous  connaissez le  minimum de choses  sur  votre
  materiel.    Nous  verrons    plus loin  dans   les exemples reels que
  si les donnees de depart sont nombreuses, il est possible  d'effectuer
  des calculs rigoureux.

  A  propos  de  4:3, ce rapport nous  rapproche du celebre nombre d'or,
  (1 + sqrt(5))/2.  Il  semble assez plaisant d'avoir  un tel  format  ;
  les      resolutions     classiques    (640  x  480,  800  x  600   et
  1024 x  768)  l'approchent   toutes.   C'est  plus  psychologique  que
  technique ; rien    ne vous empeche    de modifier ce rapport.
  Nous avons donc : HFL=1176 et VFL=743.  Divisons 65 Mhz par le produit
  des deux, ce qui nous  donne un taux  de rafraichissement de 74.4  Hz.
  Excellent  !     Mieux   que  le  standard  VESA !    Et vous avez une
  resolution  de  944 x 708,   ce  qui   est   meilleur  que 800 x  600.
  Pas mal !

  Vous   pouvez   meme   ameliorer  le  taux  de   rafraichissement  aux
  alentours  de 76  Hz,  en sachant que  les   moniteurs ont souvent une
  synchro  horizontale  de 2 kHz superieure a la valeur nominale, et  en
  diminuant   VFL.    Mais laissons ces   manipulations   a  plus  tard.
  Assurez-vous  que  votre moniteur supportera les 76 Hz (Le NEC 4D, par
  exemple ne peut aller qu'a 75 Hz).

  Avouez   que      jusque-la   cela     n'a      pas  ete  completement
  magique !

  44..11..77..  MMaaggiiee nnooiirree eett ttooppss ddee ssyynncchhrroo

  Nous  avons   calcule  les  valeurs   HFL  et VFL pour la frequence de
  l'_h_o_r_l_o_g_e _p_o_i_n_t que nous avons choisie. Nous avons trouve un  taux  de
  rafraichissement acceptable et verifie que nous disposions d'assez  de
  memoire.  Maintenant il est necessaire de savoir quand  et  ou  placer
  les tops de synchro.

  Les  tops  de   synchro controlent les frequences  reelles de balayage
  horizontale et verticale de votre moniteur.  Les valeurs  HSF  et  VSF
  que   vous   avez  extraites  de    votre  manuel sont des  frequences
  nominales, et correspondent a des maxima approximatifs.  Les  tops  de
  synchro   injectes  dans    le  signal  video   par  votre  adaptateur
  permettent au moniteur de fonctionner correctement.

  Vous souvenez-vous  que seule   une partie  du  temps  necessaire   au
  balayage  d'une trame est   utilisee pour l'image a  afficher (i.e. la
  resolution) ?

  SSyynncchhrroo hhoorriizzoonnttaallee ::

  Selon  les  definitions precedentes,  il faut HFL  tops  d'horloge  de
  votre   carte  pour tracer une  ligne complete.  Appelons HR le nombre
  de tops correspondant seulement a la  partie  visible  (la  resolution
  horizontale).        Donc     HR < HFL  par definition.  Concretement,
  considerons   que  le  signal  video   demarre  a  l'instant   0,   et
  schematisons les deux valeurs comme figure ci-dessous :

       +----------------------------------------------------------------+
       |_____________________________________                           |
       |                                    |                           | unite : top
       +------------------------------------+---------------------------+
       0                                   HR                          HFL
                                            |        |         |        |
                                            |<-HGT1->| <-HSP-> |<-HGT2->|

  Maintenant,  nous  devons  placer  un  top de synchro  de longueur HSP
  entre la fin du  signal video correspondant a la  partie visible et la
  fin  de  la   trame    entiere.   Pourquoi  cela  ?  Parce   que  nous
  souhaitons  centrer  l'image au mieux et   nous avons  deja  vu  qu'il
  fallait  laisser  un temps  non negligeable, d'une part pour les bords
  non  visibles,  d'autre part pour   le retour du  faisceau.  Si   nous
  reussissons cela, nous obtiendrons une image correcte.
  De    chaque cote de HSP   doivent etre prevus des temps  "de  garde",
  et    de    stabilisation.     Environ     30    tops   en    premiere
  approximation.    Ce      sont     HGT1    et     HGT2.     En realite
  HGT1 est different de  HGT2, mais vous pourrez les prendre  egaux   si
  vous  partez  de  rien.   Vous   ajusterez apres.

  Si  vous  avez  de  la  chance,  ou  un  bon manuel accompagnant votre
  moniteur (ou les deux), les valeurs ci-dessus sont  indiquees, le plus
  souvent  en  duree, mais il est tres facile  d'en deduire le nombre de
  points  (ou  de tops  d'horloge)   correspondant.  Par   exemple,  mon
  manuel (moniteur HYUNDAI HL7682P) indique les valeurs suivantes :

                                       HGT1            HSP             HGT2            Frequences
                                       ----            ---             ----            ----------
               640x480:  H(u)          0.636           3.813           1.907           31,5 kHz
               VGA       V(ms)         0.318           0.064           1.048           60.0 Hz

               800x600   H(us)         1.119           2.399           1.279           48,1 kHz
               VESA      V(ms)         0.772           0.124           0.479           72,0 Hz

               1024x768  H(us)         0.615           1.723           2.338           48,9 kHz
               SVGA/NI   V(ms)         0.204           0.306           0.327           60,5 Hz

               1024x768  H(us)         0.320           1.813           1.920           56,48 kHz
               VESA      V(ms)         0.053           0.106           0.513           70,1 Hz

               1280x1024 H(us)         0.296           0.593           2.815           64,3 kHz
               Standard  V(ms)         0.124           0.078           0.498           60,1 Hz

  Ce  sont   des valeurs  assez courantes,  certaines  etant au standard
  VESA.  Il y  a  fort a  parier que   beaucoup de moniteurs    ont  des
  valeurs       semblables.   Vous    pouvez     utiliser  ces   valeurs
  comme reference, selon votre resolution.

  Pour  nos  calculs, prenons     par  exemple  une  valeur   de   HSP =
  3,8  us  (VGA).  Utilisant l'horloge  a 65 MHz decrite, nous    savons
  que           HSP          est          equivalent          a        :
  65  * (10 ^ 6) * 3.8 * (10 ^ (-6)) soit 247 tops d'horloge (^ signifie
  puissance).

  Retour sur  le schema  precedent.  Comment devons nous placer nos  247
  tops d'horloge ?

  En   utilisant   notre exemple,  nous   avions   HR=944  et  HFL=1176.
  La difference  est  donc  de  1176 - 944 = 232   qui est  inferieur  a
  247  !  Nous devons  donc effectuer quelques ajustements. Que pouvons-
  nous faire ?

  En augmentant  HFL  de  8  et    en  diminuant  VFL   d'autant,   nous
  obtenons une difference de 1184 - 936 = 248. On y est presque.

  Ensuite,  au   lieu  d'utiliser la valeur  de 3,8 us, nous utiliserons
  3,5 us  pour HSP.   Nous obtenons alors  65 * 3,5 = 227.  Cela  semble
  mieux,  bien  que   248  ne  soit   pas  beaucoup  plus grand que 227.
  Rappelons qu'il faut reserver du temps pout HGT1  et HGT2.  Or il faut
  au  moins 30 tops  pour  chacun.  De plus  ils  doivent etre multiples
  de 8, donc disons 32. Sommes-nous coinces ?

  Non, heureusement. Nous allons en fait calculer la  longueur de  trame
  qu'il  va nous falloir, en nous rappelant que la valeur de  HFL = 1176
  est un minimum. On peut l'augmenter,  en  diminuant  la   valeur  HSF,
  donc le taux de rafraichissement.

  Continuons  a  chercher  les bonnes valeurs. 936  est bien multiple de
  8.   Ajoutons   HGT1,   936  +  32  =  968.   Ajoutons   ensuite  HSP,
  968   +   227   =          1195.            Ajoutons    enfin    HGT2,
  1195 + 32 = 1227.   Cela ne semble  pas  trop mal, mais  1232  est  la
  plus proche valeur multiple de 8.

  Utilisons  encore  la  calculatrice pour trouver la longueur du top de
  synchro reellement utilise.   1232  -  32  =  1200  qui  est  multiple
  de    8.   1232  - 32 - 968 =      232, correspondant a une synchro de
  3,57 us qui est raisonnable.

  De plus  936 / 1232 = 0.76 qui  est assez  proche  des  80%  que  nous
  donnions.   Nous  solliciterons  donc   le  moniteur  a  52,7  kHz (65
  MHz / 1232) qui est dans ses possibilites.

  SSyynncchhrroo vveerrttiiccaallee ::

  En   utilisant  la  regle   des  trois-quarts,  nous  donnerons  a  la
  resolution  verticale  la  valeur 702. La  longueur de trame verticale
  sera de 702 * 1,05 = 737.

  Le  taux de  rafraichissement   de  l'ecran   est  donc  egal  a    65
  Mhz / (737 * 1232) = 71,6 Hz.  C'est excellent !

  Le schema de synchro verticale est similaire :

       +----------------------------------------------------------------+
       |_____________________________________                           |
       |                                    |                           | unite : top
       +------------------------------------+---------------------------+
       0                                   VR                          VFL
                                            |         |         |
                                            |<--VGT-->|<--VSP-->|

  La  synchro  demarre   apres   l'affichage de la  derniere ligne.  VGT
  correspond  au  temps  "de  garde"  vertical   (compte  en  nombre  de
  lignes)  necessaire  avant  le top  de synchro.  Certains moniteurs se
  satisfont d'une   valeur  VGT = 0,  ce   que   nous  utiliserons  dans
  l'exemple.   Certains necessitent 2  ou 3 lignes de stabilisation,  et
  si   un  doute      existe, il    vaut     mieux  les  inserer.  Aucun
  probleme ne pourra venir de la.

  Revenons   a    notre    exemple : a    partir    de  la definition de
  la longueur de trame, l'unite de temps vertical correspond   au  temps
  necessaire    pour tracer une  ligne horizontale complete,   ce    qui
  donne ici    (1232 / 65 Mhz) = 18,95 us.

  L'experience  montre  que  la valeur  de top    de  synchro  verticale
  devrait  se   trouver  dans  l'intervalle   50  a 300 us.  Prenons par
  exemple  150 us, qui   correspond a  8  temps   de  trame  horizontale
  (150 / 18.95).

  44..11..88..  RRaasssseemmbblloonnss nnooss iiddeeeess

  Nous  pouvons  deja  construire    le  debut  de  la  section MMoonniittoorr.
  Nous  ne  nous     etendrons  pas   sur   les   rubriques  _I_d_e_n_t_i_f_i_e_r,
  _V_e_n_d_o_r_N_a_m_e et _M_o_d_e_l_N_a_m_e. Tres facile.
  La  rubrique _B_a_n_d_w_i_d_t_h doit indiquer la  largeur  de bande passante de
  votre moniteur. Exemple :

       # Bandwidth est en MHz sauf si unites specifiees

           Bandwidth   75.0

  La rubrique  _H_o_r_i_z_S_y_n_c  indique  la  ou  les  frequences  horizontales
  supportees   par  votre  moniteur.    On  peut y indiquer  une   seule
  frequence,   plusieurs    valeurs   discretes   ou   bien    un     ou
  plusieurs intervalles. Exemple :

       #    HorizSync   31.5              # typique pour un moniteur a frequence fixe unique
            HorizSync   30-82             # multisync
       #    HorizSync   31.5, 35.2, 37.5  # frequences de synchro multiples
       #    HorizSync  15-25, 30-50       # plusieurs intervalles de frequences

  On   agira  de   meme     pour   la   rubrique _V_e_r_t_R_e_f_r_e_s_h  avec   les
  frequences verticales.

  Dans  la suite de     cette section se    trouvent   des  tables   des
  modes  video.  Pour chaque mode, cinq rubriques sont definies : le nnoomm
  dduu  mmooddee,  la  ffrreeqquueennccee  dd''hhoorrllooggee,  les   ttiimmiinnggss  hhoorriizzoonnttaauuxx    et
  vveerrttiiccaauuxx,    enfin     les    ooppttiioonnss.     Deux presentations    sont
  possibles  :   l'ancienne    (celle   qui  etait  en   vigueur    pour
  XFree-2.1) se  presente  sous forme de lignes de  valeurs  numeriques,
  chaque   ligne specifiant  au serveur    un mode :

       ModeLine        < nom >   <horloge>    HR  SH1  SH2  HFL      VR  SV1  SV2  VFL

  La nouvelle presentation,  plus claire,  fait preceder chaque rubrique
  d'un mot-cle :

       Mode "nom"
               DotClock  <horloge>
               HTimings  HR  SH1  SH2  HFL
               VTimings  VR  SV1  SV2  VFL
               Flags     <options>
       EndMode

  Pour   des  raisons   de  simplicite,  nous  utiliserons  la  premiere
  presentation.

  Le nom du  mode  video est generalement   donne  entre  guillemets  et
  est utilise  comme reference dans la  section SSccrreeeenn  apres le mot-cle
  MMooddeess. Le nom peut etre  omis si la ligne  decrite  appartient au meme
  mode video que la precedente.

  La    valeur    <_h_o_r_l_o_g_e>   represente  la  frequence d'horloge   (_d_o_t
  _c_l_o_c_k, que nous avons    appelee DCF) qui est  utilisee  pour  generer
  les  timings des  deux rubriques suivantes.

  La  rubrique   _H_T_i_m_i_n_g_s contient  quatre champs decrivant comment doit
  etre   generee    chaque ligne  a l'ecran.  Ces champs sont   exprimes
  en  nombre   de  pixels.   La  premiere    valeur    correspond  a  llaa
  rreessoolluuttiioonn  hhoorriizzoonnttaallee   vviissiibbllee,  c'est-a-dire     le   nombre    de
  points  illumines   (que nous avons  appele  HR).   La deuxieme valeur
  indique   a    quel  pixel   le   top   de  synchro  horizontal   doit
  commencer  (HR + HGT1).    Le  troisieme    champ  indique a      quel
  pixel    le         top         de      synchro       doit       finir
  (HR  +  HGT1+ HSP).    Le   quatrieme  champ  donne la longueur totale
  de la trame (HFL).

  La   rubrique  _V_T_i_m_i_n_g_s   contient    egalement  quatre  champs.    La
  premiere     valeur      correspond     a   llaa   rreessoolluuttiioonn  vveerrttiiccaallee
  vviissiibbllee,   c'est-a-dire le     nombre de  lignes illuminees  (que nous
  avons   appelee  VR).  La deuxieme valeur  indique a quelle   ligne le
  top  de  synchro  vertical doit commencer (VR +  VGT).   Le  troisieme
  champ   indique  a  quelle  ligne  le   top  de  synchro   doit  finir
  (VR + VGT+ VSP).  Le  quatrieme champ donne la longueur   totale de la
  trame verticale (VFL).

  Exemple :

               #Nom_de_mode    Horloge Timings horizontaux     Timings verticaux

               "752x564        40      752 784  944 1088       564 567 569 611
                               44.5    752 792  976 1240       564 567 570 600

  Note  :  X11R5  ne     supporte    que  les   valeurs  entieres   pour
  l'horloge.

  Rappel : Toutes les valeurs horizontales HR,  HGT1, HGT2, HFL (et donc
  les cumuls) sont ddiivviissiibblleess  ppaarr 88.   Cela n'est  pas requis  pour les
  timings verticaux.

  Autre exemple :

               valeurs de timings horizontaux : 800 864 1024 1088

  Cette ligne  definit le nombre  de points illumines (800),  le  numero
  du   point   a   partir duquel    le  top  de   synchro demarre (864),
  le numero du point  a partir  duquel  le  top  de   synchro   s'arrete
  (1024),  suivi   du   numero  du dernier point de la ligne horizontale
  (1088).

  Le  nombre   de lignes  depuis  le haut    de  l'ecran   jusqu'en  bas
  correspond  a  une trame. Le signal de base d'une trame est une ligne.
  Un certain nombre   de lignes correspond a  l'image  affichee.   Apres
  la  derniere  ligne  affichee, un delai d'un certain  nombre        de
  lignes    est    genere, precedant le   top  de    synchro  verticale.
  Celui-ci   dure l'equivalent de   quelques " temps lignes ".  Enfin un
  nouveau  delai     de  quelques lignes    est    necessaire  apres  la
  synchro.  On   retrouve  de la  meme   maniere quatre valeurs :

               valeurs de timings verticaux : 600 603 609 630

  Cet  exemple indique qu'il y a  600 lignes visibles a l'ecran, que  la
  synchro   verticale  demarre  a    la  603e  ligne, s'arrete a la 609e
  ligne et qu'il y a au total 630 lignes.

  Ces valeurs ne sont ppaass ffoorrcceemmeenntt ddiivviissiibblleess ppaarr 88.

  Revenons    a   notre  exemple.   Il  ne  nous   reste plus maintenant
  qu'a  ecrire  toutes  ces   valeurs  correctement  dans  la    section
  appropriee, comme suit :

       ModeLine        < nom >    DCF      HR  SH1  SH2  HFL      VR  SV1  SV2  VFL

  ou  SH1    et    SH2  correspondent respectivement  au   debut et a la
  fin de la  synchro horizontale, SV1   et SV2 respectivement  au  debut
  et a la fin de la synchro verticale.

                       #nom       horloge  timings horizontaux    timings verticaux   options
       ModeLine        936x702    65       936 968 1200 1232      702 702  710  737

  Aucune option n'est necessaire ici. Nous avons fini.

  Selon  le  materiel  dont vous  disposez, certaines options   pourront
  etre necessaires. Decrivons-les rapidement :

     IInntteerrllaaccee
        indique que le mode est entrelace

     DDoouubblleeSSccaann
        indique un mode ou chaque ligne est parcourue deux fois.

     ++HHSSyynncc eett --HHSSyynncc
        permettent de   selectionner   la  polarite   du   signal     de
        synchronisation horizontale

     ++VVSSyynncc eett --VVSSyynncc
        permettent  de   selectionner    la   polarite du    signal   de
        synchronisation verticale

     CCoommppoossiittee
        permet de specifier l'utilisation   d'une synchro composite  sur
        les materiels qui le supportent.

     ++CCSSyynncc eett --CCSSyynncc
        permettent    de  selectionner    la   polarite   du  signal  de
        synchronisation composite

  44..11..99..  FFooiirree AAuuxx QQuueessttiioonnss

  1.   LL''eexxeemmppllee   qquuee  vvoouuss  aavveezz  ddoonnnnee   nnee  ccoorrrreessppoonndd   ppaass  aa  uunnee
     rreessoolluuttiioonn ssttaannddaarrdd.. PPuuiiss--jjee ll''uuttiilliisseerr  ??

     Pourquoi  pas  ?  Il n'y a aucune raison pour que vous soyez limite
     aux resolutions    de    640 x 480,    800 x 600  ou  1024  x  768.
     Le  serveur  X  vous  autorise a configurer votre systeme avec  une
     tres grande  liberte.    Cela  prend  relativement  peu   de  temps
     d'obtenir  une   configuration  correcte.  La chose importante    a
     prendre        en     compte      est          le     taux       de
     rafraichissement.    Ne    choisissez   pas   une   resolution trop
     grande au prix d'un scintillement desagreable.

  2.  EEsstt--ccee llaa sseeuullee  rreessoolluuttiioonn ppoossssiibbllee aavveecc lleess   vvaalleeuurrss  dd''hhoorrllooggee
     ddee   6655 MMHHzz eett uunnee   HHSSFF ddee  5555 kkHHzz ??

     Absolument     pas  !     Nous    vous   invitons  a     suivre  la
     procedure  pour faire des  essais  differents  jusqu'a obtenir  une
     configuration  qui  vous  convienne.   Cette  experience  peut vous
     amuser.  La   plupart   des  configurations    vous  donneront  des
     effets  etranges,   mais   rien  ne   peut  vraiment   abimer votre
     moniteur multi-synchro (sauf si vous demandez  a votre carte  video
     une  cadence    hors    de   ses  limites  ;   de    meme, si  vous
     restez relativement  pres des  resolutions   conseillees pour votre
     moniteur,    tout   ira     bien).     Pour    les    moniteurs   a
     frequences  fixes,    attention !      Ce   genre   d'essais    par
     tatonnement peut les endommager.

  3.   VVoouuss aavveezz mmeennttiioonnnnee ddeeuuxx  rreessoolluuttiioonnss ssttaannddaarrdd..  DDaannss  llee ffiicchhiieerr
     XXFF8866CCoonnffiigg,, iill  yy   aa  pplleeiinn ddee  rreessoolluuttiioonnss  ddiissppoonniibblleess,,  ppoouuvveezz--
     vvoouuss  mmee      ddiirree  ss''iill    eesstt  ppoossssiibbllee  dd''eenn   pprreennddrree  eett    ddee
     lleess bbrriiccoolleerr ??

     Absolument !   Prenez  par exemple    la   resolution  standard  de
     640  x 480.  Elle est  decrite avec une frequence de pilotage de 25
     MHz, les  longueurs de trames sont  respectivement de 800  et  525.
     Le   taux   de  rafraichissement  est   donc de 59,5 Hz.   Pas trop
     mauvais.  Mais la  frequence  de  28   MHz  est  une  valeur  assez
     courante  sur  les   cartes  video SVGA.  Si  nous l'utilisons pour
     piloter cette resolution,  en    suivant   la  procedure   decrite,
     nous  obtenons    des   longueurs   de    trames de    812 et  505.
     Le   taux   de  rafraichissement       passe   alors      a      68
     Hz.   Nette amelioration par rapport a la valeur standard !

  4.   CCoommmmeenntt   ffaaiirree       aavveecc     lleess   mmooddeess      eennttrreellaaccee       //
     nnoonn--eennttrreellaaccee ??

     A   une frequence    donnee, un   affichage  entrelace  scintillera
     plus  qu'un   non-entrelace,   ce qui explique que  ce mode soit de
     plus en plus   abandonne. Avec un scintillement accru,  vous gagnez
     en  resolution   avec   une  horloge   point  plus  faible.   Si la
     valeur  DCF etait  assez    grande   (90  Mhz     ou  plus),     le
     mode entrelace      n'engendrerait  plus   de   scintillement, mais
     aux frequences    courantes,  les     moniteurs   fonctionnant   en
     mode entrelace sont assez mauvais sous X.

  5.   PPoouuvveezz--vvoouuss   rreessuummeerr     rraappiiddeemmeenntt  ccee  ddoonntt  vvoouuss    vveenneezz  ddee
     ppaarrlleerr ??

  +o   Pour toute frequence de  pilotage  donnee,  l'augmentation  de  la
     resolution       implique       une    diminution      du      taux
     de rafraichissement, et donc introduit plus de scintillement ;

  +o   Si une haute  resolution est souhaitable  et  que votre   moniteur
     la  supporte,  essayez  de  vous  procurer   une  carte  video SVGA
     fournissant une   horloge (DCF)  suffisante.   Plus   grande   sera
     cette frequence, meilleure sera votre image.

  44..11..1100..  DDeeuuxx eexxeemmpplleess ssuupppplleemmeennttaaiirreess ddee ccaallccuullss

  Prenons une autre hypothese :

  Soit  une   carte   video  ayant   une    horloge  a  40   MHz,  et un
  afficheur  ayant  une frequence horizontale    pouvant varier de  30 a
  37 kHz. Nous souhaitons  faire fonctionner l'ensemble a une resolution
  d'environ  800 x 600.   Le  nombre  minimum de points par  ligne   est
  donc  de 40000000 / 37000 =  1081,081, soit 1081 points par ligne.

  Nous  choisirons cette valeur dans les calculs qui vont suivre. Chaque
  ligne de   notre affichage aura au  moins  1081 points.  Arrondissons-
  le a 1088 pour le rendre divisible par 8.  Maintenant, considerons que
  le top de synchro horizontale  doit    durer 3,8 us.    Calculons    a
  combien  de  points cela correspond, sachant que la "duree" d'un point
  est de 1 / 40000000 de seconde, soit 0.025 us par point.

  Le nombre de points correspondant a 3,8 us est  :

       3,8 us = P points * (0,025 us / point)

  soit

       P points = 3,8 us / (0,025 us / point) = 152 points

  152 est divisible par 8. S'il  ne l'etait pas, nous  devrions  choisir
  le   multiple   de  8  le  plus  proche.  Nous avons  1088  points par
  ligne au total.  La resolution visible sera de  800  points.  Il  nous
  reste  donc  a   determiner  les   temps    qui   se trouveront  avant
  et apres la synchronisation necessaire pour l'affichage.

  La regle  veut  que  l'on   mette   environ 30   points   de    chaque
  cote. Dans ce cas, choisissons la valeur  de 32, divisible par 8.

  Or il nous reste :

       (1088 - 800 - 152) = 136 points

  que   nous    devons   repartir   de    chaque   cote   de la synchro.
  Divisons le nombre en   deux parts egales,  soit 68  points  avant  la
  synchro et 68 points apres.

  Les quatre valeurs du fichier XF86Config seront donc

       800     (800 + 68)      (800 + 68 + 152)        (800 + 68 + 152 + 68)

  ou

       800  868  1020  1088

  Maintenant,   calculons    les   nombres   verticaux.   Tout  d'abord,
  souvenez-vous que les  nombres verticaux  ne  sont   pas  exprimes  en
  termes  de  points mais   de lignes.  Donc, nous avons   a calculer le
  temps que prend l'affichage d'une  ligne.  Ce calcul  est   simple   a
  faire,   car  nous  savons  que  chaque ligne   fait 1088  points   et
  que chaque   point dure 0,025 us, ce qui donne :

       (1088 points / ligne) * (0,25 us / point) = 27,2 us / ligne

  Puisque nous  avons choisi une  definition de  800 points  par  ligne,
  choisissons  le   nombre  de lignes selon   le  rapport de 4/3.    800
  valant 4 x 200, nous aurons 600  lignes visibles.   La resolution sera
  bien de 800 x 600.

  Nous  savons  qu'un  top  de  synchro  vertical  doit  se trouver dans
  l'intervalle 50 a 300 us. Si nous  choisissons  150  us  comme  valeur
  courante,   nous    trouverons      a  combien   de      lignes   cela
  correspond  en divisant :

       (150 us / top) / (27,2 us / ligne) = 5,51 lignes par top

  En arrondissant  a  la  valeur    entiere   immediatement  superieure,
  nous obtenons 6 lignes par top de synchro.

  Pour  obtenir  le nombre total  de lignes par trame (lignes illuminees
  plus lignes  non-illuminees sur  les bords), nous considerons que   le
  nombre   total   de  lignes est de  5%  superieur au nombre  de lignes
  visibles. Le nombre total de lignes est de :

       (600 lignes) * 1,05 = 630 lignes par trame

  Nous devons placer le top de synchro dans  les  lignes  non  visibles,
  entre la fin des lignes  visibles et la fin de  la trame. Puisque nous
  disposons  de 630  lignes,  dont  600 illuminees,   6  correspondant a
  la duree du top, il nous reste :

       (630 - 600) - 6 = 24 lignes

  Certains  moniteurs  acceptent  que le top demarre immediatement apres
  les lignes  visibles, d'autres en  revanche necessitent  une  ou  deux
  lignes  d'attente  avant  le top de  synchro.  De facon a etre surs de
  notre coup, inserons  trois lignes entre la fin des lignes  illuminees
  et le top de synchro.  Le reste des lignes sera  ajoute apres la   fin
  de la   synchro.  Les nombres des timings verticaux sont donc :

  600   (600 + 3)   (600 + 3 + 6)   (600 + 3 + 6 + 21)

  ou

       600  603  609  630

  Avant  de faire quoi que  ce soit d'autre, nous  devons  nous  assurer
  que  le moniteur pourra  supporter 630  lignes par trame  a raison  de
  27,2 us  par   ligne.    Calculons    le   nombre   de   trames    par
  seconde  que  generera  notre  configuration, et comparons la valeur a
  celle donnee dans  le manuel.  Pour  630  lignes par trame   a  raison
  de   27,2  us   par    ligne,  nous  avons  630 * 27,2  = 17136 us par
  trame,  soit  0,017136 seconde par trame,   ou  encore  1  /  0,017136
  trame par seconde :

       1 / (0,017136 seconde / trame) = 58,4 trames / seconde

  Si   la    valeur  58,4 Hz   est   dans   l'intervalle    des  valeurs
  acceptees par votre moniteur, tout va  bien. Si celui-ci  ne  supporte
  pas     une  telle    vitesse       de      synchro  verticale   (taux
  de rafraichissement), nous devons modifier le  nombre  de  lignes  par
  trame en ajustant tous les timings proportionnellement.

  Combinons  maintenant  les   valeurs  horizontales et verticales  pour
  obtenir une ligne que l'on peut mettre dans le fichier XF86Config :

       ModeLine "800x600"       40      800 868 1020 1088       600 603 609 630

  Nous pouvons maintenant  tester la configuration.  Il  se peut   qu'il
  y  ait  des  problemes,  en  raison  des  suppositions que nous  avons
  faites, mais dans  la grande majorite   des   cas,  cela   devrait  au
  moins  vous  donner     un    affichage        stable.     Il     faut
  encore     quelques  experimentations      pour    obtenir     quelque
  chose  de   vraiment satisfaisant.

  DDeess ccaallccuullss rreeeellss

  Ma  carte  video   a  un oscillateur battant  a  40 MHz,  je pars donc
  avec  cette     valeur    d'horloge.   La   frequence    de    synchro
  horizontale  de  mon  moniteur est de 37 kHz, donc le nombre de points
  minimum par  ligne      est de     40000000 / 37000 =      1081.    La
  frequence de synchronisation verticale peut varier de 50 a 90 Hz.

  Le  manuel  de mon moniteur  explique que la  duree du top de  synchro
  horizontal ne peut  depasser 3,92 us. Avezc une duree de 0,025 us  par
  point, le top dure :

       (3,92 us) / (0,025 us / point) = 156,8 points

  Arrondissons  cette  valeur a l'entier le plus proche divisible par 8,
  soit  160.  Le manuel dit egalement  que le temps separant le  dernier
  point illumine du debut de la synchro doit etre d'au moins 0,67 us, ce
  qui, a une frequence d'horloge de 40 MHz  - souvenez-vous que  40  MHz
  = 1 / 40000000 = 0,025 us par point - correspond a :

       P points = (0,67 us) / (0,025 us / point) = 26,8 points.

  que nous arrondissons a 32 (divisible par 8).

  Mon   manuel dit  encore  que  le  temps  suivant le  top   de synchro
  doit etre d'au moins 3,56 us.  En nombre de points cela correspond a :

       P points = (3,56 us) / 0,025 us / point) = 142,4 points.

  que nous arrondissons a 144.

  Maintenant,    pour   une     ligne   horizontale  nous     avons  800
  points illumines, 32 points avant la synchro, 160 points de  duree  de
  synchro et 144 points apres la synchro.

       800 + 32 + 160 + 144 = 1136

  Une  ligne   fait  maintenant   1136  points   au  lieu des 1088 (1081
  arrondis) precedemment  calcules,   mais   souvenez  vous   que  cette
  valeur  etait   le minimum  de points  que nous  pouvions avoir.  Donc
  1136 points sont corrects pour demarrer.

  Nous avons deja une partie de notre configuration :

       800  (800+32)  (800+32+160)  (800+32+160+144)

  Une  ligne  de 1136  points represente 1136 * 0,025 = 28,4 us.

  La   regle des   4 / 3   nous  mene   a  une resolution  verticale  de
  600 points visibles.

  Le  manuel  de  mon   moniteur  indique que la synchro  verticale doit
  durer au moins 64 us. En nombre de lignes, cela correspond a :

       (64 us / synchro) / (28,4 us / ligne) = 2,25 lignes / synchro.

  arrondi a 3 lignes.

  Le  manuel    indique   egalement que    le    temps apres la derniere
  ligne  affichee  et le debut de la synchro doit etre d'au moins 318 us
  et que le delai apres  la  synchro   doit  etre  d'au  moins  630  us.
  Calculons le nombre de lignes que cela represente :

       (318 us) / (28,4 us / ligne) = 11,20 lignes

       (630 us) / (28,4 us / ligne) = 22,18 lignes

  que nous arrondissons respectivement a 12 et 23 lignes.

  La deuxieme partie de la configuration correspond aux valeurs :

       600  (600+12)  (600+12+3)  (600+12+3+23)

  Nous  voila   prets.  La  ligne  du  fichier   XF86Config  est donc la
  suivante :

       ModeLine "800x600"       40      800 832 992 1136        600 612 615 638

  C'est  le premier   mode  video  que  j'ai  essaye.   Il  m'a semble a
  premiere   vue    qu'il  y   avait   un   peu   de scintillement, j'ai
  essaye de modifier  les   timings  et  j'ai  obtenu  une       qualite
  correcte  pour       une   resolution  de 784 x 614.

  44..11..1111..  CCoorrrriiggeerr ddeess pprroobblleemmeess dd''iimmaaggee

  Votre  fichier de configuration est pret. Vous  lancez le serveur X et
  l'image ne semble pas correcte. Que faire ? Voici quelques  solutions.

  Vous  ddeeppllaacceezz  l'image  en  changeant  les   timings de synchro. Vous
  ddiimmeennssiioonnnneezz  l'image en  changeant  la   longueur   de  trame   (vous
  devez  modifier  aussi  les  tops  de    synchro pour garder une image
  centree, sinon, le dimensionnement  deplace l'image).

  Encore  quelques   petites choses :  les   positions   horizontale  et
  verticale   sont independantes.   Le deplacement horizontal de l'image
  n'affecte  pas   sa     position   verticalement,  et  reciproquement.
  Cependant,   ce  n'est pas tout  a fait  vrai pour le dimensionnement.
  Alors que la modification de la largeur de l'image  n'affecte  pas  sa
  hauteur et vice-versa, la modification des deux  peut etre limitee. En
  particulier, si votre  image est trop large  dans les deux dimensions,
  vous   resoudrez    le   probleme    avec   une   frequence  d'horloge
  superieure, cela augmentant la resolution disponible.

     LL''iimmaaggee eesstt ddeeppllaacceeee aa ggaauucchhee oouu aa ddrrooiittee
        Pour corriger cela,  deplacez la synchro  horizontale.  C'est-a-
        dire

        augmentez   ou  diminuez  (par  saut  de   8)  les  deux valeurs
        centrales des timings horizontaux  qui   definissent  les  temps
        avant et apres la synchro horizontale.

        Si    l'image  est  deplacee vers la   gauche (le bord droit est
        trop large),  et que vous   souhaitez la  deplacer   a   droite,
        diminuez   ces  deux  valeurs. Si  l'image est  deplacee vers la
        droite  (le  bord  gauche est  trop    large),   et    que  vous
        souhaitez  la deplacer a gauche, augmentez ces deux valeurs.

     LL''iimmaaggee eesstt  ddeeppllaacceeee vveerrss llee  hhaauutt oouu vveerrss llee bbaass
        Pour  corriger    ce    probleme,  vous     devez  deplacer   la
        synchro verticale, c'est-a-dire   augmenter    ou  diminuer  les
        deux    valeurs  centrales     des   timings  verticaux,    dans
        le    fichier  XF86Config, definissant les temps avant et  apres
        la synchro.

        Si  l'image   est  deplacee  vers   le haut (bord inferieur trop
        large),  et  que  vous souhaitez   la  descendre, diminuez   les
        deux  valeurs.  Si    l'image     est  deplacee  vers  le    bas
        (bord superieur  trop large), et que  vous souhaitez  la monter,
        augmentez les deux valeurs.

     LL''iimmaaggee eesstt ttrroopp llaarrggee  ((rreesspp..  ttrroopp eettrrooiittee))
        Diminuez   (resp.  augmentez) la longueur de trame  horizontale.
        C'est-a-dire, modifiez les   quatre  nombres   de   la  rubrique
        horizontale.   Pour eviter  de deplacer l'image, deplacez  aussi
        la synchro (2eme  et 3eme valeurs)  de moitie moins.

     LL''iimmaaggee eesstt  ttrroopp  ggrraannddee ((rreesspp..   ttrroopp rreedduuiittee)) vveerrttiiccaalleemmeenntt
        Diminuez   (resp.    augmentez)    la    longueur  de      trame
        verticale.   C'est-a-dire,  modifiez  les   quatre nombres de la
        rubrique  verticale.   Pour  eviter     de   deplacer   l'image,
        deplacez   aussi  la  synchro  (2eme et  3eme valeurs) de moitie
        moins.

  Toute distorsion qui ne puisse    etre  maitrisee  par   ces  methodes
  correspond   certainement   a   une  erreur   plus fondamentale, comme
  une erreur de calcul ou une horloge trop rapide pour le moniteur.

  Finalement,  souvenez-vous que le  fait  d'augmenter  la  longueur  de
  trame, diminuera la frequence de rafraichissement, et vice-versa.

  44..11..1122..  QQuueellqquueess eexxeemmpplleess rreeeellss ddee MMooddeess vviiddeeoo

    #
    # 640x480@60Hz Mode non-entrelace
    # Synchronisation horizontale = 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

    #
    # Alternate 640x480@60Hz Mode non-entrelace
    # Synchronisation horizontale = 31.5kHz
    # Timing: H=(1.27us, 3.81us, 1.27us) V=(0.32ms, 0.06ms, 1.05ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "640x480"     25.175  640  672  768  800    480  490  492  525

    #
    # 640x480@63Hz Mode non-entrelace (non-standard)
    # Synchronisation horizontale = 32.8kHz
    # Timing: H=(1.41us, 1.41us, 5.08us) V=(0.24ms, 0.092ms, 0.92ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "640x480"     28.322  640  680  720  864    480  488  491  521

    #
    # 640x480@70Hz Mode non-entrelace (non-standard)
    # Synchronisation horizontale = 36.5kHz
    # Timing: H=(1.27us, 1.27us, 4.57us) V=(0.22ms, 0.082ms, 0.82ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "640x480"     31.5    640  680  720  864    480  488  491  521

    #
    # VESA 640x480@72Hz Mode non-entrelace
    # Synchronisation horizontale = 37.9kHz
    # Timing: H=(0.76us, 1.27us, 4.06us) V=(0.24ms, 0.079ms, 0.74ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "640x480"     31.5    640  664  704  832    480  489  492  520

    #
    # VESA 800x600@56Hz Mode non-entrelace
    # Synchronisation horizontale = 35.1kHz
    # Timing: H=(0.67us, 2.00us, 3.56us) V=(0.03ms, 0.063ms, 0.70ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "800x600"     36      800  824  896 1024    600  601  603  625

    #
    # Alternate 800x600@56Hz Mode non-entrelace
    # Synchronisation horizontale = 35.4kHz
    # Timing: H=(0.89us, 4.00us, 1.11us) V=(0.11ms, 0.057ms, 0.79ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "800x600"     36      800  832  976 1016    600  604  606  634

    #
    # VESA 800x600@60Hz Mode non-entrelace
    # Synchronisation horizontale = 37.9kHz
    # Timing: H=(1.00us, 3.20us, 2.20us) V=(0.03ms, 0.106ms, 0.61ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "800x600"     40      800  840  968 1056    600  601  605  628 +hsync +vsync

    #
    # Alternate 800x600@60Hz Mode non-entrelace
    # Synchronisation horizontale = 37.9kHz
    # Timing: H=(1.20us, 3.80us, 1.40us) V=(0.13ms, 0.053ms, 0.69ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "800x600"     40      800 848 1000 1056     600  605  607  633

    #
    # VESA 800x600@72Hz Mode non-entrelace
    # Synchronisation horizontale = 48kHz
    # Timing: H=(1.12us, 2.40us, 1.28us) V=(0.77ms, 0.13ms, 0.48ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "800x600"     50      800  856  976 1040    600  637  643  666  +hsync +vsync

    #
    # 1024x768@43.5Hz, mode entrelace (standard 8514/A)
    # Synchronisation horizontale = 35.5kHz
    # Timing: H=(0.54us, 1.34us, 1.25us) V=(0.23ms, 0.23ms, 0.93ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1024x768i"   44.9   1024 1048 1208 1264    768  776  784  817  Interlace

    #
    # VESA 1024x768@60Hz Mode non-entrelace
    # Synchronisation horizontale = 48.4kHz
    # Timing: H=(0.12us, 2.22us, 2.58us) V=(0.06ms, 0.12ms, 0.60ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1024x768"    65     1024 1032 1176 1344    768  771  777  806 -hsync -vsync

    #
    # 1024x768@60Hz Mode non-entrelace (horloge point non-standard)
    # Synchronisation horizontale = 48.4kHz
    # Timing: H=(0.65us, 2.84us, 0.65us) V=(0.12ms, 0.041ms, 0.66ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1024x768"    62     1024 1064 1240 1280   768  774  776  808

    #
    # VESA 1024x768@70Hz Mode non-entrelace
    # Synchronisation horizontale = 56.5kHz
    # Timing: H=(0.32us, 1.81us, 1.92us) V=(0.05ms, 0.14ms, 0.51ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1024x768"    75     1024 1048 1184 1328    768  771  777  806 -hsync -vsync

    #
    # 1024x768@70Hz Mode non-entrelace (horloge point non-standard)
    # Synchronisation horizontale = 56.25kHz
    # Timing: H=(0.44us, 1.89us, 1.22us) V=(0.036ms, 0.11ms, 0.53ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1024x768"    72     1024 1056 1192 1280    768  770  776 806   -hsync -vsync

    #
    # 1024x768@76Hz Mode non-entrelace
    # Synchronisation horizontale = 62.5kHz
    # Timing: H=(0.09us, 1.41us, 2.45us) V=(0.09ms, 0.048ms, 0.62ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1024x768"    85     1024 1032 1152 1360    768  784  787  823

    #
    # 1280x1024@44Hz, Mode entrelace
    # Synchronisation horizontale = 51kHz
    # Timing: H=(0.02us, 2.7us, 0.70us) V=(0.02ms, 0.24ms, 2.51ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1280x1024i"  80     1280 1296 1512 1568   1024 1025 1037 1165  Interlace

    #
    # Alternate 1280x1024@44Hz, Mode entrelace (horloge point non-standard)
    # Synchronisation horizontale = 47.6kHz
    # Timing: H=(0.42us, 2.88us, 0.64us) V=(0.08ms, 0.12ms, 0.96ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1280x1024i"  75     1280 1312 1528 1576   1024 1028 1034 1080  Interlace

    #
    # 1280x1024@59Hz Mode non-entrelace (non-standard)
    # Synchronisation horizontale = 63.6kHz
    # Timing: H=(0.36us, 1.45us, 2.25us) V=(0.08ms, 0.11ms, 0.65ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1280x1024"  110     1280 1320 1480 1728   1024 1029 1036 1077

    #
    # 1280x1024@61Hz, Mode non-entrelace
    # Synchronisation horizontale = 64.25kHz
    # Timing: H=(0.44us, 1.67us, 1.82us) V=(0.02ms, 0.05ms, 0.41ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1280x1024"  110     1280 1328 1512 1712   1024 1025 1028 1054

    #
    # 1280x1024@74Hz, Mode non-entrelace
    # Synchronisation horizontale = 78.85kHz
    # Timing: H=(0.24us, 1.07us, 1.90us) V=(0.04ms, 0.04ms, 0.43ms)
    #
    # name        clock   horizontal timing     vertical timing      flags
     "1280x1024"  135     1280 1312 1456 1712   1024 1027 1030 1064

  44..22..  LLaa sseeccttiioonn DDeevviiccee

  Cette section  n'est pas particulierement  compliquee mais il convient
  d'y  preter  attention.  Pour  la raison  deja  indiquee  au  chapitre
  ``La  partie facile du fichier  XF86Config'',  nous ne nous  etendrons
  pas  trop  sur cette section.   Nous passerons  bien  evidemment   sur
  les rubriques  _I_d_e_n_t_i_f_i_e_r, _V_e_n_d_o_r_N_a_m_e et _B_o_a_r_d_N_a_m_e.

  Les  rubriques _C_h_i_p_s_e_t, _R_a_m_d_a_c et _V_i_d_e_o_r_a_m peuvent etre obtenues grace
  a  l'utilitaire SuperProbe.  Lancez-le  sur  une    console     texte.
  Voir  le  chapitre    ``SuperProbe''

  La       rubrique     _C_l_o_c_k_s  correspond      a       l'ensemble   des
  frequences  utilisables par votre   carte  video.   Pout  obtenir  ces
  valeurs vous pouvez au choix :

  +o    Consulter   la        documentation     et     notamment       le
     fichier _/_u_s_r_/_l_i_b_/_X_1_1_/_d_o_c_/_m_o_d_e_D_B_._t_x_t.  Vous  y  trouverez  peut-etre
     les valeurs pour votre carte video.

  +o   Lancer  la   commande :  X -probeonly.  Les   details sont fournis
     dans le   livre "Le  systeme   Linux"   decrit  au  chapitre  ``Les
     documents  a consulter'', ou

     dans le XFree86-HOWTO.

  +o   Lancer X normalement.  Si aucune rubrique CClloocckkss n'est definie, le
     serveur calculera les valeurs.  Avec un peu  de chance  et  surtout
     le  bon  serveur,  vous obtiendrez un   affichage correct.  Appuyez
     sur  les  touches Ctrl+Alt+F<n> (ou n correspond  a  la  console  a
     partir  de laquelle  vous   avez  lance X).     Notez les   valeurs
     que X    a calculees et mettez-les dans le fichier XXFF8866CCoonnffiigg.

  NNoottee :  Si  vous   faites     un   test  (avec   ou   sans      option
  -probeonly)    sur   votre   machine,  faites-le   avec     le minimum
  d'applications  en   cours.  Le   serveur  X  etant   une  application
  egalement,      les       boucles  de       timings    peuvent    etre
  perturbees  par  des  activities  du  disque  et  rendre  les  valeurs
  imprecises.     Effectuez   le     test  plusieurs    fois   afin   de
  verifier que les valeurs sont stables ;  sinon, tuez des processus  en
  activite    jusqu'a  ce  qu'elles    le  soient.   Utilisateurs SVR4 :
  le  processus     _m_o_u_s_e_m_g_r  est connu   pour  etre perturbant.

  Afin d'eviter que la  recherche  des timings soit effectuee a   chaque
  lancement  de  X    et  risquer   que  ceux-ci soient imprecis, il est
  preferable de les figer en les indiquant dans le  fichier  XF86Config.
  Cela   supprime la recherche et donne au serveur  une liste exacte des
  valeurs qu'il doit  utiliser. En utilisant les  donnees  du paragraphe
  ``Les   choses   a  connaitre   sur   votre  carte  video    et  votre
  moniteur'' on obtiendrait :

       wga
               Clocks 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71

  Sur    des  systemes     deja   charges,   vous  eviterez  ainsi   des
  demarrages  variables   de X, ou meme des echecs.  Il est tout a  fait
  possible que X echoue parce que les  timings  qu'il  a   trouves  sont
  faux     et   qu'ils  ne  correspondent   a    aucune  valeur   connue
  d'_h_o_r_l_o_g_e _p_o_i_n_t (dot clock).

  55..  LLeess aapppplliiccaattiioonnss dd''aaiiddee aa llaa ccoonnffiigguurraattiioonn

  Pour vous aider dans vos calculs  nombreux et fastidieux,  un  certain
  nombre  de  petits programmes ont  ete ecrits. Ils ne prennent que peu
  de   place et il est  conseille  de les installer  sur votre disque.

  55..11..  VVggaasseett

  Un petit programme pour vous aider a configurer votre serveur  X.  Son
  role  est  de  faciliter  la   recherche de la meilleure resolution de
  votre ecran.  Il tourne dans une fenetre  _x_t_e_r_m  (X  doit  donc   deja
  tourner),   et  affiche  la  geometrie actuelle   de votre ecran, sous
  une  forme similaire a celle decrite dans   le   fichier   XF86Config.
  Vous  pouvez    modifier cette geometrie en temps reel,  a l'aide d'un
  certain nombre de commandes decrites ci-apres.

  Vous pouvez    ainsi determiner   la   configuration qui  correspond a
  votre  souhait,   ou   revenir   a   tout   moment a  la configuration
  initiale.

  AAtttteennttiioonn

  L'auteur et  moi-meme (-- Le traducteur--) vous  mettons en garde  sur
  l'utilisation     de     ce    programme.     Vgaset     possede   les
  caracteristiques   necessaires    pour    vous    eviter  d'endommager
  votre moniteur.  Cependant, si vous specifiez une plage de  frequences
  que  votre moniteur  ne  supporte  pas,  ou bien une mauvaise horloge,
  _v_g_a_s_e_t  peut causer des dommages irreversibles a  votre materiel.   Si
  vous   ne  connaissez pas toutes  les valeurs,  lancez   _v_g_a_s_e_t   sans
  option.    Ne  laissez    en  aucun  cas  votre  moniteur  fonctionner
  longtemps avec de mauvaises valeurs.  Si quelque  chose  ne   va  pas,
  eteignez-le !    Utilisez _v_g_a_s_e_t a  vos risques et perils.

  RReemmaarrqquuee

  Je    vous  sens  fievreux tout   a coup ! N'ayez pas peur, ceci n'est
  pas frequent. Allez-y en faisant attention.

  55..11..11..  LLeess ooppttiioonnss ddee vvggaasseett

  Les options de la ligne de commande sont les suivantes :

     --VV Rend _v_g_a_s_e_t verbeux.  En particulier, il affiche  les  registres
        CRTC.

     --dd _h_o_r_l_o_g_e
        Definit  la  valeur de  l'horloge  point.   Ceci permet a _v_g_a_s_e_t
        de donner  des  informations  sur  les  timings   et  de     les
        utiliser     pour     determiner       des      intervalles   de
        frequences.        _h_o_r_l_o_g_e  peut    etre   specife   en   hheerrttzz,
        kkiilloohheerrttzz  ou   mmeeggaahheerrttzz.    Faites bien  attention a donner la
        bonne valeur.

     --xx  _f_r_e_q_u_e_n_c_e
        specifie    la       frequence horizontale minimale (en hheerrttzz ou
        kkiilloohheerrttzz)  supportee  par  votre  moniteur.   Par   defaut   la
        valeur  prise est la       valeur  courante.  Cette  option  est
        ignoree  si l'option -d _h_o_r_l_o_g_e est absente, sauf pour -x0.

     --XX      _f_r_e_q_u_e_n_c_e
        specifie      la   frequence  horizontale  maximale (en hheerrttzz ou
        kkiilloohheerrttzz) supportee par  votre   moniteur.    Par   defaut   la
        valeur    prise  est  la     valeur  courante.  Cette option est
        ignoree  si l'option -d _h_o_r_l_o_g_e est absente.

     --yy _f_r_e_q_u_e_n_c_e
        specifie la frequence verticale  minimale  supportee  par  votre
        moniteur.   Par  defaut  la valeur prise est la valeur courante.
        Cette option  est ignoree si l'option -d  _h_o_r_l_o_g_e  est  absente,
        sauf pour -y0.

     --YY _f_r_e_q_u_e_n_c_e
        specifie  la  frequence  verticale maximale supportee par  votre
        moniteur.  Par defaut la valeur prise est  la  valeur  courante.
        Cette option  est ignoree si l'option -d _h_o_r_l_o_g_e est absente.

     --ss  _c_o_n_f_i_g
        donne    les valeurs horizontales  de   debut de synchro, de fin
        de synchro et du nombre   total  de   points,  et  les   valeurs
        verticales  de  debut de synchro, de fin de synchro et du nombre
        total de lignes. Ces valeurs correspondent  aux trois  dernieres
        valeurs de chaque rubrique d'un mode video :

          "640x480"       28      640 680 728 776         480 480 482 494
                                      --- --- ---             --- --- ---

     --vv    _r_e_s_o_l_u_t_i_o_n
        specifie      la    valeur   de      la  resolution   virtuelle.
        Ceci    vous   permet    d'augmenter    la resolution  affichee,
        au   mieux     jusqu'a   ces valeurs.   Celles-ci   ne   doivent
        pas  depasser     les  valeurs donnees a la ligne _V_i_r_t_u_a_l de  la
        section _S_c_r_e_e_n.

        Exemple :

          vgaset -d80 -x30 -X64 -y50 -Y100 -v 1152 910

                  --> correspond a un ecran Crystal Scan 1572 FS a 80 MHz

  55..11..22..  LLeess ccoommmmaannddeess ddee vvggaasseett

  Elles  sont   activees  en  appuyant  simplement sur une   des touches
  decrites ci-apres, colonne de gauche :

       l       diminue la marge gauche
       L       augmente la marge gauche
       r       diminue la marge droite
       R       augmente la marge droite
       h       diminue la duree de synchro horizontale
       H       augmente la duree de synchro horizontale
       t       diminue la marge du haut
       T       augmente la marge du haut
       b       diminue la marge du bas
       B       augmente la marge du bas
       v       diminue la duree de synchro verticale
       V       augmente la duree de synchro verticale
       x       diminue la resolution horizontale
       X       augmente la resolution horizontale
       y       diminue la resolution verticale
       Y       augmente la resolution verticale
       ?       reprend les valeurs initiales
       RC      retour-chariot : reaffiche la configuration
       q       quitte
       EOT     quitte

  Apres chaque commande, _v_g_a_s_e_t reaffiche  la  configuration  selon  une
  presentation   compatible  avec  la  rubrique  _M_o_d_e_L_i_n_e  du fichier de
  configuration.

  55..11..33..  LLeess bbuuggss ddee vvggaasseett

  Un certain nombre !  Non, pas trop quand meme,  mais  ce  programme  a
  ete   teste    seulement    sur    certaines   cartes  video  (_E_T_4_0_0_0,
  _D_i_a_m_o_n_d     _S_p_e_e_d_S_t_a_r,   _A_T_I       _G_r_a_p_h_i_c_s    _U_l_t_r_a_P_r_o).       Suivez
  l'actualite         pour   decouvrir  d'eventuelles  mises  a  jour ou
  savoir si des problemes ont ete detectes.

  Le   serveur est   perturbe  lorsque  vous   modifiez le   nombre   de
  pixels.   Si  vous diminuez  la valeur,  le  serveur ne deroulera plus
  l'ecran  virtuel  entier   (scrolling).   Si vous    l'augmentez,   il
  n'utilisera   pas  les   nouveaux   pixels  (seulement  avec  _v_g_a_s_e_t).
  Cependant     c'est   utile   pour       determiner   la     meilleure
  resolution.

  Il  n'est  pour  l'instant   pas   possible de modifier  la valeur  de
  l'horloge point (_d_o_t _c_l_o_c_k) avec _v_g_a_s_e_t.

  55..22..  xxccllkk

  _x_c_l_k est un autre petit  utilitaire  qui  vous  aide  a  calculer  les
  valeurs   pour  votre configuration. Il  est base sur les heuristiques
  et regles que nous avons fixes dans ce document.

  Pour utiliser _x_c_l_k, vous  devez connaitre les   frequences  supportees
  par    votre  carte   video   et votre  moniteur (Un moniteur   multi-
  synchro est  d'ailleurs   conseille).  Les  valeurs d'horloge  peuvent
  etre   determinees  notamment  avec le programme cclloocckk..eexxee  disponible
  dans les  archives Linux,  ou  encore  en  utilisant  les  utilitaires
  fournis   avec votre carte video (Ex : les  cartes ET4000 sont livrees
  avec les utilitaires DMODE et VMODE sous DOS).  Il y  a  trois  facons
  d'utiliser _x_c_l_k :

       xclk       <Frequence_horloge>  <frequences_horiz>
       xclk    -h <Frequence_horloge>  <Pixels_horiz>
       xclk    -r <Frequence_horloge>  <taux_rafraichissement>

  Les   frequences horloge    sont en  MMHHzz, les  frequences horizontales
  en kkHHzz (ne donnez que les valeurs).

  La premiere   syntaxe   utilise la frequence      d'horloge  de  votre
  carte et la frequence horizontale de votre moniteur.

  Exemple : Ma carte  a une horloge de 64  MHz et mon moniteur  supporte
  une frequence horizontale de 56 kHz. J'utilise la commande :

       xclk 64 56              # premiere syntaxe

  Ceci  genere    deux  lignes  compatibles   avec  la rubrique MMooddeeLLiinnee
  du   fichier  de  configuration  (ajoutez  eventuellement  le  mot-cle
  _M_o_d_e_L_i_n_e  si vous souhaitez  utiliser  la ligne dans le fichier) :

       "896x672"       64      896  928  1160  1192    672  672  683  706
       # Tx de rafraichissement = 76.05Hz ; Frequence horizontale = 53.69 kHz

  Il   se  peut que  _x_c_l_k   donne    des  valeurs  ridicules.    Exemple
  xclk 65 40 genere :

       "1296x972"      65      1296  1328  1600  1632  972  972  980  1021
       # Tx de rafraichissement = 39.01Hz ; Frequence horizontale = 39.83 kHz

  Avec  un tel taux de rafraichissement, on croirait regarder un film du
  debut du siecle. N'utilisez pas cette resolution.  Les meilleurs  taux
  de  rafraichissement   sont   autour  de   70  Hz. Plus  la valeur est
  elevee,  mieux c'est (selon  ce que peut supporter votre    moniteur).
  Un    MAG    15H     peut  supporter  une   valeur  allant jusqu'a 120
  Hz. Beaucoup vont jusqu'a 75 Hz.

  Utilisons alors la troisieme syntaxe, qui permet de specifier le  taux
  de rafraichissement,   par  exemple   xclk  -r 64  70 genere :

       "944x708"       64      944  976  1208  1240    708  708  718  743
       # Tx de rafraichissement = 69.47Hz ; Frequence horizontale = 51.61Khz

  Une  troisieme  facon  d'utiliser _x_c_l_k permet d'obtenir une resolution
  particuliere.    Exemple   xclk -h   64   944 genere :

       "944x708"       64      944  976  1216  1248    708  708  718  743
       # Refresh rate = 69.47Hz ; Horizontal Frequency = 51.61Khz

  Comme vous pouvez le  noter, certaines valeurs ont legerement  change,
  malgre  des  donnees   equivalentes.  En fait rien de   bien important
  puisque la difference  n'excede pas 16 unites, ce qui est supporte par
  les moniteurs.

  Si  les  valeurs  donnees par _x_c_l_k ne fonctionnent pas, recalculez les
  valeurs. Surtout  n'essayez  pas  des  valeurs  farfelues  avec  votre
  serveur X.

  55..33..  SSuuppeerrPPrroobbee

  55..33..11..  DDeessccrriippttiioonn

  _S_u_p_e_r_P_r_o_b_e   est    un    utilitaire    dont    le   role    est    de
  determiner la configuration materielle video dont vous  disposez,  que
  ce  soit sur un bus ISA/EISA/VLB ou PCI (sous reserve).  Il  recherche
  de  differentes   manieres  et  parmi  les  registres  connus     (les
  machines    MicroChannel     et      PCI   peuvent    poser probleme ;
  _S_u_p_e_r_P_r_o_b_e   fonctionne  avec  la  plupart    en  utilisant   l'option
  -no_bios).      _S_u_p_e_r_P_r_o_b_e  est  un  programme particulierement expose
  aux erreurs, notamment sous Unix pour lequel  le  materiel  est   plus
  esoterique  que  sous DOS.  Il aura donc probablement besoin d'aide de
  la part de l'utilisateur.

  _S_u_p_e_r_P_r_o_b_e tourne   sous SVR3,  SVR4,   Linux,  386BSD/FreeBSD/NetBSD,
  Minix-386  et    Mach.     Il   pourrait   etre   tres     facile   de
  l'etendre aux   autres systemes Unix,  voire   aux systemes  non-Unix.

  Actuellement,     _S_u_p_e_r_P_r_o_b_e    sait    detecter    les   cartes  MDA,
  Hercules, CGA, MCGA, EGA, VGA et tous les _c_h_i_p_s_e_t_s SVGA (voir l'option
  _-_i_n_f_o,   ci-dessous).  Il sait    aussi identifier de  nombreux RAMDAC
  (-- DAC=Digital-Analog            Converter             (Convertisseur
  Digital-Analogique)--)

  HiColor/TrueColor utilises sur   les cartes    SVGA,   ainsi    que la
  quantite  de   memoire installee (pour beaucoup de  _c_h_i_p_s_e_t_s). Il peut
  detecter les  cartes 8514/A et   derivees,  mais pas  les  XGA ni  PGC
  (l'auteur a l'intention  de  le  faire).  Il   n'est   pas   non  plus
  capable   actuellement  de  reconnaitre  les  cartes  Targa,  TIGA  ni
  MicroField.

  55..33..22..  LLeess ooppttiioonnss

  Les options supportees par _S_u_p_e_r_P_r_o_b_e sont les suivantes :

     --vveerrbboossee
        Rend _S_u_p_e_r_P_r_o_b_e verbeux. Il  fournit bon  nombre  d'informations
        pendant son execution.

     --nnoo1166
        _S_u_p_e_r_P_r_o_b_e  ne tentera  pas d'utiliser les ports necessitant  un
        decodage   d'adresse  d'E/S (-- Entree/Sortie--)

        sur 16  bits.  Les premiers bus  ISA  specifiaient  un  decodage
        sur  10 bits.  Par consequent  certaines anciennes  cartes (dont
        pas mal  de cartes  8 bits) decoderont  mal les  references  aux
        ports utilisant les 6 bits supplementaires  et peuvent se mettre
        dans   des   etats    bizarres,  pensant   avoir   ete adressees
        alors    qu'elles  ne l'etaient     pas.   Il est recommande  de
        mettre cette  option si votre systeme comporte une ou  plusieurs
        cartes 8 bits.

     --eexxccll _l_i_s_t_e
        _S_u_p_e_r_P_r_o_b_e    ne  tentera    pas   d'acceder  aux  ports   d'E/S
        donnes dans la liste.  Certaines  cartes  video  utilisent   des
        ports   d'E/S  non  standard   pouvant  entrer en   conflit avec
        d'autres cartes installees.  En donnant a _S_u_p_e_r_P_r_o_b_e  une  liste
        de  ports deja  utilises, il saura  qu'aucune carte video ne les
        utilise et par consequent ne les testera pas  (ce  qui  pourrait
        perturber  votre   systeme).   La  liste d'exclusion  est donnee
        sous forme de liste de numeros  (ou d'intervalles de numeros) de
        ports  d'E/S separes par  des virgules.  Un intervalle est donne
        sous la  forme "inf-sup", bornes incluses.  Les valeurs  peuvent
        etre   donnees  en  decimal, en  octal  (nombres commencant  par
        '0'),     ou    en    hexadecimal      (nombres  commencant  par
        '0x').

     --mmaasskk1100
        Cette    option  est  utilisee    conjointement  avec  la  liste
        d'exclusion (_-_e_x_c_l).  Elle indique a  _S_u_p_e_r_P_r_o_b_e   que  lors  du
        test d'un port d'E/S hors de la liste d'exclusion,  l'adresse du
        port doit etre masquee sur  10 bits.  C'est important avec   les
        anciennes  cartes  8  bits ne pouvant decoder que 10 bits, ainsi
        que pour certaines cartes 16  bits bon   marche.   Cette  option
        est   moins restrictive  que _-_n_o_1_6.

     --oorrddeerr _l_i_s_t_e
        Cette    option   donne   a   _S_u_p_e_r_P_r_o_b_e  une  liste  de _C_h_i_p_s a
        tester, et lui  indique l'ordre dans lequel il  doit  le  faire.
        La  liste     est   formee      de    noms   separes    par  des
        virgules. Celle-ci  a priorite  sur  la  liste  predefinie  dans
        _S_u_p_e_r_P_r_o_b_e.     Pour     connaitre   la     liste     des   noms
        supportes,    utilisez      l'option     _-_i_n_f_o      decrite  ci-
        apres.  Notez   que  les valeurs affichees comme "Standard Video
        hardware" ne sont pas utilisables avec l'option _-_o_r_d_e_r.

     --nnoopprroobbee _l_i_s_t_e
        Cette option  definit  les Chips  que  _S_u_p_e_r_P_r_o_b_e ne   doit  ppaass
        tester.  L'ordre  de  tests    est  soit celui par defaut,  soit
        celui impose par l'option _-_o_r_d_e_r. La liste contient des noms  de
        chips  separes  par  des  virgules.  Pour connaitre la liste des
        noms supportes,  utilisez   l'option  _-_i_n_f_o   decrite  ci-apres.
        Notez  que les valeurs affichees comme "Standard Video hardware"
        ne sont pas utilisables avec l'option _-_n_o_p_r_o_b_e.

     --bbiiooss _b_a_s_e
        Cette option indique l'adresse  de base du   BIOS  de  la  carte
        graphique.  Par  defaut,  _S_u_p_e_r_P_r_o_b_e    essaiera  de   localiser
        celle-ci   de lui-meme (l'adresse normale etant  0xC0000).  S'il
        echoue  (un  message  d'erreur  sera   affiche  si cela arrive),
        utilisez l'option _-_b_i_o_s pour lui indiquer la base.

     --nnoo__bbiiooss
        Invalide la lecture  du BIOS Video  et    suppose  qu'une  carte
        EGA  ou  plus  recente  (VGA, SVGA)  est presente comme premiere
        carte video.

     --nnoo__ddaacc
        Supprime  la recherche  du type   de RAMDAC    lorsqu'une  carte
        (S)VGA   est identifiee.

     --nnoo__mmeemm
        Supprime la recherche de la taille memoire de la carte video.

     --iinnffoo
        _S_u_p_e_r_P_r_o_b_e   imprimera    une   liste de   tous  les   materiels
        video qu'il sait identifier.

  55..33..33..  LLeess bbuuggss

  Il y en  a  surement ! Si  vous  en    trouvez,  veuillez,  svp,   les
  rapporter a l'auteur.

  IIll   eesstt  ppoossssiibbllee   qquuee  SSuuppeerrPPrroobbee  bbllooqquuee  vvoottrree  mmaacchhiinnee.. DDaannss  ccee
  ccaass,, eeffffeeccttuueezz ll''eessssaaii aavveecc lleess ooppttiioonnss  _-_n_o_1_6_, _-_e_x_c_l eett _-_m_a_s_k_1_0
    ddee  ffaaccoonn  aa eevviitteerr  lleess ccoonnfflliittss  aavveecc dd''aauuttrreess ccaarrtteess  iinnssttaalllleeeess..

  66..  IInnffoorrmmaattiioonnss ccoonncceerrnnaanntt ccee ddooccuummeenntt

  Les   documents   HOWTO Linux  sont places   sous copyright par  leurs
  auteurs respectifs.    Les   documents  Linux  HOWTO   peuvent    etre
  reproduits   et   distribues  en tout  ou partie,    par quelque moyen
  physique  que  ce  soit,  sans  l'autorisation   de   l'auteur.    Les
  traductions  et travaux     derives   sont    egalement permis    sans
  autorisation  expresse.   La  distribution a   titre   commercial  est
  permise et   meme   encouragee ; cependant,      l'auteur souhaiterait
  en etre averti.

  En bref, nous souhaitons que l'information contenue dans ces documents
  soit   repandue    le  plus   largement   possible.   Cependant,  nous
  souhaitons maintenir le copyright sur ce  document,  et  souhaiterions
  etre avertis de  toute re-distribution.  Si vous avez  des questions a
  ce propos, contactez Greg Hankins, coordinateur  des  documents  Linux
  HOWTO  a l'adresse <gregh@sunsite.unc.edu>.

