From: Beniamino Galvani Date: Thu, 7 May 2020 05:48:12 +0000 (+0200) Subject: network-manager: set kernel hostname from the command line X-Git-Tag: 051~158 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb770a4a207b2e9e3080068c1df22b69ed44d4b5;p=thirdparty%2Fdracut.git network-manager: set kernel hostname from the command line Since commit ff70adf873ef ("initrd: save hostname to a file in /run"), the initrd generator of NetworkManager parses the hostname from 'ip=' options of the kernel command line and writes it to /run/NetworkManager/initrd/hostname. When that file exists, set the kernel hostname. In presence of multiple hostnames in the command line, the last one wins. Hostnames from command line always have precedence over ones received through DHCP. This is a bit different from the legacy network module that gives higher precedence to the hostname (from DHCP or command line) of the last interface that is brought up, which depends on the udev order. --- diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh index fc5280a13..61752384e 100755 --- a/modules.d/35network-manager/nm-run.sh +++ b/modules.d/35network-manager/nm-run.sh @@ -10,6 +10,10 @@ for i in /usr/lib/NetworkManager/system-connections/* \ else /usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon fi + + if [ -s /run/NetworkManager/initrd/hostname ]; then + cat /run/NetworkManager/initrd/hostname > /proc/sys/kernel/hostname + fi break done