summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2012-06-05 16:34:14 +0200
committerDaniel Baumann <daniel@debian.org>2012-06-05 19:35:56 +0200
commitd16c9d87a189d136231a48f6ccd1fd54d4debaf5 (patch)
tree54b1c9e7cc74997c14c17a1a9e2975e0df077bf9
parentdc6d1a0b26dae2b2197631bb4f94738a289e7b8a (diff)
downloadlive-boot-d16c9d87a189d136231a48f6ccd1fd54d4debaf5.tar.gz
live-boot-d16c9d87a189d136231a48f6ccd1fd54d4debaf5.zip
Converting select_eth_device initramfs-tools pre-mount script into regular live-boot script.
-rwxr-xr-xinitramfs-tools/scripts/live-premount/select_eth_device102
-rwxr-xr-xscripts/boot.sh5
-rwxr-xr-xscripts/boot/select-eth-device.sh87
3 files changed, 88 insertions, 106 deletions
diff --git a/initramfs-tools/scripts/live-premount/select_eth_device b/initramfs-tools/scripts/live-premount/select_eth_device
deleted file mode 100755
index fe86313..0000000
--- a/initramfs-tools/scripts/live-premount/select_eth_device
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/sh
-
-# Original script by Andreas Teuchert <ant+dl@hsg-kl.de>
-# Modified by Frédéric Boiteux <fboiteux@calistel.com>
-
-PREREQ="blacklist udev"
-
-prereqs()
-{
- echo "$PREREQ"
-}
-
-case $1 in
-# get pre-requisites
-prereqs)
- prereqs
- exit 0
- ;;
-esac
-
-# Boot type in initramfs's config
-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
-done
-
-if [ "$bootconf" != "BOOT=nfs" ] &&
- [ "$NETBOOT" = "" ] &&
- [ "$FETCH" = "" ] &&
- [ "$FTPFS" = "" ] &&
- [ "$HTTPFS" = "" ]
-then
- # Not a net boot : nothing to do
- exit 0
-fi
-
-# we want to do some basic IP
-modprobe -q af_packet
-
-# Available Ethernet interfaces ?
-l_interfaces=""
-echo "Waiting for ethernet card(s) up... If this fails, maybe the ethernet card is not supported by the kernel `uname -r`?"
-while [ -z "$l_interfaces" ]; do
- l_interfaces="$(cd /sys/class/net/ && ls -d eth* 2>/dev/null)"
-done
-
-if [ $(echo $l_interfaces | wc -w) -lt 2 ]; then
- # only one interface : no choice
- echo "DEVICE=$l_interfaces" >> /conf/param.conf
- exit 0
-fi
-
-# If user force to use specific device, write it
-for ARGUMENT in $(cat /proc/cmdline); do
- case "${ARGUMENT}" in
- live-netdev=*)
- NETDEV="${ARGUMENT#live-netdev=}"
- echo "DEVICE=$NETDEV" >> /conf/param.conf
- echo "Found live-netdev parameter in /proc/cmdline. Force to use network device $NETDEV."
- exit 0
- ;;
- esac
-done
-
-found_eth_dev=""
-while true; do
- 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 ?"
- ipconfig -c none -d $interface -t 1 >/dev/null 2>&1
- 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 "Connected $interface found"
- # inform initrd's init script :
- found_eth_dev="$found_eth_dev $interface"
- fi
- done
- if [ -n "$found_eth_dev" ]; then
- echo "DEVICE='$found_eth_dev'" >> /conf/param.conf
- exit 0
- else
- # wait a bit
- sleep 1
- fi
- done
-done
diff --git a/scripts/boot.sh b/scripts/boot.sh
index eeaa4dc..3211ed0 100755
--- a/scripts/boot.sh
+++ b/scripts/boot.sh
@@ -480,10 +480,7 @@ mountroot ()
;;
esac
- maybe_break live-premount
- log_begin_msg "Running /scripts/live-premount"
- run_scripts /scripts/live-premount
- log_end_msg
+ Select_eth_device
# Needed here too because some things (*cough* udev *cough*)
# changes the timeout
diff --git a/scripts/boot/select-eth-device.sh b/scripts/boot/select-eth-device.sh
new file mode 100755
index 0000000..924b8bc
--- /dev/null
+++ b/scripts/boot/select-eth-device.sh
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+Select_eth_device ()
+{
+ # Boot type in initramfs's config
+ 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
+ done
+
+ if [ "$bootconf" != "BOOT=nfs" ] &&
+ [ "$NETBOOT" = "" ] &&
+ [ "$FETCH" = "" ] &&
+ [ "$FTPFS" = "" ] &&
+ [ "$HTTPFS" = "" ]
+ then
+ # Not a net boot : nothing to do
+ return
+ fi
+
+ # we want to do some basic IP
+ modprobe -q af_packet
+
+ # Available Ethernet interfaces ?
+ l_interfaces=""
+ echo "Waiting for ethernet card(s) up... If this fails, maybe the ethernet card is not supported by the kernel `uname -r`?"
+ while [ -z "$l_interfaces" ]; do
+ l_interfaces="$(cd /sys/class/net/ && ls -d eth* 2>/dev/null)"
+ done
+
+ if [ $(echo $l_interfaces | wc -w) -lt 2 ]; then
+ # only one interface : no choice
+ echo "DEVICE=$l_interfaces" >> /conf/param.conf
+ return
+ fi
+
+ # If user force to use specific device, write it
+ for ARGUMENT in $(cat /proc/cmdline); do
+ case "${ARGUMENT}" in
+ live-netdev=*)
+ NETDEV="${ARGUMENT#live-netdev=}"
+ echo "DEVICE=$NETDEV" >> /conf/param.conf
+ echo "Found live-netdev parameter in /proc/cmdline. Force to use network device $NETDEV."
+ return
+ ;;
+ esac
+ done
+
+ found_eth_dev=""
+ while true; do
+ 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 ?"
+ ipconfig -c none -d $interface -t 1 >/dev/null 2>&1
+ 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 "Connected $interface found"
+ # inform initrd's init script :
+ found_eth_dev="$found_eth_dev $interface"
+ fi
+ done
+ if [ -n "$found_eth_dev" ]; then
+ echo "DEVICE='$found_eth_dev'" >> /conf/param.conf
+ return
+ else
+ # wait a bit
+ sleep 1
+ fi
+ done
+ done
+}