summaryrefslogtreecommitdiffstats
path: root/remote
diff options
context:
space:
mode:
authorSimon Rettberg2014-02-17 11:15:22 +0100
committerSimon Rettberg2014-02-17 11:15:22 +0100
commit658b6e8a3de19642afbd6e381a7b9776da227b7e (patch)
tree3a09885c2e10c4d88c1710d5d360792b023a100e /remote
parentForgot to actually request domain search option (-O search) (diff)
downloadtm-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')
-rw-r--r--remote/rootfs/rootfs-stage31/data/inc/network.functions10
-rwxr-xr-xremote/rootfs/rootfs-stage31/data/inc/setup_network2
-rwxr-xr-xremote/rootfs/rootfs-stage31/data/inc/setup_network_retry2
-rwxr-xr-xremote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger3
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