XF86Config sans peine.

1. Introduction.

Tout le monde a été confronté au problème du réglage du mode vidéo dans XF86Config. Ça a la réputation d'être compliqué et dangereux pour le matériel. En fait, grâce à MacOS et aux possiblités de BootX, ça devient très simple et moins dangereux. ATTENTION. Le risque de faire partir en fumée la carte graphique ou le moniteur est toujours là.

2. Pré-requis.

Utiliser XFree86, puisque le but de ce document est de fournir une méthode pour renseigner une partie du fichier XF86Config.

Avoir lu le XFree86 Video Timings Howto, et avoir compris où se trouve le danger.

Avoir lu la page de man de XF86Config.

Connaitre les limites fréquentielles du moniteur (ce n'est pas obligatoire, mais ça évitera de griller le moniteur).

Démarrer le Macintosh en run level 3. Le run level 5 doit aussi convenir, mais ça va être plus lourd.

Utiliser BootX.

Etre conscient que les manipulations décrites dans ce document risquent d'endommager gravement et définitivement votre carte graphique et/ou votre moniteur, et que vous les effectuez sous votre seule responsabilité.

3. La manip.

Ce n'est pas franchement compliqué, et tout le monde devrait être capable de s'en sortir. Et je ne le répéterai jamais assez, VOUS ETES SEUL RESPONSABLE DE CE QUE VOUS FAITES.

Il semblerait que cette manipulation ne fonctionnerait pas sur toutes les configurations. Elle a néanmoins fonctionné sur un 6500/275 et un G3/266 tournant sous LinuxPPC 1999 (juin 99). Envoyez moi (eherlent chez linux-france.org) vos retours d'expérience, j'enrichirai ce document.

3.1. Sous MacOS.

Sous MacOS, réglez votre écran (dimensions et fréquence de rafraîchissement) tel que vous souhaitez l'avoir sous X-Window. Pour augmenter les chances de succès, il est préférable de choisir une résolution connue de vmode. Démarrez BootX. Cochez no video driver, et, si vous avez des arguments de noyau concernant le mode vidéo, effacez les. Puis cliquez sur le bouton Linux.

3.2. Sous Linux.

3.2.1 fbset.

Vous êtes arrivés dans Linux en run level 3, et vous êtes donc sous la console. Et en plus, vous êtes dans le même mode vidéo que sous MacOS... Loggez vous en root. Si vous le souhaitez, lisez la page de man de fbset (man fbset). Passez la commande fbset -x. Vous obtenez quelque chose comme ceci :

Mode "name"
     # D: 78.413 MHz, H: 59.766 kHz, V: 74.707 Hz
     DotClock 78.414
     HTimings 1024 1056 1152 1312
     VTimings 768 771 774 800
     Flags    "-HSync" "-VSync"
EndMode

Comme vous pouvez le constater, mon écran est en 1024x768, la fréquence de balayage vertical est de 74,707 Hz et la fréquence de balayage horizontal est de 59,766 kHz.

Pour simplifier les explications, les informations fournies par fbset sont de la forme suivante :

Mode "NOM_DU_MODE"
     # D: FREQ MHz, H: FH kHz, V: FV Hz
     DotClock FREQ
     HTimings H1 H2 H3 H4
     VTimings V1 V2 V3 V4
     Flags    DRAPEAUX
EndMode

Gardez ces informations sous le coude, et ouvrez une autre session (touches commande-flèche droite).

Note : Il est possible que vous obteniez des valeurs farfelues. Par exemple, les fréquences de balayage ne sont pas identiques (ou pas très proches) de celles sous MacOS. Dans ce cas, vous pouvez recommencer la manipulation en décochant l'option "No video driver" de BootX, et en passant le paramètre vmode que vous souhaitez au noyau. Par exemple, indiquez :

video=atyfb:vmode:18,cmode:16

Adaptez le nom du driver (atyfb) et les valeurs de vmode et cmode à votre matériel et à ce que vous souhaitez obtenir sous X-Window.

3.2.2 XF86Config

Dans cette nouvelle session, loggez vous en root, et déplacez vous dans le répertoire /etc/X11 (cd /etc/X11). Faites une copie de sauvegarde du fichier XF86Config (cp XF86Config XF86Config.orig). Editez ce fichier et allez à la fin, à la section screen. Vous devez avoir quelque chose comme ceci :

Section "Screen"
     Driver      "fbdev"
     Device      "ATY Mach64"
     Monitor     "Mon Moniteur"
     DefaultColorDepth 16
     Subsection "Display"
         Depth       16
         Modes       "1024x768"
         ViewPort    0 0
         Virtual     1024 768
     EndSubsection
EndSection

Aux lignes Modes "1024x768" et Virtual 1024 768 (chez vous, c'est peut être différent), remplacez 1024 par la valeur de H1 et 768 par la valeur de V1.

Remontez un peu dans le fichier XF86Config pour arriver à la section Monitor, et au paramètre HorizSync. A cet endroit, vous devez vérifier que la plage de fréquences de balayage horizontal indiquée correspond à celle de votre moniteur. Les valeurs sont indiquées en kHz.

ATTENTION : VOUS ETES SEUL RESPONSABLE DE CE QUE VOUS FAITES. SI VOUS INDIQUEZ DES VALEURS INCORRECTES, VOUS RISQUEZ D'ENDOMMAGER VOTRE MONITEUR.

Cette mise en garde étant faite, si vous ne connaissez pas ces valeurs, vous pouvez vous en sortir quand même. Revenez dans la première session (touches commande-flèche à gauche), et notez la valeur de FH donnée par fbset, arrondissez la à l'entier inférieur et revenez dans le fichier XF86Config. Indiquez pour le paramètre HorizSync <FH>-<FH+1>. Dans le cas de notre exemple, ça sera :

HorizSync 59-60

Faites les mêmes vérifications pour le paramètre VertRefresh. Les fréquences indiquées sont en Hz. Si vous ne connaissez pas les valeurs admissibles de votre moniteur, utilisez le paramètre FV, et indiquez VertRefresh <FV>-<FV+1>. Dans le cas de notre exemple, ce sera :

VertRefresh 74-75

Un peu plus bas dans le fichier XF86Config se trouvent un certain nombre de lignes commençant par Modeline. Nous allons mettre la notre en tête. Elle a la forme Modeline "H1xV1" FREQ H1 H2 H3 H4 V1 V2 V3 V4 DRAPEAUX. Dans notre cas, ça donne :

Modeline "1024x768"   78.414  1024 1056 1152 1312  768 771 774 800  -hsync -vsync

Enregistrez le fichier XF86Config, et ouvrez une nouvelle session.

3.2.3 Vérification.

Dans cette nouvelle session, loggez vous avec un utilisateur quelconque, pourvu qu'un environnement graphique soit défini pour lui. Démarrez X par startx, et admirez.

Si c'est un désastre, revenez rapidement en mode console par la combinaison de touches controle-commande-F1. Il est également possible que le serveur X ne démarre pas. Dans ce cas, soit vous avez fait une erreur dans la saisie des paramètres (vérifiez les), soit cette méthode ne s'applique pas chez vous. Relisez également la page de man de XF86Config car XFree exploite ce fichier d'une certaine manière, et la place de la ligne Modeline ... a son importance.

3.2.4 Notes complémentaires.

SuSE PPC 7.0
Dans cette distribution, le script /sbin/init.d/xsfb ré-initialise le fichier /etc/XF86Config à chaque démarrage ! Pour désactiver cette "fonctionnalité", il suffit d'éditer le fichier /etc/rc.config et de remplacer CREATE_FBCONF="yes" par CREATE_FBCONF="no".

Merci à François Ziegler pour avoir signalé cette astuce.

4. Conclusion.

J'ai utilisé cette manipulation pour configurer l'écran 17" de mon G3 beige en 1152x870; 68,681 kHz et 75,062 Hz et ça a fonctionné sans aucun problème.

Si vous avez peur de réduire en cendres votre moniteur et/ou votre carte graphique et que votre carte graphique est une ATI (le conde constructeur d'ATI est ATY), c'est le cas de certains 6500, des G3, iMacs et G4, vous pouvez tenter d'utiliser le paramétrage pour iMac qui se trouve à la fin du fichier XF86Config. C'est ce que j'avais fait l'été dernier pour configurer l'écran de mon 6500.

Un petit bémol cependant. Sous MacOS, je peux fixer la fréquence de balayage de mon écran à 85 Hz, même si c'est une fréquence non recommandée. Avec la méthode précisée ici, sous Linux, je ne me retrouve pas à 85 Hz, mais à plus de 100 ! D'où cela vient-il ? De bootX ? Du fait qu'avec vmode il n'y a pas de paramètre pour une fréquence de balayage à 85 Hz ? Mystère !

Et encore une fois : TOUTES LES MANIPULATIONS QUE VOUS FAITES SONT SOUS VOTRE SEULE RESPONSABILITE.

J'y suis sans doute allé un peu fort sur le fait qu'on peu griller sa carte vidéo ou son écran. Il paraît que c'est possible, mais comme ça ne m'est jamais arrivé, je ne peux pas confirmer ... J'ai quand même lu il y a quelques mois dans l'un des groupes de nouvelles francophone sur Linux que quelqu'un avait grillé son moniteur en indiquant une plage de fréquences incorrectes.

Etienne Herlent.

 

Dernière mise à jour le 30/5/01.

les fichiers en téléchargement sont à ftp://ftp.linux-france.org/pub/macintosh/

 

Retour à GNU Linux sur Macintosh