]> code.ossystems Code Review - openembedded-core.git/commitdiff
initramfs-framework: fix boothang when console=null
authorStefan Eichenberger <stefan.eichenberger@toradex.com>
Fri, 13 Mar 2020 11:09:07 +0000 (12:09 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 13 Mar 2020 13:35:58 +0000 (13:35 +0000)
If console=null systemd-udevd throws an assertion which prevents the
system from booting. This patch redirects stdin, stdout and stderr to
/dev/null in case that the console can't be opened so that udevd still
boots.

A systemd issue was reported here. However, they will not fix this
specific use-case:
https://github.com/systemd/systemd/issues/13332

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/initrdscripts/initramfs-framework/udev

index 87551ff4a9bc618b1567df63eab1d44ff0da0587..4898b89246346815d295b5b1c1a0182159e0ff0f 100644 (file)
@@ -41,6 +41,9 @@ udev_run() {
        mkdir -p /run
        mkdir -p /var/run
 
+       # Workaround if console=null, systemd-udevd needs valid stdin, stdout and stderr to work
+       sh -c "exec 4< /dev/console" || { exec 0> /dev/null; exec 1> /dev/null; exec 2> /dev/null; }
+
        $_UDEV_DAEMON --daemon
        udevadm trigger --action=add
        udevadm settle