Comment 9 for bug 1432265

Revision history for this message
Martin Pitt (pitti) wrote :

I tested this on current Xenial amd64 with a LUKS partition for /opt. Indeed when dropping "splash" from the command line I only get "Starting cryptography for..." but no actual prompt. Theh same happens when I use "console=ttyS0" and thus see the boot messages on the QEMU serial console.

In this case, systemd-ask-password-console is supposed to kick in. Both systemd-ask-password-console.{path,service} have

   ConditionPathExists=!/run/plymouth/pid

with the idea that if plymouth is running, the password will be asked by plymouth, and the "console" askpass would actually get in the way. Asking passwords with plymouth does work for me (both on tty1 and the serial console ttyS0), and that's consistent with Julian's report in comment 8 and the original report by Michael whose kernel command line also does not have "splash".

Now, I observed that even when booting without "splash", plymouthd is *still* running, and /run/plymouth/pid exists. It isn't started by plymouth-start.service as its condition fail (no "splash" in command line). But I suppose it's already started in the initramfs and survives from there.

When I remove the above ConditionPathExists=!/run/plymouth/pid, then prompting for the password when booting without "splash" works fine for both tty1 and ttyS0, but this is of course not a solution.

I think the bug is that /usr/share/initramfs-tools/scripts/init-premount/plymouth defaults to starting plymouth if there is no "splash" argument, but plymouth's systemd units default to *not* starting plymouth without a "splash" argument.

Explicitly specifying "nosplash" works, but we need to make up our mind what the default should be for no "*splash*" argument at all. I'd argue that it should not start plymouth in this case, as that's the intent of cloud-config and friends, and the intent of plymouth's services.