]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
systemd-networkd: add experimental systemd-networkd support
authorHarald Hoyer <harald@redhat.com>
Tue, 24 Mar 2015 14:57:50 +0000 (15:57 +0100)
committerHarald Hoyer <harald@redhat.com>
Tue, 24 Mar 2015 15:03:47 +0000 (16:03 +0100)
modules.d/02systemd-networkd/module-setup.sh [new file with mode: 0755]

diff --git a/modules.d/02systemd-networkd/module-setup.sh b/modules.d/02systemd-networkd/module-setup.sh
new file mode 100755 (executable)
index 0000000..df4661f
--- /dev/null
@@ -0,0 +1,71 @@
+#!/bin/bash
+
+# called by dracut
+check() {
+    [[ $mount_needs ]] && return 1
+
+    if ! dracut_module_included "systemd"; then
+        derror "dracut-systemd needs systemd in the initramfs"
+        return 1
+    fi
+
+    return 255
+}
+
+# called by dracut
+depends() {
+    echo "systemd kernel-network-modules"
+}
+
+installkernel() {
+    return 0
+}
+
+# called by dracut
+install() {
+    inst_multiple -o \
+        $systemdutildir/systemd-networkd \
+        $systemdutildir/systemd-networkd-wait-online \
+        $systemdsystemunitdir/systemd-networkd-wait-online.service \
+        $systemdsystemunitdir/systemd-networkd.service \
+        $systemdsystemunitdir/systemd-networkd.socket \
+        $systemdutildir/network/99-default.link \
+        networkctl ip
+
+        #hostnamectl timedatectl
+        # $systemdutildir/systemd-timesyncd \
+        # $systemdutildir/systemd-timedated \
+        # $systemdutildir/systemd-hostnamed \
+        # $systemdutildir/systemd-resolvd \
+        # $systemdutildir/systemd-resolve-host \
+        # $systemdsystemunitdir/systemd-resolved.service \
+        # $systemdsystemunitdir/systemd-hostnamed.service \
+        # $systemdsystemunitdir/systemd-timesyncd.service \
+        # $systemdsystemunitdir/systemd-timedated.service \
+        # $systemdsystemunitdir/time-sync.target \
+        # /etc/systemd/resolved.conf \
+
+
+    # inst_dir /var/lib/systemd/clock
+
+    egrep '^systemd-network:' /etc/passwd 2>/dev/null >> "$initdir/etc/passwd"
+    egrep '^systemd-network:' /etc/group >> "$initdir/etc/group"
+    # egrep '^systemd-timesync:' /etc/passwd 2>/dev/null >> "$initdir/etc/passwd"
+    # egrep '^systemd-timesync:' /etc/group >> "$initdir/etc/group"
+
+    _arch=$(uname -m)
+    inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \
+                     {"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*" \
+                     {"tls/$_arch/",tls/,"$_arch/",}"libnss_myhostname.so.*" \
+                     {"tls/$_arch/",tls/,"$_arch/",}"libnss_resolve.so.*"
+
+    for i in \
+        systemd-networkd-wait-online.service \
+            systemd-networkd.service \
+            systemd-networkd.socket
+#            systemd-timesyncd.service
+    do
+        systemctl --root "$initdir" enable "$i"
+    done
+}
+