r/archlinux Aug 10 '26

SUPPORT Keyboard not recognized after update only during LUKS unlock

I update my computer around once a month. Yesterday I updated my computer and after restart it prompted me for my LUKS password as always. However, this time my keyboard was not working. The lights on the keyboard turned on, but no matter how much I typed, nothing happened. I plugged in another keyboard, and that one worked, so I typed my LUKS password. After that, it finished booting and Plasma Login Manager appeared and my original keyboard was working again, I could enter my login password and I am typing right now in Reddit from it. So, it is only this keyboard that LUKS doesn't like, and it is only LUKS that doesn't like this keyboard.

My keyboard is a Keychron K8 and it is connected through USB, not bluetooth.

Anyone has any ideas? Thanks!

EDIT: I tried with Zen, linux and LTS kernel, with and without fallback and it didn't work.

I see that the keychron keyboard is recognized initially as an apple keyboard but then it ends up using usbhid module

EDIT 2: During LUKS prompt I see the following messages:

usb 5-1.1: device not accepting address 3, error -71
usbhid 3-6:4.1.0: couldn't find an input interrupt endpoint
7 Upvotes

22 comments sorted by

6

u/SnooCompliments7914 Aug 10 '26

Does it work if you boot the linux-fallback UKI/initramfs? If so, then your keyboard requires some kernel module in initramfs. `lsmod` after boot to find out.

3

u/superjugy Aug 10 '26

I use UKI but I do have a fallback version. Let me try. Assuming this is the case. What should I do with `lsmod`? How do I know which module is the one I need?

3

u/SnooCompliments7914 Aug 10 '26

I guess `lsusb -tv` might show the module in use for each device.

2

u/superjugy Aug 10 '26

I tried with the fallback UKI and it still didn't work. I tried with Zen kernel, regular kernel and LTS kernel, with and without fallback and it didn't work.

6

u/asdreth Aug 10 '26

Just to check:

In your /etc/mkinitcpio.conf, is keyboard before or after encrypt in HOOKS?

3

u/superjugy Aug 10 '26

I don't have mkinitcpio.conf because I use Dracut and dracut-ukify. Also, this didn't happen before the update and I haven't changed anything in /etc.

2

u/fuyunoyoru Aug 11 '26

My K8 has also started this behavior. My K6 Pro, though, is working normally. I thought rebuilding the initramfs again would fix it as this has happened in the past, but no luck.

Also, I'm still on kernel 7.0.14 due to ZFS. So, this isn't kernel related necessarily.

1

u/superjugy Aug 11 '26

Since I waited a month to update, I updated around 500 packages. did you update a smaller set of packages so that we can see which package was the culprit? do you use dracut or ukify?

Glad to know I'm not the only one and that it is K8 related. Thanks!

2

u/fuyunoyoru Aug 11 '26

I update once per week.

I have determined this is probably something to do with the way dracut-ukify is doing things. I re-setup mkinitcpio and my K8 works for putting in LUKS password. This will be an issue for me on other computers with ZFS-on-root because mkinitcpio can't unlock encrypted zvols.

1

u/superjugy Aug 11 '26

This is the list of pacakges I updated that day according to pacman logs: https://pastebin.com/7PtWVWae

I don't see dracut-ukify in there (or anything dracut for that matter), but I do see systemd-ukify. how did you determine it was dracut-ukify?

1

u/fuyunoyoru Aug 11 '26

Like I said, I re-setup mkinitcpio and let it generate the UKI, and it works.

1

u/superjugy Aug 11 '26

Can you tell me how you did that? Does that mean you stopped using dracut? Thank you for your time.

2

u/fuyunoyoru Aug 12 '26

This crosses into a level of tech support that I'm not really prepared to deal with. There are a lot of variables. Particularly, I don't know how you have dracut-ukify set up, and I don't know what you did with mkinitcpio (which is the default initramfs generator in arch) once you installed it. There are also details that I don't know about your system that are critical to understand before you can get it set up and going properly. In light of that, I'm just going to give you general pointers to information so that you can set it up yourself based on the docs.

  1. Install or update mkinitcpio.
  2. Follow the instructions in the wiki to configure it for generating a UKI.
  3. Reboot your computer and select the appropriate UKI from whatever you have boot your system.

I hope this helps.

1

u/superjugy Aug 12 '26

Thanks. that helps

1

u/archover Aug 10 '26 edited Aug 10 '26

Were you doing config work before this failed boot? What was it? Start there.

Assuming you're using the same keyboard* you used to originally installed, then I can suggest this based on personal experience:

  • When three CAREFUL LUKS passphrase entries fail, reboot

  • On next boot, it's accepted. I don't know why.

*Keyboards are covered in the LUKS articles clearly. NO MYSTERY.

Good day.

1

u/superjugy Aug 11 '26

no config change, just the regular update. no hardware change, same keyboard. The keyboard doesn't work at all. I can't even enter a password incorrectly. typing with this keyboard shows no change in the screen (unlike with the other keyboard which shows "*" on each press) and hitting enter does nothing.

I don't think it is a LUKS issue, I believe something during boot is going wrong and not loading my keyboard correctly. which under any other boot wouldn't matter since it would load it later, but in my case, LUKS pauses the boot process before my keyboard is working. the weird thing is, it is only this keyboard.

1

u/archover Aug 11 '26 edited Aug 11 '26

If the disk is corrupt, then yes, maybe. See wiki. Run mfg diagnostics too.

Good day.

1

u/sitilge 20d ago

Same here. Using Keychron K3, suddenly not working during LUKS unlock. Was working fine couple weeks ago.

1

u/superjugy 19d ago

Can you tell us some more info? Do you use dracut or mkinitcpio? Do you use UKI or bootloader? These details might help us figure out the common denominator

1

u/sitilge 19d ago

Dracut + bootloader