summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAndreas Teuchert <ant+bdo@hsg-kl.de>2010-03-14 22:52:32 +0100
committerDaniel Baumann <daniel@debian.org>2011-03-09 17:48:07 +0100
commit4c8b0ac3778c7fd5d176d9e75b3ab068ad57dbcc (patch)
treeda882073385ff9cabb4acc5ca2603d133c629a71 /scripts
parent555eb329c9bd76c34ff4a7fc538ab97a9dc515ea (diff)
downloadlive-boot-4c8b0ac3778c7fd5d176d9e75b3ab068ad57dbcc.tar.gz
live-boot-4c8b0ac3778c7fd5d176d9e75b3ab068ad57dbcc.zip
Calling udevadm settle in scripts/init-premount/select_eth_device (Closes: #570100).
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/init-premount/select_eth_device73
1 files changed, 42 insertions, 31 deletions
diff --git a/scripts/init-premount/select_eth_device b/scripts/init-premount/select_eth_device
index 6ab8bfe..4323880 100755
--- a/scripts/init-premount/select_eth_device
+++ b/scripts/init-premount/select_eth_device
@@ -3,8 +3,6 @@
# Original script by Andreas Teuchert <ant+dl@hsg-kl.de>
# Modified by Frédéric Boiteux <fboiteux@calistel.com>
-
-
PREREQ="blacklist udev"
prereqs()
@@ -25,16 +23,28 @@ bootconf=$(egrep '^BOOT=' /conf/initramfs.conf | tail -1)
# can be superseded by command line (used by Debian-Live's netboot for example)
for ARGUMENT in $(cat /proc/cmdline); do
- case "${ARGUMENT}" in
- netboot=*)
- NETBOOT="${ARGUMENT#netboot=}"
- ;;
- esac
+ case "${ARGUMENT}" in
+ netboot=*)
+ NETBOOT="${ARGUMENT#netboot=}"
+ ;;
+ esac
done
if [ "$bootconf" != "BOOT=nfs" ] && [ "$NETBOOT" = "" ]; then
- # Not a net boot : nothing to do
- exit 0
+ # Not a net boot : nothing to do
+ exit 0
+fi
+
+# be sure this has been run (*should* be done by scripts/init-premount/udev)
+if [ -x /sbin/udevadm ]
+then
+ # lenny
+ udevadm trigger
+ udevadm settle
+else
+ # etch
+ udevtrigger
+ udevsettle
fi
# we want to do some basic IP
@@ -44,34 +54,35 @@ modprobe -q af_packet
l_interfaces=$(cd /sys/class/net/ && ls -d eth* 2>/dev/null)
if [ $(echo $l_interfaces | wc -w) -lt 2 ]; then
- # only one interface : no choice
- echo "DEVICE=$l_interfaces" >> /conf/param.conf
- exit 0
+ # only one interface : no choice
+ echo "DEVICE=$l_interfaces" >> /conf/param.conf
+ exit 0
fi
while true; do
- echo -n "Looking for a connected Ethernet interface ..."
+ echo -n "Looking for a connected Ethernet interface ..."
for interface in $l_interfaces; do
# ATTR{carrier} is not set if this is not done
- echo -n " $interface ?"
+ echo -n " $interface ?"
ipconfig -c none -d $interface -t 1 >/dev/null 2>&1
- done
- echo ''
+ done
+
+ echo ''
- for step in 1 2 3 4 5; do
- for interface in $l_interfaces; do
- carrier=$(cat /sys/class/net/$interface/carrier \
- 2>/dev/null)
- # link detected
- if [ "$carrier" = 1 ]; then
- echo " found $interface."
- # inform initrd's init script :
- echo "DEVICE=$interface" >> /conf/param.conf
- exit 0
- fi
- done
- # wait a bit
- sleep 1
- done
+ for step in 1 2 3 4 5; do
+ for interface in $l_interfaces; do
+ carrier=$(cat /sys/class/net/$interface/carrier \
+ 2>/dev/null)
+ # link detected
+ if [ "$carrier" = 1 ]; then
+ echo " found $interface."
+ # inform initrd's init script :
+ echo "DEVICE=$interface" >> /conf/param.conf
+ exit 0
+ fi
+ done
+ # wait a bit
+ sleep 1
+ done
done