I recently switched from DE-ISO to US-ANSI layout and have an issue across my Archlinux machines that I cannot resolve which is a bit painful as the encryption key expects German layout but my keyboard is US.
Here is what I have tried so far:
- Checked that the US keymap is available on my system:
~ ❯ localectl list-keymaps | grep -iI "us" amiga-us atari-us br-latin1-us cz-us-qwertz is-latin1-us mac-us sunt5-cz-us sunt5-us-cz us us-acentos us1 - Changed
KEYMAPfor the vconsole:~ ❯ cat /etc/vconsole.conf KEYMAP=us FONT=lat9w-16 - Ensured that the keymap hook comes before the encrypt one in mkinitcpio:
~ ❯ grep -iI "hooks" /etc/mkinitcpio.conf # The following modules are loaded before any boot hooks are # HOOKS # This is the most important setting in this file. The HOOKS control the # order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for # HOOKS=(base) # HOOKS=(base udev autodetect block filesystems) # HOOKS=(base udev block filesystems) # HOOKS=(base udev block mdadm encrypt filesystems) # HOOKS=(base udev block lvm2 filesystems) # usr, fsck and shutdown hooks. HOOKS=(base udev autodetect modconf block keyboard keymap consolefont encrypt filesystems fsck shutdown) - Rebuilt mkinitcpio for the current Linux kernel:
~ ❯ sudo mkinitcpio -p linux ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default' -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img ==> Starting build: 6.0.8-arch1-1 -> Running build hook: [base] -> Running build hook: [udev] -> Running build hook: [autodetect] -> Running build hook: [modconf] -> Running build hook: [block] ==> WARNING: Possibly missing firmware for module: xhci_pci -> Running build hook: [keyboard] -> Running build hook: [keymap] -> Running build hook: [consolefont] -> Running build hook: [encrypt] ==> WARNING: Possibly missing firmware for module: qat_4xxx -> Running build hook: [filesystems] -> Running build hook: [fsck] -> Running build hook: [shutdown] ==> Generating module dependencies ==> Creating zstd-compressed initcpio image: /boot/initramfs-linux.img ==> Image generation successful ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback' -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect ==> Starting build: 6.0.8-arch1-1 -> Running build hook: [base] -> Running build hook: [udev] -> Running build hook: [modconf] -> Running build hook: [block] ==> WARNING: Possibly missing firmware for module: qed ==> WARNING: Possibly missing firmware for module: qla1280 ==> WARNING: Possibly missing firmware for module: wd719x ==> WARNING: Possibly missing firmware for module: qla2xxx ==> WARNING: Possibly missing firmware for module: bfa ==> WARNING: Possibly missing firmware for module: aic94xx ==> WARNING: Possibly missing firmware for module: xhci_pci -> Running build hook: [keyboard] -> Running build hook: [keymap] -> Running build hook: [consolefont] -> Running build hook: [encrypt] ==> WARNING: Possibly missing firmware for module: qat_4xxx -> Running build hook: [filesystems] -> Running build hook: [fsck] -> Running build hook: [shutdown] ==> Generating module dependencies ==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-fallback.img ==> Image generation successful
However, when I boot the system, it fails to decrypt my device and between two encryption attempts I keep hitting random keys to see which keymap is active and it turns out it's still the German ISO layout.
~
❯ uname -a
Linux bunda 6.0.8-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 10 Nov 2022 21:14:24 +0000 x86_64 GNU/Linux
Is there any other location I could have defined that? What else could I check?