]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
98dracut-systemd: Start systemd-vconsole-setup before dracut-cmdline-ask
authorDaniel Molkentin <dmolkentin@suse.com>
Wed, 5 Sep 2018 10:06:06 +0000 (12:06 +0200)
committerHarald Hoyer <harald@hoyer.xyz>
Wed, 5 Sep 2018 11:20:36 +0000 (13:20 +0200)
This is what happened before this patch (edited for brevity):

  dracut-cmdline-ask.service in modules.d/98dracut-systemd, which invokes
  dracut-cmdline-ask.sh. This script and systemd-vconsole-setup are
  started in parallel for the same console (tty1).

  Then dracut-cmdline-ask quits immediately without doing anything (unless
  rd.cmdline=ask is given). As this is a bash script and it gets tty as
  stdin as specified in its *.service, this triggers the hangup of tty1 at
  its exit.

  Meanwhile systemd-vconsole-setup continues and tries some ioctls after
  that, but they fail because of the hung up tty1.

The usual culprit for starting systemd-vconsole-setup early on is
plymouth-start.service, even if plymouth.enable=0 is set.

A popular (and annoying) symptom of this as reported by users was
the inability use their configured keyboard layout in plymouth when
unlocking their crypted block devices.

Reference: boo#1055834

modules.d/98dracut-systemd/dracut-cmdline-ask.service

index ce7deda59a3893f6933952918ee82b49499f5a23..b96c2aaf0d571c22e84b3b04e3d91bcf5b751c1e 100644 (file)
@@ -7,6 +7,8 @@ Description=dracut ask for additional cmdline parameters
 DefaultDependencies=no
 Before=dracut-cmdline.service
 After=systemd-journald.socket
+After=systemd-vconsole-setup.service
+Requires=systemd-vconsole-setup.service
 Wants=systemd-journald.socket
 ConditionPathExists=/usr/lib/initrd-release
 ConditionKernelCommandLine=|rd.cmdline=ask