+++ /dev/null
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 10_support_ethdevice.dpatch by <mika@grml.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Support bootoptions ethdevice and ethdevice-timeout for
-## DP: specifying from which device you want to boot from and
-## DP: using which timeout (being 30 seconds if unconfigured), if
-## DP: ethdevice is not specified try to get a working network
-## DP: configuration for each existing network device.
-
-@DPATCH@
-diff -urNad live-initramfs-grml~/scripts/live live-initramfs-grml/scripts/live
---- live-initramfs-grml~/scripts/live 2009-12-29 22:00:53.858638095 +0100
-+++ live-initramfs-grml/scripts/live 2009-12-29 22:04:16.588656569 +0100
-@@ -66,6 +66,16 @@
- set -x
- ;;
-
-+ ethdevice=*)
-+ ETHDEVICE="${ARGUMENT#ethdevice=}"
-+ export ETHDEVICE
-+ ;;
-+
-+ ethdevice-timeout=*)
-+ ETHDEV_TIMEOUT="${ARGUMENT#ethdevice-timeout=}"
-+ export ETHDEV_TIMEOUT
-+ ;;
-+
- fetch=*)
- FETCH="${ARGUMENT#fetch=}"
- export FETCH
-@@ -739,7 +749,48 @@
- udevsettle
- fi
-
-- ipconfig ${DEVICE} | tee /netboot.config
-+ # if ethdevice was not specified on the kernel command line
-+ # make sure we try to get a working network configuration
-+ # for *every* present network device (except for loopback of course)
-+ if [ -z "$ETHDEVICE" ] ; then
-+ echo "If you want to boot from a specific device use bootoption ethdevice=..."
-+ for device in /sys/class/net/*; do
-+ dev=${device##*/} ;
-+ if [ "$dev" != "lo" ] ; then
-+ ETHDEVICE="$ETHDEVICE $dev"
-+ fi
-+ done
-+ fi
-+
-+ # split args of ethdevice=eth0,eth1 into "eth0 eth1"
-+ for device in $(echo $ETHDEVICE | sed 's/,/ /g') ; do
-+ devlist="$devlist $device"
-+ done
-+
-+ [ -n "$ETHDEV_TIMEOUT" ] || ETHDEV_TIMEOUT=15
-+ echo "Using timeout of $ETHDEV_TIMEOUT seconds for network configuration."
-+
-+ # this is tricky (and ugly) because ipconfig sometimes just hangs/runs into
-+ # an endless loop; iff 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
-+ fi
-+
-+ # if configuration of device worked we should have an assigned
-+ # IP address, iff so let's use the according 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
-+ fi
-+ done
-
- # source relevant ipconfig output
- OLDHOSTNAME=${HOSTNAME}
-@@ -748,7 +799,8 @@
- export HOSTNAME
-
- # Check if we have a network device at all
-- if ! ls /sys/class/net/eth0 > /dev/null 2>&1 && \
-+ if ! ls /sys/class/net/"$DEVICE" > /dev/null 2>&1 && \
-+ ! ls /sys/class/net/eth0 > /dev/null 2>&1 && \
- ! ls /sys/class/net/wlan0 > /dev/null 2>&1 && \
- ! ls /sys/class/net/ath0 > /dev/null 2>&1 && \
- ! ls /sys/class/net/ra0 > /dev/null 2>&1