Framebuffer HOWTO: Conversion des Modelines en paramètres d'affichage du pilote de mémoire

Rien n’est plus simple si XFree86 (X11) est installé sur votre machine et que vous pouvez vous en servir normalement.

Le pilote de mémoire vidéo requiert les champs suivants :

  • pixclock – horloge pixel en picosecondes
  • left_margin – durée entre la synchro et la zone affichée
  • right_margin – durée entre la zone affichée et la synchro
  • upper_margin – durée entre la synchro et la zone affichée
  • lower_margin – durée entre la zone affichée et la synchro
  • hsync_len – longueur de la synchro horizontale
  • vsync_len – longueur de la synchro verticale

Une ligne « Modeline: XFree86 comprend les champs suivants :

Modeline  "1280x1024" DCF HR SH1 SH2 HFL VR SV1 SV2 VFL

Quelques calculs sont nécessaires pour la conversion. A titre d’exemple voici la conversion de valeurs extraites de mon XF86Config.

Modeline  "1280x1024" 110.00 1280 1328 1512 1712 1024 1025 1028 1054

Tout d’abord le paramètre pixclock. XFree86 l’exprime en MHz et le pilote de mémoire vidéo en picosecondes (pourquoi? mystère). On divise donc un million par DCF soit : 1,000,000 / 110.0 = 9090.9091

Pour les durées horizontales :

  • left_margin = HFL – SH2
  • right_margin = SH1 – HR
  • hsync_len = SH2 – SH1

Soit, dans notre exemple :

  • left_margin = 1712 – 1512 = 200
  • right_margin = 1328 – 1280 = 48
  • hsync_len = 1512 – 1328 = 184

Enfin les durées verticales :

  • upper_margin = VFL – SV2
  • lower_margin = SV1 – VR
  • vsync_len = SV2 – SV1

Soit :

  • upper_margin = 1054 – 1028 = 26
  • lower_margin = 1025 – 1024 = 1
  • vsync_len = 1028 – 1025 = 3

Les valeurs obtenues sont passées au gestionnaire de mémoire vidéo. Dans le cas du pilote matroxfb :

video=matrox:xres:,yres:,depth:,left:,right:,hslen:,upper:,lower:,vslen:

J’ai donc inséré la ligne suivante dans mon /etc/lilo.conf :

append = "video=matrox:xres:1280,yres:1024,depth:32,left:200,right:48,hslen:184,upper:26,lower:0,vslen:3"

Notez que le pixclock n’est pas employé ici. Il n’est nécessaire que si celui par défaut ne vous convient pas. Il se fixe de la même façon ainsi qu’il a été auparavant expliqué dans ce document.

READ  Colours with Linux terminals: Software