Bonjour
En créant une entrée dans le menu grub pour lancer linux sans interface graphique, j'ai été confronté au problème du clavier qwerty.
De nombreuses solutions (pas toujours efficaces) sont proposées sur Internet.
Je suis finalement arrivé a mes fins mais un problème demeure.
L'activation du clavier fr bloque le décompte du GRUB_TIMEOUT et il faut appuyer sur une touche pour le lancer.
Ce n'est pas très pratique et le responsable est
GRUB_TERMINAL_INPUT=at_keyboard
.
Pour remédier au problème, vu que je n'utilise le clavier qu'en mode commande, j'ai créer une fonction dans 40-custom :
1 2 3 4 5 6 7
| # Pour le clavier fr ou autre
function kbd {
insmod keylayouts
insmod at_keyboard
terminal_input at_keyboard
keymap $1
} |
Comme ça, quand je suis dans grub, j'appuie sur c pour passer en ligne de commande.
Je rentre puis je presse entrée.
Ma fonction est exécutée et mon clavier azerty est reconnu.
Je suis ici aussi obligé d'appuyer sur une touche avant que le clavier fonctionne correctement.
Il est aussi possible de choisir un autre type de clavier avec la commande par exemple
Pour que ça fonctionne et que ce soit complet, il faut d"abord créer un fichier de clavier.
grub va chercher les fichiers dans /boot/grub/layouts/
l'extension doit être .gkb
Pour créer le fichier de disposition du clavier Français :
grub-kbdcomp -o /boot/grub/layouts/fr.gkb fr
clavier canadien
grub-kbdcomp -o /boot/grub/layouts/ca.gkb ca
clavier russe
grub-kbdcomp -o /boot/grub/layouts/ru.gkb ru
mais attention, ça ne fonctionne pas avec ru.
J'ai aussi essayé avec de et gr sans résultat !
Peut être que sans le clavier correspondant ?
J'ai essayé d'utiliser sendkey mais ça ne fonctionne pas car sendkey charge les touches dans le buffer clavier qui sera transmis au kernel lancé.
Je ne peut pas passer directement en mode édition en pressant e car là le clavier est en qwerty, je suis obligé de passer par l'étape c.
Si quelqu'un a un début de commencement d'idée pour résoudre ce problème ?
Merci.
Bon puis pour finir en attendant les nombreuses suggestions qui vont bientôt pleuvoir.
Pour obtenir une ligne dans grub permettant de lancer le dernier noyau linux sans interface graphique :
Il faut modifier le fichier 10_linux.
Presqu'à la fin, il faut insérer ces lignes.
1 2 3 4 5 6 7 8
| if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
linux_entry "${OS}" "${version}" simple \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
#lignes a inserer
linux_entry "${OS} en ligne de commande" "${version}" simple \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} 3"
#fin de lignes a inserer
submenu_indentation="$grub_tab" |
Attention, ceci ne fonctionne pas si les sous-menus sont désactivés par GRUB_DISABLE_SUBMENU=y
Cordialement.
Partager