diff --git a/imagebuild/tinyipa/build_files/dhcp.sh b/imagebuild/tinyipa/build_files/dhcp.sh new file mode 100644 index 000000000..805ef345e --- /dev/null +++ b/imagebuild/tinyipa/build_files/dhcp.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# The DHCP portion is now separated out, in order to not slow the boot down +# only to wait for slow network cards +. /etc/init.d/tc-functions + +# This waits until all devices have registered +/sbin/udevadm settle --timeout=5 + +NETDEVICES="$(awk -F: '/eth.:|tr.:/{print $1}' /proc/net/dev 2>/dev/null)" +if [ -z $NETDEVICES ]; then + echo -e "\nWARNING: No network devices. Re-running udevadm --settle to wait for devices to register." + /sbin/udevadm settle --timeout=5 + NETDEVICES="$(awk -F: '/eth.:|tr.:/{print $1}' /proc/net/dev 2>/dev/null)" +fi +echo -e "\n$0 - /proc/net/dev - network devices: $NETDEVICES discoverd." +for DEVICE in $NETDEVICES; do + ifconfig $DEVICE | grep -q "inet addr" + if [ "$?" != 0 ]; then + echo -e "\nNetwork device $DEVICE detected, DHCP broadcasting for IP." + trap 2 3 11 + /sbin/udhcpc -b -i $DEVICE -x hostname:$(/bin/hostname) -p /var/run/udhcpc.$DEVICE.pid 2>&1 & + trap "" 2 3 11 + sleep 1 + fi +done + diff --git a/imagebuild/tinyipa/finalise-tinyipa.sh b/imagebuild/tinyipa/finalise-tinyipa.sh index ed24ba4b2..4be3eccf0 100755 --- a/imagebuild/tinyipa/finalise-tinyipa.sh +++ b/imagebuild/tinyipa/finalise-tinyipa.sh @@ -147,6 +147,9 @@ sudo cp "$WORKDIR/build_files/bootlocal.sh" "$FINALDIR/opt/." # Copy udhcpc.script to opt sudo cp "$WORKDIR/udhcpc.script" "$FINALDIR/opt/" +# Replace etc/init.d/dhcp.sh +sudo cp "$WORKDIR/build_files/dhcp.sh" "$FINALDIR/etc/init.d/dhcp.sh" + # Disable ZSwap sudo sed -i '/# Main/a NOZSWAP=1' "$FINALDIR/etc/init.d/tc-config" # sudo cp $WORKDIR/build_files/tc-config $FINALDIR/etc/init.d/tc-config