+- # this is tricky (and ugly) because ipconfig sometimes just hangs/runs into
+- # an endless loop; if execution fails give it two further tries, that's
+- # why we use '$devlist $devlist $devlist' for the other for loop
+- for dev in $devlist $devlist $devlist
+- do
+- echo "Executing ipconfig -t $ETHDEV_TIMEOUT $dev"
+- ipconfig -t "$ETHDEV_TIMEOUT" $dev | tee -a /netboot.config &
+- jobid=$!
+- sleep "$ETHDEV_TIMEOUT" ; sleep 1
+- if [ -r /proc/"$jobid"/status ]
+- then
+- echo "Killing job $jobid for device $dev as ipconfig ran into recursion..."
+- kill -9 $jobid
++ for dev in $devlist ; do
++ param="$(get_ipconfig_para $dev)"
++ if [ -n "$NODHCP" ] && [ "$param" = "$dev" ] ; then
++ echo "Ignoring network device $dev due to nodhcp." | tee -a /live-boot.log
++ continue
+ fi
++ echo "Executing ipconfig -t $ETHDEV_TIMEOUT $param"
++ ipconfig -t "$ETHDEV_TIMEOUT" "$param" | tee -a /netboot.config
+
+ # if configuration of device worked we should have an assigned
+ # IP address, if so let's use the device as $DEVICE for later usage.
+ # simple and primitive approach which seems to work fine
+- if ifconfig $dev | grep -q 'inet.*addr:'
+- then
+- export DEVICE="$dev"
+- break
++ IPV4ADDR="0.0.0.0"
++ if [ -e "/run/net-${device}.conf" ]; then
++ . /run/net-${device}.conf
++ fi
++ if [ "${IPV4ADDR}" != "0.0.0.0" ]; then
++ export DEVICE="$dev $DEVICE"
++ # break # exit loop as we just use the irst
+ fi
+ done