6. En ce qui concerne la carte vidéo

Contenu de cette section

Votre fichier XF86Config est maintenant prêt à fonctionner, à l'exception de la partie contenant les informations sur la carte vidéo en elle-même. Nous allons utilisez le serveur X afin qu'il recherche lui-même les reste des informations à fournir, puis rentrer ces informations dans le fichier XF86Config.

Si vous désirez gagner du temps, les fichier modeDB.txt, AccelCards et Devices contiennent les valeurs que fournira le serveur X pour de nombreuses cartes vidéo. Ces fichiers se trouvent dans /usr/X11R6/lib/X11/doc. Vous y trouverez aussi de nombreux fichiers README concernant la plupart des circuits vidéo. Jettez un oeil sur ces fichiers, et utilisez les informations fournies (valeurs des horloges et type de circuit) pour compléter le fichier XF86Config. Si certaines informations vous manquent, utilisez alors la fonction de recherche automatique (probe) du serveur X comme suit~:

Nous allons maintenant prendre comme exemple la configuration d'une carte vidéo #9 GXE 64, qui utilise le comme circuit XF86_S3.

La première chose à faire est de déterminer le type de circuit vidéo de la carte. Vous pouvez lancer SuperProbe (situé dans /usr/X11R6/bin) afin d'obtenir cette information, mais il vous faudra quand même connaître le nom du circuit que le serveur X doit comprendre.

Pour cela, lancez~:

       X -showconfig

Ceci vous donnera le nom du circuit connu par le serveur X. Ici, pour un serveur XF86_S3 accéléré, nous obtenons~:

       XFree86 Version 3.1 / X Window System
       (protocol Version 11, revision 0, vendor release 6000)
       Operating System: Linux
       Configured drivers:
         S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
             mmio_928, s3_generic

Les noms valides pour ce serveur sont mmio_928 et s3_generic. Le manuel de XF86_S3 décrit ces circuits et les cartes vidéo les utilisant. Dans le cas de la #9 GXE 64, mmio_928 est le plus approprié~:

Si vous ne savez pas lequel des noms de circuits utiliser, le serveur X peut le rechercher pour vous. Lancez la commande~:

       X -probeonly > /tmp/x.out 2>&1

si vous utilisez bash comme shell. Si vous utilisez csh, essayez~:

       X -probeonly &> /tmp/x.out

Vous devez lancer ces commandes avec un système non chargé, c'est à dire sans que vous fassiez tourner d'autre programme sur votre système. Cette commande va aussi rechercher les fréquences par point (dot clocks), et l'existence d'une charge autre sur votre système peut perturber ce calcul.

Le résultat de cette commande a été mis dans le fichier /tmp/x.out et doit contenir~:

  XFree86 Version 3.1 / X Window System
  (protocol Version 11, revision 0, vendor release 6000)
  Operating System: Linux
  Configured drivers:
    S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
        mmio_928, s3_generic
     ...
  (--) S3: card type: 386/486 localbus
  (--) S3: chipset:   864 rev. 0
  (--) S3: chipset driver: mmio_928

Ici, nous voyons que le serveur a recherché lequel des deux serveurs est le plus approprié et a trouvé que le mmio_928 est celui qui convient le mieux.

Dans la section Device du fichier XF86Config, ajoutez la ligne Chipset contenant le nom du circuit le plus approprié. Nous mettons donc~:

       Section "Device"
               # Nous avons deja Identifier
               Identifier "#9 GXE 64"
               # Add this line:
               Chipset "mmio_928"
       EndSection

Il faut maintenant déterminer les féquences d'horloge utilisées par la carte vidéo. La fréquence point est le taux auquel la carte vidéo envoie les pixels au moniteur. Comme nous l'avons vu précédemment, une fréquence différente est associée à chaque résolution du moniteur.

Premièrement, jetez un oeil sur les fichiers (modeDB.txt, etc...) mentionnés plus haut et notez les fréquences données pour votre carte vidéo, si celles-ci sont mentionnées. Ces fréquences sont généralement des listes de 8 ou 16 valeurs en Mhz. Vous trouverez par exemple dans modeDB.txt, une liste des fréquences pour la Cardinal ET4000~:

       # circuit  ram   virtuel  horloges                         default-mode  flags
        ET4000   1024  1024 768   25  28  38  36  40  45  32   0  "1024x768"

Les fréquences pour cette carte sont ici~: 25, 28, 38, 36, 40, 45, 32, and 0 MHz.

Dans la section Devices du fichier XF86Config, vous devez alors ajoutez une ligne Clocks contenant la liste de ces fréquences. Ainsi dans notre exemple, nous ajoutons après Chipset~:

               Clocks 25 28 38 36 40 45 32 0

ATTENTION: l'ordre de ces fréquences est important car ces valeurs sont ensuite associées aux diverses résolutions. Si vous ajoutez ou retirez une de ces valeurs, vous modifierez cette correspondance.

Si vous ne trouvez pas la liste des fréquences correspondant à votre carte, le serveur X pourra faire lui même les rechercher. Pour cela, utlisez la commande X -probeonly comme décrit ci-dessus. La résultat ressemblera alors à~:

       (--) S3: clocks:  25.18  28.32  38.02  36.15  40.33  45.32  32.00  00.00

Nous pouvons alors ajouter une ligne contenant les fréquences d'horloge (Clocks), comme ci-dessus. Vous pouvez utilisez plus d'une ligne Clocks dans le fichier XF86Config au cas où toutes les valeurs (il y a parfois plus de 8 fréquences différentes) ne tiendraient pas sur une seule ligne. Encore une fois soyez sûr que les fréquences sont écrites dans le bon ordre.

De même, vérifiez qu'il n'y a pas de ligne Clocks (à moins que celle-ci soit mise en commentaire) dans la section Devices du fichier quand vous utilisez X -probeonly dans votre recherche des fréquences. Si une ligne Clocks est présente dans la section Devices, le serveur ne cherchera pas les fréquences, mais utilisera ces valeurs.

Certaines cartes vidéo accélératrices utilisent un circuit d'horloge programmable (se référer au manuel de XF86_Accel pour de plus amples détails; ceci s'applique plus particulièrement aux cartes S3, AGX et XGA-2). Ce circuit permet essentiellemnt au serveur X de spécifier à la carte la fréquence par point (dot clock) à utiliser. Si tel est votre cas, alors vous ne pourrez trouver de liste des fréquences d'horloges pour votre carte dans les fichiers cités plus haut. Ou bien, la liste de fréquences que vous obtiendrez lors d'un X -probeonly ne contiendra qu'une ou deux valeurs discrètes, le reste étant des zéro ou des copies de ces valeurs.

Pour les cartes utilisant un circuit d'horloge programmable, vous devrez utiliser une ligne ClockChip au lieu de la ligne Clocks, dans votre fichier XF86Config. ClockChip donne le nom du circuit programmable utilisé par votre carte vidéo; vous trouverez ce nom dans les pages du manuel de chaque serveur. Par exemple, dans le fichier README.S3, vous verez que de nombreuses cartes vidéo S3-864 utilisent un circuit d'horloge ICD2061A, et vous devrez utiliser cette valeur comme suit~:

          ClockChip "icd2061a"

au lieu de la ligne Clocks dans le fichier XF86Config. Tout comme Clocks, cette ligne doit se trouver dans la section Devices, après Chipset.

De même, certaines cartes accélératrices nécessitent que vous précisiez le type de circuit RAMDAC en utilisant une ligne Ramdac dans le fichier XF86Config. De même, vous trouverez ce nom dans les pages du manuel de chaque serveur. Généralement, le serveur X détectera correctement le type de RAMDAC.

Vous trouverez aussi certaines cartes nécessitant que vous spécifiez plusieurs options (on en finira donc jamais) dans la section Devices du fichier XF86Config. Là encore, ces options se trouvent dans les pages du manuel de chaque serveur, comme README.cirrus ou README.S3. Ces options sont declarées actives par leur seule présence dans le fichier XF86Config. Par exemple, la carte #9 GXE 64 nécessite deux options~:

               Option "number_nine"
               Option "dac_8_bit"

Généralement, le serveur X fonctionnera correctement sans ces options, mais elles sont nécessaires si vous désirez améliorez vos performances. Il existe de très nombreuses options autres que celles énumerées ici. Ces options permettent soit d'améliorer vos performances, soit sont spécifiques à une carte vidéo. Si vous désirez approfondir la configuration de votre serveur X, vous pouvez vous référer aux manuels des serveurs X, aux fichiers situés dans /usr/X11R6/lib/X11/doc, ainsi qu'au meeeer-veil-leux Vidéo-HOWTO.

Ainsi, une fois toutes ces options entrées, vous devez vous retrouverez avec une section Devices ressemblant à~:

       Section "Device"
               # Cette section est pour une carte #9 GXE 64 !
               Identifier "#9 GXE 64"
               Chipset "mmio_928"
               ClockChip "icd2061a"
               Option "number_nine"
               Option "dac_8_bit"
       EndSection

Vous noterez au passage que dans cet exemple la carte #9 GXE 64 utilise une ligne ClockChip et non pas une ligne Clocks.

Je ne vous ai pas encore tout dit. Il existe d'autres options que vous pouvez spécifier (si, si !). Pour plus de détails consultez les manuels du serveur X. Mais généralement les quelques options spécifiées ci-dessus suffiront bien largement.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre