log to boot.log, not live-boot.log
[live-boot-grml.git] / debian / patches / 27_support_static_ip.patch
old mode 100755 (executable)
new mode 100644 (file)
index f08e133..d57ac8e
@@ -6,43 +6,23 @@
 
 @DPATCH@
 
-diff --git a/scripts/live b/scripts/live
-index 5681362..bf20cce 100755
---- a/scripts/live
-+++ b/scripts/live
-@@ -91,9 +91,8 @@ Arguments ()
-                               ;;
-
-                       ethdevice=*)
--                              DEVICE="${ARGUMENT#ethdevice=}"
--                              ETHDEVICE="${DEVICE}"
--                              export DEVICE ETHDEVICE
-+                              ETHDEVICE="${ARGUMENT#ethdevice=}"
-+                              export ETHDEVICE
-                               ;;
-
-                       ethdevice-timeout=*)
-@@ -150,13 +149,9 @@ Arguments ()
-                               ;;
-
-                       ip=*)
--                              STATICIP="${ARGUMENT#ip=}"
--
--                              if [ -z "${STATICIP}" ]
--                              then
--                                      STATICIP="frommedia"
--                              fi
--
-+                              # copy complete ip=args into staticip, and
-+                              # keep multiple uses.
-+                              STATICIP="${STATICIP} ${ARGUMENT}"
-                               export STATICIP
-                               ;;
-
-@@ -598,6 +593,24 @@ copy_live_to ()
-       return 0
+Index: live-boot-grml/scripts/boot/9990-networking.sh
+===================================================================
+--- live-boot-grml.orig/scripts/boot/9990-networking.sh        2013-08-15 08:04:49.299973806 +0200
++++ live-boot-grml/scripts/boot/9990-networking.sh     2013-08-15 08:29:13.959972623 +0200
+@@ -44,7 +44,7 @@
+                       if [ "$bootif_mac" = "$current_mac" ]
+                       then
+-                              DEVICE=${device##*/}
++                              ETHDEVICE="${device##*/},$ETHDEVICE" # use ethdevice
+                               break
+                       fi
+               fi
+@@ -53,6 +53,24 @@
  }
-
 +get_ipconfig_para()
 +{
 +      if [ $# != 1 ] ; then
@@ -63,13 +43,12 @@ index 5681362..bf20cce 100755
 +
  do_netsetup ()
  {
-       modprobe -q af_packet # For DHCP
-@@ -608,9 +621,19 @@ do_netsetup ()
-       [ -n "$ETHDEV_TIMEOUT" ] || ETHDEV_TIMEOUT=15
-       echo "Using timeout of $ETHDEV_TIMEOUT seconds for network configuration."
-
--      if [ -z "${NETBOOT}" ] && [ -z "${FETCH}" ] && \
--         [ -z "${HTTPFS}" ] && [ -z "${FTPFS}" ]
+       modprobe -q af_packet # For DHCP
+@@ -63,8 +81,20 @@
+       [ -n "$ETHDEV_TIMEOUT" ] || ETHDEV_TIMEOUT=15
+       echo "Using timeout of $ETHDEV_TIMEOUT seconds for network configuration."
+-      if [ -z "${NETBOOT}" ] && [ -z "${FETCH}" ] && [ -z "${HTTPFS}" ] && [ -z "${FTPFS}" ]
 -      then
 +      # Our modus operandi for getting a working network setup is this:
 +      # * If ip=* is set, pass that to ipconfig and be done
@@ -84,82 +63,114 @@ index 5681362..bf20cce 100755
 +      for device in ${ALLDEVICES}; do
 +              ipconfig -c none -d $device -t 1 2>/dev/null >/dev/null
 +      done
-
-
-       # support for Syslinux IPAPPEND parameter
-@@ -653,7 +676,7 @@ do_netsetup ()
-
-                               if [ "$bootif_mac" = "$current_mac" ]
-                               then
--                                      DEVICE=${device##*/}
-+                                      ETHDEVICE="${device##*/},$ETHDEVICE" # use ethdevice
-                                       break
-                               fi
-                       fi
-@@ -665,12 +688,7 @@ do_netsetup ()
-       # 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"
++
+               # See if we can select the device from BOOTIF
+               Device_from_bootif
+@@ -74,14 +104,7 @@
+               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
++                      ETHDEVICE="$ALLDEVICES"
+               fi
+               # split args of ethdevice=eth0,eth1 into "eth0 eth1"
+@@ -90,42 +113,29 @@
+                       devlist="$devlist $device"
+               done
+-              # 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 /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
 -                      fi
 -              done
-+        ETHDEVICE="$ALLDEVICES"
-       fi
-
-       # split args of ethdevice=eth0,eth1 into "eth0 eth1"
-@@ -678,38 +696,27 @@ do_netsetup ()
-               devlist="$devlist $device"
-       done
-
--      # 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
-+      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, 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
-+              IPV4ADDR="0.0.0.0"
-+              . /tmp/net-${device}.conf
-+              if [ "${IPV4ADDR}" != "0.0.0.0" ]; then
-+                      export DEVICE="$dev $DEVICE"
-+                      # break  # exit loop as we just use the irst
-               fi
--      done
-
 -      else
 -              for interface in ${DEVICE}; do
 -                      ipconfig -t "$ETHDEV_TIMEOUT" ${interface} | tee /netboot-${interface}.config
--                      [ -e /tmp/net-${interface}.conf ] && . /tmp/net-${interface}.conf
+-
+-                      [ -e /run/net-${interface}.conf ] && . /run/net-${interface}.conf
 -                      if [ "$IPV4ADDR" != "0.0.0.0" ]
 -                      then
 -                              break
--                      fi
--              done
++                      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
 -      fi
-+      done
 +      unset devlist
-
-       for interface in ${DEVICE}; do
-               # source relevant ipconfig output
+       for interface in ${DEVICE}
+       do
+Index: live-boot-grml/scripts/boot/9990-cmdline-old
+===================================================================
+--- live-boot-grml.orig/scripts/boot/9990-cmdline-old  2013-08-15 08:04:49.299973806 +0200
++++ live-boot-grml/scripts/boot/9990-cmdline-old       2013-08-15 08:04:49.295973806 +0200
+@@ -51,9 +51,8 @@
+                               ;;
+                       ethdevice=*)
+-                              DEVICE="${_PARAMETER#ethdevice=}"
+-                              ETHDEVICE="${DEVICE}"
+-                              export DEVICE ETHDEVICE
++                              ETHDEVICE="${_PARAMETER#ethdevice=}"
++                              export ETHDEVICE
+                               ;;
+                       ethdevice-timeout=*)
+@@ -110,13 +109,9 @@
+                               ;;
+                       ip=*)
+-                              STATICIP="${_PARAMETER#ip=}"
+-
+-                              if [ -z "${STATICIP}" ]
+-                              then
+-                                      STATICIP="frommedia"
+-                              fi
+-
++                              # copy complete ip=args into staticip, and
++                              # keep multiple uses.
++                              STATICIP="${STATICIP} ${_PARAMETER}"
+                               export STATICIP
+                               ;;