Le framebuffer est un système qui va permettre à Linux de passer dans une résolution supérieure au classique VGA en mode texte. Il envoie alors directement les images en haute résolution à la carte graphique.
L'intérêt est d'avoir les consoles tty1 à tty6 1) en une résolution supérieure à 640×480 (c'est appréciable quand on les utilise).
De plus, la majorité des écrans possédant une résolution dite native, il serait dommage de ne pas en profiter !
Pour activer le framebuffer, il faut indiquer à l'amorceur du noyau un paramètre correspondant à la résolution de l'écran et du nombre de couleurs souhaitées. Jusqu'à Lucid il fallait indiquer cette valeur2) sous forme décimale ou héxadécimale.
Pour identifier les modes supportés par votre carte graphique, installez le paquet hwinfo puis saisissez dans un terminal la commande suivante:
sudo hwinfo --framebuffer
Quelques exemples parmi les plus courants :
Définition | Affichage 8 bits | Affichage 16 bits | Affichage 24 bits | |||||
---|---|---|---|---|---|---|---|---|
Taille | Nom | Ratio | décimal | hexa. | décimal | hexa. | décimal | hexa. |
1280 × 1024 | SXGA | 1.25 | 775 | 0x307 | 794 | 0x31A | 795 | 0x31B |
640 × 480 | VGA | 1.33 | 769 | 0x301 | 785 | 0x311 | 786 | 0x312 |
800 × 600 | SVGA | 1.33 | 771 | 0x303 | 788 | 0x314 | 789 | 0x315 |
1024 × 768 | XGA | 1.33 | 773 | 0x305 | 791 | 0x317 | 792 | 0x318 |
1152 × 864 | XGA+ | 1.33 | 353 ? | 0x161 | 355 ? | 0x163 | 356 ? | 0x164 |
1400 × 1050 | SXGA+ | 1.33 | 839 ? | 0x347 ? | 834 | 0x342 | 835 | 0x343 |
1600 × 1200 | UXGA | 1.33 | 796 | 0x31C | 798 | 0x31E | 799 | 0x31F |
2048 × 1536 | QXGA | 1.33 | ? | ? | ? | ? | 850 ? | 0x352 ? |
640 × 400 | ? | 1.60 | ? | ? | 829 | 0x33D | 830 | 0x33E |
1280 × 800 | WXGA | 1.60 | 867 | 0x363 | 868 | 0x364 | 869 | 0x365 |
1440 × 900 | WXGA+ | 1.60 | 864 | 0x360 | 866 | 0x362 | 867 | 0x363 |
1680 × 1050 | WSXGA+ | 1.60 | 872 ? | 0x368 ? | ? | ? | 873 | 0x369 |
1920 × 1200 | WUXGA | 1.60 | 892 ? | 0x37c ? | ? | ? | 893 ? | 0x37d ? |
1280 × 720 | WXGA | 1.77 | ? | ? | ? | ? | ? | 0x037b |
Une page plus complète sur les codes VESA est disponible ici (en).
⇐9.10 mais maintenant ?
Pour la version Live ou le CD d'installation, sur la ligne « boot :
», au lieu d'appuyer directement sur « Entrée », entrer le nom du noyau à utiliser (accessible par F3) suivi du paramètre.
Par exemple pour la version Live :
Boot : live vga=791
Attention au clavier alors configuré en QWERTY, pour taper un « A » il faut alors appuyer sur la touche « Q ».
Grub (le sélecteur de système d'exploitation) vous proposera un mode d'édition à l'amorçage (touche « E »), qui vous permettra de tester ponctuellement un réglage (pratique pour voir si ça fonctionne).
Sinon il vous faudra éditer avec les droits d'administration le fichier /boot/grub/menu.lst pour indiquer le paramètre à la fin de la ligne « kernel ».
On passe par exemple de :
kernel /boot/vmlinuz-2.6.12-10-386 root=/dev/hda8 ro quiet splash
à
kernel /boot/vmlinuz-2.6.12-10-386 root=/dev/hda8 ro quiet splash vga=791
Si vous souhaitez que cette valeur soit appliquées systématiquement à chaque nouveau noyau, indiquez alors la valeur uniquement à la ligne « defoptions »
# defoptions=quiet splash vga=792
Puis mettez à jour grub en saisissant dans un terminal la commande suivante:
sudo update-grub
Editez avec les droits d'administration le fichier /etc/default/grub afin d'ajouter les deux lignes suivantes en précisant bien la résolution désirée au paramètre GRUB_GFXPAYLOAD_LINUX (valeur à adapter selon la résolution souhaitée ):
GRUB_GFXPAYLOAD=keep GRUB_GFXPAYLOAD_LINUX=1680x1050
Puis mettez à jour GRUB2 en saisissant dans un terminal la commande suivante:
sudo update-grub
Il suffit d'éditer avec les droits administration le fichier /etc/default/grub pour ajouter à la ligne:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
le paramètre vga (valeur à adapter selon la résolution souhaitée )
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=788"
Vous pouvez également indiquer directement la résolution à la page par exemple pour une résolution de 800×600:
GRUB_CMDLINE_LINUX_DEFAULT=800x600
Puis mettez à jour GRUB2 en saisissant dans un terminal la commande suivante:
sudo update-grub
Il peut arriver que les modules FrameBuffer soient blacklistés par défaut. Dans ce cas, il y est possible que vous vous retrouviez avec un écran noir si vous n'utilisez pas le mode par défaut. Voici un moyen de résoudre le problème :
: Besoin de passer par recovery_mode ?
blacklist vesafb
sudo update-initramfs -k all -u
Enfin, il faut rajouter le module vesafb dans le fichier /etc/modules. Et voilà (merci à ksso0s pour cette solution !)
Si enlever les modules du framebuffer des modules blacklistés ne suffit pas à faire revenir votre écran de splash, réglez les paramètres d'USplash dans le fichier /etc/usplash.conf de manière à ce que la résolution d'USplash corresponde à la résolution de votre framebuffer. Ainsi si vous avez mis le paramètre vga=792, votre fichier /etc/usplash.conf devra ressembler à ça :
# Usplash configuration file xres=1024 yres=768
Contributeurs : Lokx, adam0509, k-o-x et les contributeurs d'Ubuntu-fr.