summaryrefslogtreecommitdiffstats
path: root/modules.d/slx-network/hooks/activate-stage4-dhcp.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/slx-network/hooks/activate-stage4-dhcp.sh')
-rwxr-xr-xmodules.d/slx-network/hooks/activate-stage4-dhcp.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/modules.d/slx-network/hooks/activate-stage4-dhcp.sh b/modules.d/slx-network/hooks/activate-stage4-dhcp.sh
new file mode 100755
index 00000000..8ac1e7b0
--- /dev/null
+++ b/modules.d/slx-network/hooks/activate-stage4-dhcp.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# This script enables the udhcpc-based DHCP service for stage4,
+# unless specifically disabled by 'SLX_STAGE4_DHCP="no"',
+# or the OpenSLX udhcpc service/script exists in stage4.
+
+. /etc/openslx
+
+if [ "$SLX_STAGE4_DHCP" != "no" ] \
+ && ! [ -e "${NEWROOT}/opt/openslx/scripts/udhcpc-openslx" ]; then
+ mkdir -p "${NEWROOT}/opt/openslx/scripts"
+ for script in s3-setup-bootif-network udhcpc-trigger; do
+ if [ -e "${NEWROOT}/opt/openslx/scripts/${script}" ]; then
+ mv "${NEWROOT}/opt/openslx/scripts/${script}"{,.stage4}
+ fi
+ cp -f "/opt/openslx/scripts/${script}.stage4" \
+ "${NEWROOT}/opt/openslx/scripts/${script}"
+ done
+
+ # copy udhcpc@ systemd service, backup existing ones for debugging
+ mkdir -p "${NEWROOT}/etc/systemd/system"
+ cp -f "/opt/openslx/services/udhcpc-bootif.service" "${NEWROOT}/etc/systemd/system"
+
+ # it requires /run/network
+ echo 'd /run/network 0755 root root' > "${NEWROOT}/etc/tmpfiles.d/network.conf"
+
+ # activate it for the bridge or the physical interface if not bridged
+ systemctl --quiet --root "$NEWROOT" enable "udhcpc-bootif"
+fi
+
+: