X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Finit-premount%2Fselect_eth_device;h=432388083a2480018b3621aa4d46028d12c60715;hb=80b0696ab1edb5875e2cc0b6e6558530f3bab6b4;hp=6ab8bfe40ad0c7d67fc5c89d6d38335d8d729a30;hpb=b674369056a0aef03864d89d23ed9d664d0bf41b;p=live-boot-grml.git 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 # Modified by Frédéric Boiteux - - 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