it-swarm.com.de

Tastaturlayout in initramfs seit Kernel 4.4.0-34 ignoriert. Wie verwende ich ein Layout außerhalb der USA?

Ich benutze ein deutsches Tastaturlayout und eine luks-verschlüsselte Festplatte auf meinem aktuellen 16.04. Ich konnte mein luks-Passwort problemlos über mein deutsches Tastaturlayout eingeben, bis ich das neueste Kernel-Update 4.4.0-34-generic installiert hatte. Jetzt ist das Layout en_US für das Cryptsetup beim Booten, aber danach ist alles deutsch (z. B. für die Anmeldung).

Ich kann mich immer noch dafür entscheiden, den alten Kernel 4.4.0-31-generic zu booten und das deutsche Tastaturlayout auf cryptsetup zu haben.

Ich habe versucht, "KEYMAP = y" zu meiner /etc/initramfs-tools/initramfs.conf hinzuzufügen und meine initramfs mit "Sudo update-initramfs -u" neu zu erstellen, aber das hat nicht geholfen.

Wie kann ich ein Tastaturlayout für Cryptsetup mit dem neuesten Kernel festlegen?

2
vollkorn

Ich hatte das gleiche Problem bei einer Neuinstallation * von Ubuntu 17.10 .

Diese Information von F.Raab hat sich als sehr nützlich erwiesen:

Allerdings generiert/usr/share/initramfs-tools/hooks/console_setup nicht /etc/console-setup/cached.kmap.gz und verwendet im Gegensatz zu Debian nur das vorhandene. Ich gehe davon aus, dass die Generation einmal richtig machen muss und dann sollte es wieder funktionieren und dann ´update-initramfs -u` aufrufen.

Es scheint, dass die Datei /etc/console-setup/cached.kmap.gz Auf meinem System fehlt , und anscheinend wird sie von den verantwortlichen Programmen nicht erstellt.

Die Schritte , die auf meinem System funktioniert haben:

  1. cd /etc/console-setup
  2. Suchen Sie eine Datei, die als Vorlage verwendet werden soll: ls | grep kmap (Suchen Sie nach Dateinamen, die 'kmap' im aktuellen Ordner enthalten). Ich wähle cached_UTF-8_del.kmap.gz.
  3. Erstellen Sie ein Duplikat der Vorlagendatei und nennen Sie es cached.kmap.gz: Sudo cp cached_UTF-8_del.kmap.gz cached.kmap.gz (Außer NVIDIA-Treiber, die über Software & Updates aktiviert wurden, und Grub Silent Splash deaktiviert wegen Fehler beim Herunterfahren )
  4. führen Sie Sudo update-initramfs -u aus, damit cached.kmap.gz in die Startsequenz integriert werden kann.

(Ich habe getestet, dass cached.kmap.gz Verwendet wird, indem ich stat cached.kmap.gz Vor und nach Schritt 4 ausgeführt und die Zugriffszeitstempel verglichen habe.)

Nach dem Neustart würde cryptsetup meine LUKS-Phrasen in meinem bevorzugten Tastaturlayout anstelle von QUERTY akzeptieren.

(Das bedeutet, dass cached_UTF-8_del.kmap.gz Bereits das richtige Layout enthielt. Wenn die obige Methode bei Ihnen nicht funktioniert, können Sie Ihr Glück mit einem der Befehle unter Tastaturlayout ändern (Englisch UK) in der Befehlszeile auf) versuchen Englisch (USA oder https://apps.ubuntu.com/cat/applications/language-selector-gnome/ )

Ich bin auf Kernel 4.13.0-32-generic' (check using Uname -r`). Ein Upgrade des Kernels könnte das Problem mindern , aber ich wollte das nicht, da ich befürchtete, dass dies erneut zu Konflikten mit dem NVIDIA-Treiber führen würde. (Warum ich Fedora verlassen musste; nach fast jedem Kernel-Update wurde mein System wieder instabil, und ich habe nicht die Fähigkeiten und die Zeit, das zu lösen.)

* mit Ausnahme von NVIDIA-Treibern, die über Software und Updates aktiviert wurden und die aufgrund von Fehler beim Herunterfahren deaktiviert wurden

2
c0d0g3n

KEYMAP=y Ist ein reiner Debian-Mechanismus und daher nur in Debian verwendbar. Es wird in /usr/share/initramfs-tools/hooks/keymap Übergeben, das sich im Paket initramfs-tools Befindet, und generiert den später verwendeten /etc/boottime.kmap.gz.

initramfs-tools In Ubuntu bietet völlig andere Hooks und sie verwenden nicht KEYMAP=y. Diese Skripte versuchen jedoch immer, die konfigurierte lokale Keymap zu laden. /usr/share/initramfs-tools/hooks/console_setup Kopiert den vorhandenen /etc/console-setup/cached.kmap.gz In die kleine Busybox-Umgebung. Später lädt /usr/share/initramfs-tools/scripts/init-top/console_setup Dann diese Keymap.

Btw. es scheint, dass /usr/share/initramfs-tools/scripts/init-top/keymap auch versuchen wird, auf die gleiche Weise zu laden /etc/boottome.kmap.gz, aber diese Datei existiert nicht (sie wurde früher verwendet).

Jedoch /usr/share/initramfs-tools/hooks/console_setup Erzeugt nicht /etc/console-setup/cached.kmap.gz Und verwendet nur das existierende, im Gegensatz zu Debian. Ich gehe davon aus, dass die Generation einmal richtig machen muss und dann sollte es wieder funktionieren und dann ´update-initramfs -u` aufrufen.

Es scheint jedoch, dass ich es zu diesem Zeitpunkt nicht richtig machen konnte. Was geklappt hat, ist etwas enttäuschend: Ich musste das gesamte Betriebssystem neu installieren. Stellen Sie sicher, dass Sie während des Installationsvorgangs das richtige Tastaturlayout ausgewählt haben, und führen Sie "update-initramfs -u" in einer Chroot-Umgebung des neuen Systems nach dem Installationsvorgang aus, bevor Sie das neu installierte System booten (das habe ich übrigens getestet).

1
F.Raab