I will build on your good work identifying differences between
"working-conditions" (WKC)
and "non-working-conditions" (NWC).
Note: I am surprised you have to do any of what is suggested below, but if it works... good for you.
You may need to explicitly force loading of module serio_raw
by systemd
at boot time.
Try adding it to /etc/modules
(source).
Or create file /etc/modules-load.d/serio_raw.conf
containing serio_raw
.
Cold boot and post feedback (how did this affect the differences you found before? see this to check for module insertion).
If you need to load the module earlier on (you mention "cryptsetup is asking for my password on my encrypted drive"), during boot load with initrd
, you can use initramfs-tools or dracut.
This and this may help.
See also official info, or this.
If that alone doesn't work, assuming when you executed xinput list
under WKC there was no external keyboard, AT Translated Set 2 keyboard
is the internal keyboard (source).
Add automatic execution of command
$ xinput list-props "AT Translated Set 2 keyboard"
upon boot to see if you get something like
Device 'AT Translated Set 2 keyboard':
Device Enabled (124): 0
...
when cold booting.
If so, add automatic execution of command
$ xinput set-prop "AT Translated Set 2 keyboard" "Device Enabled" 1
and cold boot again.
Please post feedback.
You could also inspect the state of your system in NWC by ssh
ing into it.
Perhaps this is "less invasive" than using an external keyboard in terms of keyboard configuration.
Related:
- https://unix.stackexchange.com/questions/89538/how-to-tell-which-keyboard-was-used-to-press-a-key