{{tag>sysadmin linux grub2 layout clavier}}
====== Grub2 : Modifier la disposition des touches du clavier ======
:TODO_DOCUPDATE:
Depuis le menu de GRUB il est possible d'ouvrir un interpréteur de commande (shell) en appuyant sur la touche c. Par défaut la disposition des touches du clavier (layout) est en qwerty. Il est possible de paramétrer GRUB pour qu'il utilise un layout différent mais il faut rester prudent.
Certains utilisateurs ont signalés que sur leur ordinateur portable notamment, la reconfiguration du clavier ne fonctionnait pas et pouvait même rendre les interactions avec GRUB impossibles. Pour éviter cela on a fait le choix d'[[https://askubuntu.com/a/1557137|appliquer une recommandation]] : utiliser une fonction pour modifier la disposition des touches. Cela permet de conserver le layout existant par défaut et de le modifier seulement lors de l'appel de la fonction depuis le shell au besoin.
Dans un premier temps, on peut observer le type d'entrée utilisée par GRUB et vérifier s'il peut utiliser le clavier ''at_keyboard'' car c'est ce clavier seulement qui accepte différents layouts. Au démarrage, depuis le menu GRUB, appuyer sur C pour ouvrir l'interpréteur de commande.
# Affiche les valeurs utilisées par défaut
terminal_input
# Modifier le clavier et vérifier que la saisie fonctionne
terminal_input at_keyboard
# Echap pour revenir au menu ou redémarrer
reboot
NB : "terminal_input" peut prendre plusieurs valeurs comme ''serial'', ''console'' ou ''at_keyboard''. Sur mon système, le "terminal_input" utilisé par défaut est ''console'' mais ''at_keyboard'' est bien disponible. Lorsque je modifie la valeur de terminal_input, le clavier continue à répondre normalement.
Si votre clavier ne répond plus lorsque vous utilisez ''at_keyboard'' votre système ne supporte pas correctement l'utilisation de ce type d'entrée. Redémarrez la machine : aucune modification permanente n'a été faite à ce stade. La solution proposée ci-dessous ne fonctionnera pas su votre système car elle repose sur la reconfiguration du clavier ''at_keyboard''.
Une fois le système correctement démarré, on peut modifier la configuration de GRUB.
# Création du répertoire s'il n'existe pas
if [ ! -d /boot/grub/layouts ] ; then mkdir /boot/grub/layouts; fi
# Générer le fichier layout
grub-kbdcomp -o /boot/grub/layouts/fr.gkb fr
# Alternative (génère le même contenu)
ckbcomp fr | grub-mklayout -o /boot/grub/layouts/fr.gkb
A ce stade le fichier layout existe mais n'est pas utilisé.
:TODO:
On ajoute la fonction de reconfiguration de l'entrée
#!/bin/sh
# Stopper l’exécution à la première anomalie
set -e
cat <
Pour que les modifications apportées soient prises en compte :
update-grub
Si la machine ne supporte pas at_keyboard il n'y aura que la recompilation de grub avec une table azerty.
===== Références =====
* [[https://askubuntu.com/questions/751259/how-to-change-grub-command-line-grub-shell-keyboard-layout|Comment changer la disposition des touches du clavier pour la ligne de commande de GRUB2 (askubuntu.com) (en)]]
* [[https://doc.ubuntu-fr.org/tutoriel/grub2_parametrage_manuel#clavier_francais|Tutoriel GRUB 2 : clavier français (doc.ubuntu-fr.org)]]
* [[https://www.techcroute.com/changer-la-disposition-du-clavier-en-azerty-sous-linux/|Changer la disposition des touches du clavier en AZERTY sous GNU/Linux (techcroute.com)]]
* https://forums.archlinux.fr/viewtopic.php?t=17913
* [[https://unix.stackexchange.com/questions/729418/how-to-change-grub2s-keyboard-layout-on-a-laptop|Modifier la disposition des touches de GRUB2 sur un laptop (unix.stackexchange.com) (en)]]
* https://papy-tux.legtux.org/doc1193/index.html#mozTocId725141
* https://www.debian-fr.org/t/grub2-et-azerty/28506