summaryrefslogtreecommitdiffstats
path: root/modules.d/slx-network/module-setup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/slx-network/module-setup.sh')
-rwxr-xr-xmodules.d/slx-network/module-setup.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/modules.d/slx-network/module-setup.sh b/modules.d/slx-network/module-setup.sh
new file mode 100755
index 00000000..df95bfee
--- /dev/null
+++ b/modules.d/slx-network/module-setup.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+check() {
+ [[ $mount_needs ]] && return 1
+
+ if dracut_module_included "network" || dracut_module_included "systemd-networkd" ; then
+ derror "This module conflicts with 'network' and 'systemd-networkd'!"
+ return 1
+ fi
+ return 255
+}
+
+# called by dracut
+depends() {
+ echo "busybox kernel-network-modules"
+}
+
+# called by dracut
+install() {
+ # need initqueue to get a clean network start
+ dracut_need_initqueue
+
+ # install basic dns libs
+ _arch=$(uname -m)
+ inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*"
+
+ # stage3 network scripts
+ inst "${moddir}/scripts/setup-bootif-network.stage3" "/usr/local/bin/setup-bootif-network"
+ inst "${moddir}/scripts/udhcpc-trigger.stage3" "/usr/local/bin/udhcpc-trigger"
+
+ # files for stage4, park them in /opt/openslx
+ gcc -o "${initdir}/usr/local/bin/rdns" "${moddir}/rdns.c"
+ inst "${moddir}/scripts/setup-bootif-network.stage4" "/opt/openslx/scripts/setup-bootif-network.stage4"
+ inst "${moddir}/scripts/udhcpc-trigger.stage4" "/opt/openslx/scripts/udhcpc-trigger.stage4"
+ inst "${moddir}/services/udhcpc-bootif.service" "/opt/openslx/services/udhcpc-bootif.service"
+
+ # hooks
+ inst_hook cmdline 10 "${moddir}/hooks/parse-ipxe-network-kcl.sh"
+ inst_hook pre-pivot 50 "${moddir}/hooks/copy-network-files.sh"
+ inst_hook pre-pivot 60 "${moddir}/hooks/activate-bootif-dhcp.sh"
+}