diff options
Diffstat (limited to 'modules.d/slx-network/hooks/activate-stage4-dhcp.sh')
-rwxr-xr-x | modules.d/slx-network/hooks/activate-stage4-dhcp.sh | 31 |
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 + +: |