Following this and this i’m trying to change keyboard disposition on Slackware 15.1 (current) (iso) for entering LUKS passphrase with Grub2.
Disk partitions
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
zram0 251:0 0 31.2G 0 disk [SWAP]
nvme0n1 259:0 0 238.5G 0 disk
├─nvme0n1p1 259:1 0 400M 0 part /boot/efi
└─nvme0n1p2 259:2 0 238.1G 0 part
└─luksnvme0n1p2 252:0 0 238.1G 0 crypt
├─cryptvg-root 252:1 0 70G 0 lvm /
├─cryptvg-home 252:2 0 164G 0 lvm /home
└─cryptvg-swap 252:3 0 4G 0 lvm [SWAP]
# cat /etc/fstab
/dev/cryptvg/swap swap swap defaults 0 0
/dev/cryptvg/root / ext4 defaults 1 1
/dev/cryptvg/home /home ext4 defaults 1 2
/dev/nvme0n1p1 /boot/efi vfat defaults 1 0
Create a keyboard disposition and stored it in memdisk (ckbcomp)
root@darkstar:/boot/grub# grub-kbdcomp -o fr.gkb fr
Unknown keyboard scan identifier dead_kogonek
Unknown keyboard scan identifier Meta_Tab
Unknown keyboard scan identifier Meta_Tab
Unknown keyboard scan identifier dead_abovering
Unknown keyboard scan identifier dead_macron
Unknown keyboard scan identifier dead_hook
Unknown keyboard scan identifier dead_horn
Unknown keyboard scan identifier dead_kcaron
Unknown keyboard scan identifier dead_kbreve
Unknown keyboard scan identifier dead_kdoubleacute
Unknown keyboard scan identifier dead_belowdot
Unknown keyboard scan identifier dead_abovedot
Unknown keyboard scan code 0x54
Unknown keyboard scan code 0x65
Unknown keyboard scan code 0x7f
root@darkstar:/boot/grub# tar cf memdisk.tar fr.gkb
Install grub with default configuration and make shure it boot properly (–verbose display command options used in grub-install)
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Slackware --recheck --verbose
grub-mkconfig -o /boot/grub/grub.cfg
Adapted the grub-mkimage as follow:
grub-mkimage --directory "/usr/lib64/grub/x86_64-efi"
--prefix "(lvmid/...../......)/boot/grub"
--output "/boot/efi/EFI/Slackware/grubx64.efi" --format x86_64-efi --compression auto
--config "/boot/grub/early-grub.cfg"
--memdisk "/boot/grub/memdisk.tar"
ext2 lvm cryptodisk luks gcry_rijndael gcry_rijndael gcry_sha256 part_gpt
memdisk tar at_keyboard usb_keyboard keylayouts configfile
usb usbms efi_gop fat pbkdf2
content of early-grub.cfg
set root=(memdisk)
set prefix=($root)/boot/grub
insmod ext2
insmod lvm
insmod cryptodisk
insmod luks
insmod gcry_rijndael
insmod gcry_rijndael
insmod gcry_sha256
insmod part_gpt
insmod memdisk
insmod tar
insmod at_keyboard
insmod usb_keyboard
insmod keylayouts
insmod configfile
insmod terminal
insmod usb
insmod usbms
insmod efi_gop
insmod fat
insmod pbkdf2
# ehci (USB 2.0) uhci (USB 1.1) ohci (USB 1.1) boot directly to grub rescue, no passphrase prompt
# here changing path and extension confirm Grub try to load if automatically from /layouts folder
keymap (memdisk)/fr.gkb
# From /boot/grub/grub.cfg
cryptomount -u .....-....-....-....-......
set root='lvmid/...../.....'
set prefix=($root)/boot/grub/
configfile grub.cfg
Remove old grub boot entry and add a new one, and update grub.cfg
efibootmgr -B -b 0000 (0000 or whatever is the actual grubx64.efi boot entry)
efibootmgr -c -d /dev/nvme0n1 -p 1 -w -L Slackware -l "EFISlackwaregrubx64.efi"
grub-mkconfig -o /boot/grub/grub.cfg
At this point on reboot everything work as default grub setup described above, but keyboard remain in QWERTY.
I have never been able to make the usb_keyboard module to load, at_keyboard is available but don’t work with my usb azerty keyboard and old simple DELL usb keyboard, also azerty.
I can see with ls (memdisk)/
fr.gkb
I have tested this with two computer, different variations of early-grub.cfg /etc/default/grub and modules with no luck, also endless chat with Claude and DeepSeek
- Hp Elitdesk 800 G3 35W all usb ports are USB 3, so this should not work, hopefully i finally realized that there is a keyboard disposition option in the BIOS…
- Lenovo M720T with USB 2
Whatever i try the terminal_input remain console