LUKS password prompt invisible, prompts twice

  • Done
  • quality assurance status badge
Details
9 participants
  • Caleb Herbert
  • Josselin Poiret
  • Jake
  • James Smith
  • kasper.andersson
  • Tobias Geerinckx-Rice
  • Saku Laesvuori
  • X
  • Tomas Volf
Owner
unassigned
Submitted by
Caleb Herbert
Severity
normal
C
C
Caleb Herbert wrote on 25 Oct 2023 13:49
(address . bug-guix@gnu.org)
1698234598.24576@bluehome.net
Hardware: ThinkPad X200
Firmware: Libreboot 2016
OS: Guix System

Expected behavior:
Password prompt. Enter LUKS passphrase. Log into computer.

Actual behavior:
Password prompt. Enter LUKS passphrase. Select boot option from GRUB menu. Hangs, no password prompt. Enter passphrase (again) anyway: Boots normally.

Steps to reproduce:
1. Turn on laptop.
2. Select SeaBIOS payload (default boot option doesn't work).
3. Respond to LUKS prompt.
4. Select boot option.
5. Stare at gray screen with no password prompt.

--
Caleb
K
K
kasper.andersson wrote on 26 Oct 2023 20:44
(name . 66746)(address . 66746@debbugs.gnu.org)
NhhIJZY--V-9@tutanota.com
I can reproduce this on kernels 6.1.58, 6.5.7. Rolling back to a generation with kernel 6.1.57 fixes it, though, this is a correlation and I do not know if the kernel necessarily is what caused it.

As far as I know, the double prompt is expected behaviour (65002 seems to have a fix for that), as /boot is encrypted. What happens for me is that my custom GRUB background seems to cover the Linux framebuffer until I enter my password. After entering my LUKS password, everything works fine and I see output from Shepherd and Xorg starts as expected.

Hardware: Lenovo Thinkpad T460s
Attachment: file
J
J
Josselin Poiret wrote on 27 Oct 2023 20:44
87jzr752hk.fsf@jpoiret.xyz
Hi Caleb,

Caleb Herbert <csh@bluehome.net> writes:

Toggle quote (10 lines)
> Hardware: ThinkPad X200
> Firmware: Libreboot 2016
> OS: Guix System
>
> Expected behavior:
> Password prompt. Enter LUKS passphrase. Log into computer.
>
> Actual behavior:
> Password prompt. Enter LUKS passphrase. Select boot option from GRUB menu. Hangs, no password prompt. Enter passphrase (again) anyway: Boots normally.

I think this is a combination of two things: first, we currently need to
unlock the drive once for GRUB, and then once when Linux boots, hence
the two password prompts. This is a known limitation, but the usual
workaround of adding a keyfile to the initrd wouldn't work in our case
for security reasons: the keyfile would end up in the store and be
world-readable, a disaster.

Regarding the second prompt being invisible, I think it might be related
to the framebuffer initialization for Libreboot since there have been
lots of reports about this. I don't know anything myself, but maybe
someone else could chime in?

Best,
--
Josselin Poiret
-----BEGIN PGP SIGNATURE-----

iQHEBAEBCgAuFiEEOSSM2EHGPMM23K8vUF5AuRYXGooFAmU8BScQHGRldkBqcG9p
cmV0Lnh5egAKCRBQXkC5FhcaipaODACmkT9r2Rcp6kw9aQh6wURWVHiab4srPTry
akut8Sxfk2ZJtB7Ggf7w8ZMR8XCS95iCgWtAspumZUKiOQIWKNBoN+b612TvCDtT
oEy6VK9LfOR0HpfRcweQ+3RZgEY8GJjI4XsZEJW0tzZ5EpUKE+jDDkzkP+wzByfN
KWdCpONAkz4l/DYCUFz/izaUlqkRGZdhUmPz/0CeTawvDM5xJKXOFE4veA6Po8nq
pZ8lwlYoGjbT8FKTA4otBaRf+tjMXOjP6RwwCEdxt2mnJ2CqP7Q0Qui3+e61Ra4V
goz/r+DqZMVjUJsLBP801BeRLHxSmZThrXk1AZU/OnTSUrTRfqcJkj7EBnwFGo5O
lK548izFaPpiiNJ+UTBh98xjjhZEJHs6mVx4BM6Eg/Uyx4zNdfgmj1jgxJizmT0n
GD5/L23sDQfnkyO5fIJxNiFNaxOKUKXpAqMM1FVhbLwRSON8vSiq76hczg+yXo1v
Kbi45+1t2jE5lA9iZglM6ytYo/Uv8Ks=
=mKqL
-----END PGP SIGNATURE-----

S
S
Saku Laesvuori wrote on 27 Oct 2023 21:02
(name . Josselin Poiret)(address . dev@jpoiret.xyz)
7ms7bom7ixhuh2ieel6o3ydogrcnzyx465a4pa2zfqufvssf3c@ana6orr4s3s4
Toggle quote (21 lines)
> Hi Caleb,
>
> Caleb Herbert <csh@bluehome.net> writes:
>
> > Hardware: ThinkPad X200
> > Firmware: Libreboot 2016
> > OS: Guix System
> >
> > Expected behavior:
> > Password prompt. Enter LUKS passphrase. Log into computer.
> >
> > Actual behavior:
> > Password prompt. Enter LUKS passphrase. Select boot option from GRUB menu. Hangs, no password prompt. Enter passphrase (again) anyway: Boots normally.
>
> I think this is a combination of two things: first, we currently need to
> unlock the drive once for GRUB, and then once when Linux boots, hence
> the two password prompts. This is a known limitation, but the usual
> workaround of adding a keyfile to the initrd wouldn't work in our case
> for security reasons: the keyfile would end up in the store and be
> world-readable, a disaster.

I believe a patch[1] enabling this is waiting for a review.

-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoMkZR3NPB29fCOn/JX0oSiodOjIFAmU8CWIACgkQJX0oSiod
OjLhnRAAuoSOWBGlougEWgAHVmJivWvcKT85ghkeTykvUdXqD9DQYWEiaVIYfzvs
6Cl1MymLFqBeDfCnjuBufqICTg+v0XArDHcN24b9331jC/wX1+OfswpFxISsPMIk
cBBIY+4LVCNGTv7S8UDLUO82TvIoGC309YInKvsIWt+TqCimFp06ujFRkZFAqbwX
rLWKzTFrqFxzOLx4ejnVsEEBTT2QUCVTtYIdSSBx5Mt1V3yUQYLAURMNF4pcWxte
256iWN6W26F1DAGbrk4M3Q4HZZQDMxYItiDQaQv+5ERSlssnJBUuEwGwYqASIRjH
CRM8UtlMJnZB8oQ/NR+ySkBLfXAZPkBMv2JPu1PT2NaTeuBRAG5wRRQIcT4zozgG
oIH7eNWZg2JXE228JmZeag71ATMX5TJe+BfobL91gMWIJSrE2GaMruI7QcLe/jhX
7LmZr9uansYEooGF4pKPTX2Kff4q5ppu35wiUO8W93brFXAXryntUNEzEMfR2Mxe
JXPwemvUkbMi13W3/Or0h4vo6GDGGb1+bh9QKrIJlR9jSuRDbhChH0XjhLmgL/Aa
JgYtPrXTW9VWNJl8PCKCEd3GLy6UGiYvuVX8KFQ0Rju05rtOLbHG4LpfiBe4Vm6t
+OAa7uH6nGRM4XQhIueTQzQbl8kwxC1yHPFwxPpZNI0xsbmBg/c=
=sMZc
-----END PGP SIGNATURE-----


K
K
kasper.andersson wrote on 28 Oct 2023 13:07
LUKS password prompt invisible, prompts twice
(name . 66746)(address . 66746@debbugs.gnu.org)
Nhpxpu1--3-9@tutanota.com
With regards to the invisible LUKs prompt; my laptop does not run libreboot, but is still affected. Seems more like the Thinkpad framebuffer driver has a bug on the Linux or Grub side to me.
Attachment: file
J
(address . bug-guix@gnu.org)
CAJqVjv9S+QtDjjQdrzSBqVXUiBizHTMg_8=NpW5w7t7Y0LNdEA@mail.gmail.com
Hi

I’m also getting this bug (the second decrypt screen not showing up) with
Linux kernel versions 6.5.8 and 6.5.9 (the latest version as of writing);
6.5.7 does not have the bug for me.

The bug behaviour is the same on 2/2 of my Guix System machines. And it is
the same for both Linux and linux-libre kernels of the same version.

Thanks
Jake
Attachment: file
T
T
Tobias Geerinckx-Rice wrote on 29 Oct 2023 12:48
Re: LUKS password prompt invisible, prompts twice
(address . 66746@debbugs.gnu.org)
e84c90e90e46ade04254a288dd37a06b@tobias.gr
Toggle quote (6 lines)
> I’m also getting this bug (the second decrypt screen not showing up)
> with
> Linux kernel versions 6.5.8 and 6.5.9 (the latest version as of
> writing);
> 6.5.7 does not have the bug for me.

Oh, this might be interesting… At least it's something.

Could you diff a working 6.5.7 and broken 6.5.8 configuration? The
configuration is stored as /gnu/store/…-linux-libre-6.5.x/.config;
there's no need to boot the kernel just to load the config.gz module.

If you use Coreboot or a derivative: do your broken kernels include

And if they do, have you tried booting with

(initrd-modules (cons "framebuffer-coreboot" %base-initrd-modules))

by any chance?

Kind regards,

T G-R

Sent from a Web browser. Excuse or enjoy my brevity.
J
J
James Smith wrote on 29 Oct 2023 17:04
(address . 66746@debbugs.gnu.org)
8634xt8jqj.fsf@disroot.org
Hi everyone,

I've been hit by this bug as well on my desktop (AMD GPU, default UEFI).
Reading through this thread, and especially checking commit
6d7e181ba18d11c92409a93936025fb46b9c8171, what fixed the invisible LUKS
password prompt for me was adding simplefb to the list of initrd-modules
in my system config.

Hope this helps,
James Smith
J
Re: bug#66746: LUKS password prompt invisible, prompts twice
(address . bug-guix@gnu.org)
CAJqVjv9trbS7km9L5TZ989bL5Y3rjfSQYNOeNjnhhVn6kVWbNA@mail.gmail.com
Hi Tobias

The initrd-modules snippet did not fix it.
Below is the diff of the .configs for 6.5.9 (not 6.5.8 sorry) and 6.5.7.

Thanks
Jake


3c3
< # Linux/x86_64 6.5.9-gnu Kernel Configuration
---
Toggle quote (1 lines)
> # Linux/x86_64 6.5.7-gnu Kernel Configuration
2354c2354
< CONFIG_SYSFB_SIMPLEFB=y
---
Toggle quote (1 lines)
> # CONFIG_SYSFB_SIMPLEFB is not set
2356,2363c2356
< CONFIG_GOOGLE_FIRMWARE=y
< # CONFIG_GOOGLE_SMI is not set
< # CONFIG_GOOGLE_CBMEM is not set
< CONFIG_GOOGLE_COREBOOT_TABLE=m
< # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
< CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
< # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
< # CONFIG_GOOGLE_VPD is not set
---
Toggle quote (1 lines)
> # CONFIG_GOOGLE_FIRMWARE is not set
6956c6949
< CONFIG_DRM_SIMPLEDRM=m
---
Toggle quote (1 lines)
> # CONFIG_DRM_SIMPLEDRM is not set
7085c7078
< CONFIG_FB_SIMPLE=m
---
Toggle quote (2 lines)
> CONFIG_FB_SIMPLE=y

On Sun, Oct 29, 2023 at 11:49?AM Tobias Geerinckx-Rice via Bug reports for
GNU Guix <bug-guix@gnu.org> wrote:

Toggle quote (32 lines)
> > I’m also getting this bug (the second decrypt screen not showing up)
> > with
> > Linux kernel versions 6.5.8 and 6.5.9 (the latest version as of
> > writing);
> > 6.5.7 does not have the bug for me.
>
> Oh, this might be interesting… At least it's something.
>
> Could you diff a working 6.5.7 and broken 6.5.8 configuration? The
> configuration is stored as /gnu/store/…-linux-libre-6.5.x/.config;
> there's no need to boot the kernel just to load the config.gz module.
>
> If you use Coreboot or a derivative: do your broken kernels include
> <
> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=6d7e181ba18d11c92409a93936025fb46b9c8171
> >?
>
> And if they do, have you tried booting with
>
> (initrd-modules (cons "framebuffer-coreboot" %base-initrd-modules))
>
> by any chance?
>
> Kind regards,
>
> T G-R
>
> Sent from a Web browser. Excuse or enjoy my brevity.
>
>
>
>
Attachment: file
J
bug#66746: LUKS password prompt invisible, prompts twice
(address . bug-guix@gnu.org)
CAJqVjv8UwWP0Spjbx5EJy4B4aa9wPNmy1M8bNfzi0Vnh8REsDg@mail.gmail.com
Hi Tobias

The initrd-modules snippet did not fix it.
Below is the diff of the .configs for 6.5.9 (not 6.5.8 sorry) and 6.5.7.

Thanks
Jake


3c3
< # Linux/x86_64 6.5.9-gnu Kernel Configuration
---
Toggle quote (1 lines)
> # Linux/x86_64 6.5.7-gnu Kernel Configuration
2354c2354
< CONFIG_SYSFB_SIMPLEFB=y
---
Toggle quote (1 lines)
> # CONFIG_SYSFB_SIMPLEFB is not set
2356,2363c2356
< CONFIG_GOOGLE_FIRMWARE=y
< # CONFIG_GOOGLE_SMI is not set
< # CONFIG_GOOGLE_CBMEM is not set
< CONFIG_GOOGLE_COREBOOT_TABLE=m
< # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
< CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
< # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
< # CONFIG_GOOGLE_VPD is not set
---
Toggle quote (1 lines)
> # CONFIG_GOOGLE_FIRMWARE is not set
6956c6949
< CONFIG_DRM_SIMPLEDRM=m
---
Toggle quote (1 lines)
> # CONFIG_DRM_SIMPLEDRM is not set
7085c7078
< CONFIG_FB_SIMPLE=m
---
Toggle quote (1 lines)
> CONFIG_FB_SIMPLE=y
Attachment: file
X
Re: LUKS password prompt invisible, prompts twice
(address . 66746@debbugs.gnu.org)(address . me@tobias.gr)
CAJZHhuTKZ+dnfGegeLRTKuiUXdOH0UqMqMqkfjYR4QuSUyHZoA@mail.gmail.com
Also affected, stock thinkpad. Can confirm that

(initrd-modules (cons "simplefb" %base-initrd-modules))

does fix the issue for me. Reverting
6d7e181ba18d11c92409a93936025fb46b9c8171 also fixes the issue.


T.

--
Tomas P4l4cl][n Volf
-- "There are only 10 types of people in the world: Those who
understand binary, and those who don't."
T
T
Tomas Volf wrote on 31 Oct 2023 21:19
control message for bug #66746
(address . control@debbugs.gnu.org)
87a5rymtnm.fsf@wolfsden.cz
close 66746
quit

Fixed in e49fdc231b0be00490fe1321888eb5c2acc480ac (by revert).
J
Re: bug#66746: LUKS password prompt invisible, prompts twice
(name . X)(address . volf.tomas@gmail.com)
CAJqVjv8y1B5wPapZ440Ow2ZSqiJPnx2GAdc8tTeGiefF5ozH6g@mail.gmail.com
A guix pull and reconfigure just now fixed it for me. I didn’t need to add
simplefb to os declaration.

Thanks
Jake

On Wed, 1 Nov 2023 at 1:06 am, X <volf.tomas@gmail.com> wrote:

Toggle quote (18 lines)
> Also affected, stock thinkpad. Can confirm that
>
> (initrd-modules (cons "simplefb" %base-initrd-modules))
>
> does fix the issue for me. Reverting
> 6d7e181ba18d11c92409a93936025fb46b9c8171 also fixes the issue.
>
>
> T.
>
> --
> Tomas P4l4cl][n Volf
> -- "There are only 10 types of people in the world: Those who
> understand binary, and those who don't."
>
>
>
>
Attachment: file
?