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.
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 :
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
# mknod /dev/fb1 c 29 32
# mknod /dev/fb7 c 29 224
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 :
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
# mknod /dev/fb1 c 29 32
# 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 :
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 :
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
# mknod /dev/fb1 c 29 32
# mknod /dev/fb7 c 29 224
video=atyfb:[option[,option[,option...]]]
où vous disposez des options suivantes :
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 :
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.
[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;3cou 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'