[OE-core] [PATCH] initramfs-framework: fix boothang when console=null

eichest at gmail.com eichest at gmail.com
Fri Mar 13 11:09:07 UTC 2020


From: Stefan Eichenberger <stefan.eichenberger at toradex.com>

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 at toradex.com>
---
 meta/recipes-core/initrdscripts/initramfs-framework/udev | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/udev b/meta/recipes-core/initrdscripts/initramfs-framework/udev
index 87551ff4a9..4898b89246 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework/udev
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/udev
@@ -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
-- 
2.17.1



More information about the Openembedded-core mailing list