diff options
author | Simon Rettberg | 2014-02-17 11:15:22 +0100 |
---|---|---|
committer | Simon Rettberg | 2014-02-17 11:15:22 +0100 |
commit | 658b6e8a3de19642afbd6e381a7b9776da227b7e (patch) | |
tree | 3a09885c2e10c4d88c1710d5d360792b023a100e /remote | |
parent | Forgot to actually request domain search option (-O search) (diff) | |
download | tm-scripts-658b6e8a3de19642afbd6e381a7b9776da227b7e.tar.gz tm-scripts-658b6e8a3de19642afbd6e381a7b9776da227b7e.tar.xz tm-scripts-658b6e8a3de19642afbd6e381a7b9776da227b7e.zip |
[rfs-stage31] Some more tweaks to the never ending "setup network" story
Diffstat (limited to 'remote')
4 files changed, 12 insertions, 5 deletions
diff --git a/remote/rootfs/rootfs-stage31/data/inc/network.functions b/remote/rootfs/rootfs-stage31/data/inc/network.functions index 2b365059..641f4f55 100644 --- a/remote/rootfs/rootfs-stage31/data/inc/network.functions +++ b/remote/rootfs/rootfs-stage31/data/inc/network.functions @@ -1,12 +1,15 @@ wait_for_iface() { - DEVICE=$1 + local DEVICE=$1 + local TIMEOUT=10 echo -n "Waiting for interface $DEVICE: " # Some systems don't have operstate. Seems to be hardware dependent - [ ! -e "/sys/class/net/${DEVICE}/operstate" ] && usleep 1000 + [ ! -e "/sys/class/net/${DEVICE}/operstate" ] && usleep 10000 if [ -e "/sys/class/net/${DEVICE}/operstate" ]; then while true; do # check linkstate [ "x$(cat "/sys/class/net/${DEVICE}/operstate")" == "xup" ] && break + TIMEOUT=$(( $TIMEOUT - 1 )) # don't wait forever, the pcnet iface of vmware will never be "up" although it's working + [ "$TIMEOUT" -le 0 ] && break # else echo -n "." usleep 500000 @@ -15,5 +18,6 @@ wait_for_iface() { # we really don't have a operstate .. then just wait a sec and hope for the best. sleep 1 fi - echo "." + echo ".$(cat "/sys/class/net/${DEVICE}/operstate" 2>/dev/null)" } +true diff --git a/remote/rootfs/rootfs-stage31/data/inc/setup_network b/remote/rootfs/rootfs-stage31/data/inc/setup_network index 281bf8b9..2ba02f84 100755 --- a/remote/rootfs/rootfs-stage31/data/inc/setup_network +++ b/remote/rootfs/rootfs-stage31/data/inc/setup_network @@ -88,4 +88,4 @@ echo "GATEWAY=$GATEWAY" >> /run/network.conf echo "BRIDGE=$BRIDGE" >> /run/network.conf udhcpc $PARAM -O domain -O nissrv -O nisdomain -O wpad -O search -t 5 -T 2 -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE" - +# udhcpc return value will be return value of this script diff --git a/remote/rootfs/rootfs-stage31/data/inc/setup_network_retry b/remote/rootfs/rootfs-stage31/data/inc/setup_network_retry index b84fb3c5..9239d0d7 100755 --- a/remote/rootfs/rootfs-stage31/data/inc/setup_network_retry +++ b/remote/rootfs/rootfs-stage31/data/inc/setup_network_retry @@ -16,7 +16,7 @@ for i in 1 2 3 4 5 6 7 8; do wait_for_iface "$IFACE" - udhcpc $PARAM -O domain -O nissrv -O nisdomain -O wpad -t 5 -T 2 -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE" + udhcpc $PARAM -O domain -O nissrv -O nisdomain -O wpad -O search -t 5 -T 2 -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE" if [ $? -eq 0 ]; then echo "Finally fixed IP config. Continue boot." diff --git a/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger b/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger index 3d6d5725..d4249e29 100755 --- a/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger +++ b/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger @@ -17,6 +17,9 @@ if [ -s "/run/firstip" ]; then if [ "x${OLD}" != "x${ip}" ]; then #...it's a different one, reconfigure... echo "..reconfiguring ${OLD} to ${ip}.." + # remove default route and let it be added again below, as it might get lost when changing the primary address on the interface + ip route del default 2>/dev/null + rm -f -- "/run/firstgw" ip addr del "${OLD}" dev "${interface}" 2>/dev/null ip addr add "${ip}/$(ipcalc -s -p "${ip}" "${subnet}" | sed s/.*=//)" dev "${interface}" fi |