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
(accessibles avec Ctrl+Alt+F1 à F6, avec Ctrl+Alt+F7 pour revenir en mode graphique) en une résolution supérieure à 640x480 (c'est appréciable quand on les utilise).
Pour activer le framebuffer, il faut passer en paramètre au noyau un paramètre vga=7??
(ou vga=0x3??
) à l'amorçage de Linux.
Le 7?? est une valeur spécifique dépendant de la résolution de l'écran et du nombre de couleurs demandés. Quelques exemples parmi les plus courants :
Couleurs | 640×480 | 800×600 | 1024×768 | 1280×1024 |
---|---|---|---|---|
8 bits | 769 | 771 | 773 | 775 |
15 bits | 784 | 787 | 790 | 793 |
16 bits | 785 | 788 | 791 | 794 |
32 bits | 786 | 789 | 792 | 795 |
Vous pouvez également trouver d'autres exemples de modes ici.
Vous pouvez identifier les modes supportés par votre carte graphique avec l'utilitaire hwinfo ; installez le paquet hwinfo puis :
sudo hwinfo --framebuffer
Les codes hexadécimaux peuvent être utilisés à la place des codes décimaux (0x318
pour 792
par exemple).
Par défaut, à l'installation, Ubuntu n'a pas mis à jour GRUB2 et le FRAMEBUFFER avec les caractéristiques spécifiques de votre matériel. Ceci n'est pas critique en soi, d'autant que tout a été fait pour que cela puisse être facilement réalisé manuellement.
Pour configurer le FRAMEBUFFER, on utilise maintenant GFXPAYLOAD plutôt que vga=xxx.
Editez 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:
GRUB_GFXPAYLOAD=1680x1050 GRUB_GFXPAYLOAD_LINUX=keep
sudo update-grub
Étant donné que les modules FrameBuffer sont blacklistés par défaut sous Gutsy/Hardy/Intrepid, il y a de fortes chances 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 :
Il faut d'abord éditer le fichier /etc/modprobe.d/blacklist-framebuffer.conf et commenter (en rajoutant un # au début) la ligne :
blacklist vesafb
Puis rajouter les modules vesafb et fbcon (un par ligne) dans le fichier /etc/initramfs-tools/modules. Et on met à jour avec la commande :
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 !)