You are not logged in.

#1 2025-02-21 09:37:28

chuck43134
Member
Registered: 2025-02-21
Posts: 6

No text prompt to enter LUKS decryption password on boot with UKI

I have a very straightforward LVM on LUKS setup in one partition, an unencrypted EFI system partition in the other.  I'm using mkinitcpio to generate UKI images, and in the preset file it specifies a `--splash` image for the UKI build.

Hooks used in mkinitcpio are:

HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block encrypt lvm2 filesystems fsck)

Upon boot, the image in EFL\Linux\arch-linux.efi does load, it does display the splash screen, and then after a moment (due to kernel mode setting?) the screen turns black.  The screen remains black, looking like nothing is happening, however, I can at this point type in the LUKS password, and the device continues booting normally.  There's no indicication that you're supposed to enter the LUKS passphrase when the screen is black.  I'm imagining that I am just missing a certain hook, but not sure which.

TIA

Offline

#2 2025-02-21 09:50:52

frostschutz
Member
Registered: 2013-11-15
Posts: 1,524

Re: No text prompt to enter LUKS decryption password on boot with UKI

Well, for splash screens, there is plymouth (and its package also provides the plymouth hook).

Might as well disable the UEFI --splash and see if that helps, though.

Or just leave as is, as long as it works...

Offline

#3 2025-02-24 09:18:15

chuck43134
Member
Registered: 2025-02-21
Posts: 6

Re: No text prompt to enter LUKS decryption password on boot with UKI

OK, I've tried a few things and still haven't found the solution.

1. Disabled the --splash option in the UKI build.  This just left the screen blank without displaying a splash, but I was still able to enter the encryption password to continue to the system boot.

2. I installed Plymouth, and added the Plymouth hook after the kms hook, and the screen still remained blank, and I was still able to enter a password.   When I press enter to continue, I see a quick flash of the plymouth logo before the system continues to boot.

3. I noticed that consolefont hook was complaining about a missing font, so I configured vconsole.conf with a font, and now the same behavior continues, except that when the screen flashes after entering the password, the font looks different.

It really looks to me that something is forgetting to set the screen mode before the password prompt.  Even though I could live with this, I would like to see text so that at some point in the future if there's an error, I'd be able to see it.

Cheers

Offline

#4 2025-02-24 10:02:49

chuck43134
Member
Registered: 2025-02-21
Posts: 6

Re: No text prompt to enter LUKS decryption password on boot with UKI

I'm setting kernel error messages at boot from my kms driver:

[    1.681846] xe 0000:00:02.0: [drm] User-defined mode not supported: "1920x1080": 60 172780 1920 2040 2248 2576 1080 1081 1084 1118 0x20 0x6

In fact there are a couple repeats of the above line.

This may be related?

EDIT: I changed the video mode on the kernel command line to video=eDP-1:2880x1800@120 and the errors go away, however still no text for the password prompt.

Last edited by chuck43134 (2025-02-24 10:12:55)

Offline

#5 2025-02-24 10:28:32

chuck43134
Member
Registered: 2025-02-21
Posts: 6

Re: No text prompt to enter LUKS decryption password on boot with UKI

I removed the quiet parameter from the kernel command line, and finally see text.  However, it's very brief.  It looks like the udev hook runs, and the last line I see is a line about `uevents` and the screen goes black.

So, I moved the kms and plymouth hooks to the very end of the HOOKS list, which means that encrypt hook happens before kms hook.  However, the screen *still* goes black after that `uevents` message.  I take that to mean that it's not the kms hook that is blanking the screen and most likely something happening by udev. Perhaps the loading of the drm/xe kernel module blanks the screen?

Still at a loss...

Offline

#6 2025-02-24 11:44:32

frostschutz
Member
Registered: 2013-11-15
Posts: 1,524

Re: No text prompt to enter LUKS decryption password on boot with UKI

kms is not a runtime hook, so moving it to the end of the list does not mean it will be loaded later. Even for runtime hooks, the order is not necessarily absolute (separated in early, late hooks etc.). And for build time hooks, the order rarely matters (except the autodetect hook).

If you suspect kms I guess you'd have to remove it altogether (plymouth as well, most likely).

Some drivers have special parameters to affect things at early boot time (amdgpu.seamless=[0|1] for example), not sure in your case.

I'm not able to replicate the situation here so I don't have a solution. Good luck,

Offline

#7 2025-02-24 14:57:24

chuck43134
Member
Registered: 2025-02-21
Posts: 6

Re: No text prompt to enter LUKS decryption password on boot with UKI

frostschutz wrote:

kms is not a runtime hook, so moving it to the end of the list does not mean it will be loaded later. Even for runtime hooks, the order is not necessarily absolute (separated in early, late hooks etc.). And for build time hooks, the order rarely matters (except the autodetect hook).

That makes sense.  I have since figured out a bit of mkinitcpio now.  The kms hook just brings in the kms drivers for my system (in this case the `xe` driver), which is loaded as necessary.  When I don't include kms in the mkinitcpio.conf (and also not plymouth), then at boot I can see kernel log messages and can see the passphrase prompt for the hard drive encryption.  That's pretty nice.  And we've narrowed down the culprit to be kms.

However, no splash screen, well, because no kms.   kms does eventually load before wayland starts -- it's just not available in initrd.  Not the worst situation.

Some drivers have special parameters to affect things at early boot time (amdgpu.seamless=[0|1] for example), not sure in your case.

I suspect that the xe driver either turns off the screen or defaults to a resolution that's not supported on my tablet.  I'm now wondering about a custom `fbcon` hook that sets the resolution before plymouth runs.  I would like the look and feel of this tablet to be really nice.   With `modinfo xe`, I didn't see anything that stands out that might help...

Offline

#8 2025-02-24 15:25:38

frostschutz
Member
Registered: 2013-11-15
Posts: 1,524

Re: No text prompt to enter LUKS decryption password on boot with UKI

You could try probe_display=0 however, you might not get any display at all then. Or it might work in whatever way the bios set it up originally. I'm not sure I understand the description correctly. If you try this parameter, don't make it permanent ;-) might lock yourself out instead.

Offline

#9 2025-02-24 16:30:23

chuck43134
Member
Registered: 2025-02-21
Posts: 6

Re: No text prompt to enter LUKS decryption password on boot with UKI

I created a new boot target that sets xe.probe_display=0.  There is a weird graphical artifact as kms loads (lines get drawn across the top of the screen), but the screen goes blank and never comes back, even after entering the passphrase.  Looks like that didn't help.  I tried with and without a video=... argument.

Thanks again for your time

Offline

Board footer

Powered by FluxBB