diff options
Diffstat (limited to 'modules.d/slx-network/module-setup.sh')
-rwxr-xr-x | modules.d/slx-network/module-setup.sh | 40 |
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" +} |