Page suivante Page précédente Table des matières

5. De quels modes VESA puis-je me servir ?

Cela dépend de votre carte graphique, en particulier de la quantité de mémoire dont elle dispose. A vous de voir quels sont les modes qui fonctionnent le mieux.

La table suivante fournit les numéros des modes que vous pouvez passer à l'invite VGA (en fait les indices se sont vus ajouter 0x200 afin de s'y retrouver plus facilement dans la table).

<!-- la table d'origine est decalee d'une colonne : en fait les modes 
0x300 et 0x301 representent le meme: 640x480, 8 bits-->
Couleurs |   640x480   800x600 1024x768 1280x1024 1600x1200
---------+-------------------------------------------------
 4 bits  |       ?      0x302      ?        ?         ?
 8 bits  |0x300/0x301   0x303    0x305    0x307     0x31C
15 bits  |      0x310   0x313    0x316    0x319     0x31D
16 bits  |      0x311   0x314    0x317    0x31A     0x31E
24 bits  |      0x312   0x315    0x318    0x31B     0x31F
32 bits  |       ?        ?        ?        ?         ?
8 bits = 256 couleurs, 15 bits = 32768 couleurs, 16 bits = 65536 couleurs, 24 bits = 16,8 millions de couleurs, 32 bits : la même chose qu'en 24 bits mais les 8 bits restant peuvent servir à diverses fins et l'ensemble s'adapte parfaitement aux bus 32 bits PCI/VLB/EISA. Les modes supplémentaires sont à la discrétion du fabricant puisque la spécification VESA 2.0 s'arrête au mode 0x31f. Il vous faudra sûrement tâtonner pour les trouver.

5.1 Utilisation des cartes graphiques Matrox

Si vous disposez d'une carte Matrox, vous emploierez le pilote matroxfb au lieu de vesafb. Matroxfb gère les Mystique Millenium I, II ainsi que les G100 et G200. Il permet aussi d'avoir plusieurs cartes dans la même machine. La configuration d'une carte Matrox passe par les étapes suivantes :

Mise à jour du BIOS Matrox que vous trouverez à http://www.matrox.com/mgaweb/drivers/ftp_bios.htm. Attention, vous aurez besoin du DOS pour procéder à la mise à jour.

Allez dans le menu ``Code Maturity Level'' et activez l'option suivante :

[Ceci peut changer dans les futurs noyaux. Le HOWTO sera alors modifié]

Dans le menu ``Console Drivers'', sélectionnez :

Recompilez votre noyau et modifiez le fichier /etc/lilo.conf. Inspirez vous du mien, vous irez plus vite.

# Fichier de configuration de LILO 
boot = /dev/hda3
delay = 30 
prompt
vga = 792  # Nécessaire pour une réinitialisation dans un état normal
# Linux bootable partition config begins
image = /vmlinuz
  append = "video=matrox:vesa:440" # On bascule sur le pilote Matroxfb
  root = /dev/hda3
  label = Linux
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking

Vous devrez ensuite créer les périphériques associés au gestionnaire de mémoire vidéo dans le répertoire /dev. Pour le premier, il vous suffit de taper :


# mknod /dev/fb0 c 29 0

Les suivants doivent être multiples de 32, soit, pour /dev/fb1 :
# mknod /dev/fb1 c 29 32

et ainsi de suite jusqu'au huitième si vous le souhaitez :
# mknod /dev/fb7 c 29 224

C'est tout ! Si l'un d'entre vous se sert simultanément de plusieurs cartes, qu'il me contacte aussi vite que possible afin que je documente davantage.

5.2 Utilisation des cartes graphiques Permedia.

Les cartes de type Permedia ne sont pas supportées par le pilote vesafb. Heureusement, il existe un gestionnaire de mémoire vidéo spécifique aux cartes Permedia. En supposant que vous employez menuconfig pour paramétrer le noyau avant une compilation, exécutez les instructions suivantes :

Allez dans le menu ``Code Maturity Level'' et activez l'option suivante :

[Ceci peut changer dans les futurs noyaux. Le HOWTO sera alors modifié]

Dans le menu ``Console Drivers'', sélectionnez :

Recompilez votre noyau et modifiez le fichier /etc/lilo.conf. Inspirez vous du mien pour aller plus vite.

# Fichier de configuration de LILO
boot = /dev/hda3
delay = 30 
prompt
vga = 792  # Nécessaire pour une réinitialisation dans un état normal
# Linux bootable partition config begins
image = /vmlinuz
  append = "video=pm2fb:mode:1024x768-75,font:SUN12x22,ypan" # then switch to pm2fb
  root = /dev/hda3
  label = Linux
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking

La ligne ``pm2fb:mode:1024x768-75,font:SUN12x22,ypan'' indique que le pilote opérera dans une résolution de 1024 par 768 à 75Hz avec les fontes SUN 12 par 22 (si vous les avez incluses). Ypan autorise le défilement vers l'arrière. Vous pouvez employer un autre mode.

Vous devrez ensuite créer les périphériques associés au gestionnaire de mémoire vidéo dans le répertoire /dev. Pour le premier, il vous suffit de taper


# mknod /dev/fb0 c 29 0

Les suivants doivent être multiples de 32, soit, pour /dev/fb1 :
# mknod /dev/fb1 c 29 32

et ainsi de suite jusqu'au huitième si vous le souhaitez :
# mknod /dev/fb7 c 29 224

Pour davantage de renseignements concernant les fonctionnalités du pilote Permedia, consultez http://www.cs.unibo.it/~nardinoc/pm2fb/index.html.

video=pm2fb:[option[,option[,option...]]]

où vous disposez des options suivantes :

5.3 Utilisation des cartes graphiques ATI

Remarque : les informations qui suivent ne viennent pas de moi vu que je ne dispose pas d'une carte ATI pour les vérifier. Si je me trompe, n'hésitez pas à me corriger, à m'insulter ou à m'envoyer votre carte ! 8-)

Les cartes ATI sont plus ou moins bien gérées par le pilote vesafb selon leur qualité intrinsèque. Heureusement, il existe un gestionnaire de mémoire vidéo spécifique aux cartes ATI. En supposant que vous employez menuconfig pour paramétrer le noyau avant une compilation, exécutez les instructions suivantes :

Allez dans le menu ``Code Maturity Level'' et activez l'option suivante :

[ceci peut changer dans les futurs noyaux. Ce HOWTO sera alors modifié]

Dans le menu ``Console Drivers'', sélectionnez :

Recompilez votre noyau et modifiez le fichier /etc/lilo.conf. Inspirez vous du mien, ce sera le plus rapide.

# Fichier de configuration de LILO
boot = /dev/hda3
delay = 30
prompt
vga = 792  # Nécessaire pour une réinitialisation dans un état normal
# Linux bootable partition config begins
image = /vmlinuz
  append = "video=atyfb:1024x768,font:SUN12x22"
  root = /dev/hda3
  label = Linux
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking

La ligne ``atyfb:mode:1024x768,font:SUN12x22'' indique que le pilote opérera dans une résolution de 1024 par 768.

Vous devrez ensuite créer les périphériques associés au gestionnaire de mémoire vidéo dans le répertoire /dev. Pour le premier, il vous suffit de taper :


# mknod /dev/fb0 c 29 0

Les suivants doivent être multiples de 32, soit, pour /dev/fb1 :
# mknod /dev/fb1 c 29 32

et ainsi de suite jusqu'au huitième si vous le souhaitez :
# mknod /dev/fb7 c 29 224

video=atyfb:[option[,option[,option...]]]

où vous disposez des options suivantes :

5.4 Quelles cartes graphiques se conforment aux spécifications VESA 2.0 ?

Voici une liste de cartes qui fonctionnent avec vesafb:

Une liste de cartes mères incluant un jeu de composants graphiques :

Les cartes qui ne fonctionnent pas :

5.5 Vesafb est-il modularisable ?

A ma connaissance, Vesafb ne peut pas être modularisé. Les développeurs de vesafb s'y attèleront peut-être un jour. De toute façon, si le pilote est modularisé, vous ne disposerez d'aucun affichage à l'écran tant que le module vesafb n'aura pas été modprobé. Il vaut sûrement mieux le laisser dans le noyau, des fois que le démarrage se passe mal.

5.6 Comment puis-je modifier le curseur ?

[Tiré du fichier VGA-softcursor.txt - merci à Martin Mares !]

Linux offre une certaine latitude pour modifier l'allure du curseur. En principe, vous pouvez fixer la taille de celui-ci et, par la même occasion, contourner quelques problèmes matériels de cartes Trident défectueuses (cf. #define TRIDENT_GLITCH dans le fichier drivers/char/vga.c). Si vous activez l'option de génération logicielle du curseur ("Software generated cursor"), des nouveautés se présentent : un curseur rouge, un qui intervertisse la couleur de premier plan et celle du fond, une mise en relief du caractère actif qui laisse le curseur matériel visible ou non. Je n'ai sûrement pas pensé à tout.

On contrôle l'allure du curseur via la séquence d'échappement

<ESC>[?1;2;3c
ou 1, 2 et 3 sont des paramètres que l'on va décrire à présent. Les paramètres absents prennent la valeur 0.

Le premier paramètre correspond à la taille du curseur (0=défaut, 1=transparent, 2=souligné, ..., 8=caractère plein). Ajoutez 16 pour rendre actif le curseur logiciel, 32 si la couleur de fond doit être systématiquement changée, 64 pour que les couleurs de premier plan et de fond soient distinctes. La graisse est ignorée pour les deux derniers attributs.

Le second paramètre indique quels sont les bits d'attributs à changer (un simple ou exclusif). Sur un écran VGA standard, les quatre bits de poids fort précisent le fond et les quatre de poids faible le premier plan. Dans chaque quartet, les trois bits de poids faible donnent la couleur et celui de poids fort active la mise en relief (ou active le clignotement suivant la configuration de la carte VGA).

Le troisième paramètre correspond aux valeurs que doivent prendre les bits que l'on souhaite modifier. Le positionnement d'un bit a lieu avant son masquage ; on force donc à 0 un bit en l'activant à la fois dans le masque de sélection et dans celui de positionnement.

Un curseur qui souligne et clignote : echo -e '\033[?2c' Un bloc qui clignote : echo -e '\033[?6c' Un bloc rouge qui ne clignote pas : echo -e '\033[?17;0;64c'


Page suivante Page précédente Table des matières