web-dev-qa-db-fra.com

Disposition du clavier ignorée dans initramfs depuis le noyau 4.4.0-34. Comment utiliser une mise en page non américaine?

J'utilise une configuration de clavier allemande et un disque dur chiffré avec Luks sur mon 16.04 mis à jour. Je pouvais entrer mon mot de passe luks en utilisant la configuration de mon clavier allemand sans aucun problème avant l'installation de la dernière mise à jour du noyau 4.4.0-34-generic. Maintenant, la mise en page est en_US pour le cryptsetup au démarrage, mais ensuite tout est en allemand (par exemple, pour la connexion).

Je peux toujours choisir de démarrer l'ancien noyau 4.4.0-31-generic et d'avoir la disposition du clavier allemand sur cryptsetup.

J'ai essayé d'ajouter "KEYMAP = y" à mon /etc/initramfs-tools/initramfs.conf et de reconstruire mes initramfs avec "Sudo update-initramfs -u", mais cela n'a pas aidé.

Comment définir une disposition de clavier sur cryptsetup avec le noyau le plus récent?

2
vollkorn

J'ai eu le même problème sur une nouvelle installation * d'ubuntu 17.10 .

Cette information de F.Raab s’est avérée très utile:

Cependant,/usr/share/initramfs-tools/hooks/console_setup ne génère pas /etc/console-setup/cached.kmap.gz et se contente d'utiliser l'existant, contrairement à Debian. Je suppose que la génération doit faire une fois correctement et ensuite elle devrait fonctionner à nouveau et ensuite appeler update-initramfs -u`.

Il semble que le fichier /etc/console-setup/cached.kmap.gz était manquant sur mon système et, apparemment, les programmes responsables ne le créent pas.

Les étapes qui ont fonctionné sur mon système:

  1. cd /etc/console-setup
  2. Recherchez un fichier à utiliser comme modèle: ls | grep kmap (recherchez les noms de fichiers contenant 'kmap' dans le dossier actuel). Je choisis cached_UTF-8_del.kmap.gz.
  3. Créez un duplicata du fichier modèle et appelez-le cached.kmap.gz: Sudo cp cached_UTF-8_del.kmap.gz cached.kmap.gz (sauf les pilotes NVIDIA activés via le logiciel et les mises à jour et Grub quiet Splash désactivé en raison de bogue d'arrêt )
  4. exécutez Sudo update-initramfs -u afin que cached.kmap.gz puisse être intégré à la séquence de démarrage.

(J'ai testé que cached.kmap.gz était utilisé en exécutant stat cached.kmap.gz avant et après l'étape 4 et en comparant les horodatages d'accès.)

Après le redémarrage, cryptsetup accepterait ma phrase secrète LUKS dans ma configuration de clavier préférée, au lieu de QUERTY.

(Cela signifie que cached_UTF-8_del.kmap.gz contenait déjà la disposition correcte. Si la méthode ci-dessus ne fonctionne pas, tentez votre chance avec l'une des commandes de Modifier la disposition du clavier (anglais britannique) sur commande. ligne en anglais US ou https://apps.ubuntu.com/cat/applications/language-selector-gnome/ )

Je suis sur le noyau 4.13.0-32-generic' (check usinguname -r`). La mise à niveau du noyau peut également résoudre le problème , mais je ne voulais pas le faire, car je craignais que cela ne provoque à nouveau des conflits avec le pilote NVIDIA. (Pourquoi je devais quitter Fedora; après presque chaque mise à jour du noyau, mon système redevenait instable et je n’avais ni les compétences ni le temps nécessaires pour le résoudre.)

* sauf les pilotes NVIDIA activés via le logiciel et les mises à jour et grub quiet splash désactivé en raison de bogue d'arrêt

2
c0d0g3n

KEYMAP=y est un mécanisme Debian uniquement et ne peut donc être utilisé que dans Debian. Il est transmis dans /usr/share/initramfs-tools/hooks/keymap situé dans le package initramfs-tools et génère le fichier utilisé ultérieurement /etc/boottime.kmap.gz.

initramfs-tools dans Ubuntu fournit des points d'accès totalement différents et n'utilise pas KEYMAP=y. Mais ces scripts essaient toujours de charger le keymap local configuré. /usr/share/initramfs-tools/hooks/console_setup copiera le /etc/console-setup/cached.kmap.gz existant dans le petit environnement busybox. Ultérieurement, /usr/share/initramfs-tools/scripts/init-top/console_setup chargera alors ce clavier.

Btw. il semble que /usr/share/initramfs-tools/scripts/init-top/keymap essaiera également de se charger de la même manière /etc/boottome.kmap.gz, mais ce fichier n’existe pas (il était utilisé autrefois).

Cependant, /usr/share/initramfs-tools/hooks/console_setup ne génère pas /etc/console-setup/cached.kmap.gz et n'utilise que l'existant, contrairement à Debian. Je suppose que la génération doit faire une fois correctement et ensuite elle devrait fonctionner à nouveau et ensuite appeler update-initramfs -u`.

Cependant, il me semble que je n’étais pas capable de le faire correctement à ce moment-là. Ce qui a fonctionné est un peu décevant: j'ai dû réinstaller tout le système d'exploitation. Assurez-vous d’avoir sélectionné la bonne configuration de clavier pendant le processus d’installation et d’exécuter "UPDATE-INDRAMFS -U" dans un environnement chroot du nouveau système après le processus d’installation, mais avant de démarrer sur le nouveau système installé (j’ai déjà testé cela.)

1
F.Raab