From: Beniamino Galvani Date: Mon, 27 Sep 2021 11:25:55 +0000 (+0200) Subject: fix(network-manager): disable tty output if the console is not usable X-Git-Tag: 056~89 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f6e6be245d0cda14d90a0442b688c8dca1410a2e;p=thirdparty%2Fdracut.git fix(network-manager): disable tty output if the console is not usable The network-manager module also writes logs to the console, so that it's easier to debug network-related boot issues. If systemd can't open the console, the service fails and network doesn't get configured. Add a check to disable tty output when the console is not present or not usable. https://github.com/coreos/fedora-coreos-tracker/issues/943 --- diff --git a/modules.d/35network-manager/nm-config.sh b/modules.d/35network-manager/nm-config.sh index 85f89cb03..2b13d0a79 100755 --- a/modules.d/35network-manager/nm-config.sh +++ b/modules.d/35network-manager/nm-config.sh @@ -18,12 +18,17 @@ if getargbool 0 rd.debug -d -y rdinitdebug -d -y rdnetdebug; then ) > /run/NetworkManager/conf.d/initrd-logging.conf if [ -n "$DRACUT_SYSTEMD" ]; then - mkdir -p /run/systemd/system/nm-initrd.service.d - cat << EOF > /run/systemd/system/nm-initrd.service.d/tty-output.conf + # Enable tty output if a usable console is found + # See https://github.com/coreos/fedora-coreos-tracker/issues/943 + # shellcheck disable=SC2217 + if [ -w /dev/console ] && (echo < /dev/console) > /dev/null 2> /dev/null; then + mkdir -p /run/systemd/system/nm-initrd.service.d + cat << EOF > /run/systemd/system/nm-initrd.service.d/tty-output.conf [Service] StandardOutput=tty EOF - systemctl --no-block daemon-reload + systemctl --no-block daemon-reload + fi fi fi diff --git a/modules.d/35network-manager/nm-initrd.service b/modules.d/35network-manager/nm-initrd.service index ad14e91ad..3e24f52a0 100644 --- a/modules.d/35network-manager/nm-initrd.service +++ b/modules.d/35network-manager/nm-initrd.service @@ -18,7 +18,7 @@ ExecReload=/usr/bin/busctl call org.freedesktop.NetworkManager /org/freedesktop/ ExecStart=/usr/sbin/NetworkManager --debug KillMode=process # The following gets changed to StandardOutput=tty by nm-config.sh -# when debug is enabled. +# when debug is enabled and a usable console is found. StandardOutput=null Environment=NM_CONFIG_ENABLE_TAG=initrd Restart=on-failure