Artisan Numérique

/cli/terminal/grub2/linux/psf/ Changer la résolution et la police de la console Linux

La console de base de Linux n'est pas l'endroit où l'on passe le plus de temps de nos jours. Mais malgré tout il arrive régulièrement que l'on ait besoin de travailler sur un système sous la couche graphique. Il est dans ce cas utile de savoir comment modifier la résolution et les polices de cette console de sorte de travailler en tout confort.

Modification de la résolution

Dans mon cas la problématique est encore plus critique. En effet, utilisant une interface Matrox TripleHead2go je me retrouve avec des lettres qui font le triple de leur largeur normal étalées sur 3 écrans, pas terrible...

Pour moi il est donc nécessaire d'imposer une résolution de 3840x1024 à la couche d'abstraction Framebuffer. Cela se fait finalement assez simplement en paramétrant Grub2.

La première étape consiste à fixer la bonne résolution via la variable "GRUB_GFXMODE" dans /etc/default/grub en ajoutant :

GRUB_GFXMODE=3840x1024x32

Mais il aurait été trop aisé que cela suffise. En effet, Grub2 va bien prendre en compte nouvelle résolution mais juste le temps du démarrage. Une fois le kernel lancé, tout sera réinitialisé.

Il nous faut donc instruire Grub2 de garder ce réglage avant de passer la main au kernel. Cela se fait en modifiant le fichier /etc/grub.d/00_header :

if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT_PATH}"` ; then
  set gfxmode=${GRUB_GFXMODE}
  # ----- La ligne à ajouter
  set gfxpayload=keep
  # -----
  load_video
  insmod gfxterm
fi

Maintenant il ne reste qu'à reconstruire la configuration de grub par un sudo update-grub, puis de redémarrer. À partir de là, la résolution devrait être la bonne de bout et bout jusqu'au login.

Pour ceux qui utiliserait cette console sur une base régulière, il existe une console de substitution, fbterm qui vaut le détour tant ses performances sont à des années-lumière de celles de la console de base de Linux.

Modification de la police de la console

La couche d'abstraction FrameBuffer va avec son propre format de police (.psf). Sous Debian, ces polices sont disponibles dans le dossier le dossier /usr/share/consolefonts/ (extension ".psf.gz").

Pour les tester ce n'est passorcier. Par exemple pour une Terminus en 14 pixels cela donne :

gastonsudo setfont /usr/share/consolefonts/Lat7-Terminus14.psf.gz

Pour rendre le choix définitif, toujours sous Debian, il faut reconfigure le paquet console-setup :

sudo dpkg-reconfigure console-setup

Là sont proposés le choix de langue, d'encodage et de police. Une fois le choix fait, il suffit de redémarrer pour valider.

Conclusion

Dans mon cas le résultat est utilisable mais ce n'est pas le Pérou non plus. J'ai eu beau essayer toutes les polices dispo, elles sont toutes bien larges pour ma résolution. Mais c'est déjà bien mieux qu'avant l'intervention ;-)