From b458a270b7335b9a8b137ec0ac69b21a33bf58c3 Mon Sep 17 00:00:00 2001 From: maximilian attems Date: Mon, 23 Feb 2009 15:10:21 +0100 Subject: init: export ip root param for configure_networking() while at it cleanup the variable name that came due to legacy naming nfsopts in a very early initramfs-tools release. "The local-top/iscsi initramfs integration script uses the configure_networking function, which depends on the IPOPTS environmental variable set by the init script. However, this variable is not available, because it's not exported from init, and local-top/iscsi is not sourced but executed. Thus static IP configuration on the kernel command line is not communicated to the script." (closes: #516746) Reported-by: Ferenc Wagner --- init | 4 +++- scripts/functions | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/init b/init index ee006b5..a149c2b 100755 --- a/init +++ b/init @@ -35,6 +35,7 @@ export ROOT= export ROOTDELAY= export ROOTFLAGS= export ROOTFSTYPE= +export IP= export break= export init=/sbin/init export quiet=n @@ -117,7 +118,7 @@ for x in $(cat /proc/cmdline); do NFSROOT="${x#nfsroot=}" ;; ip=*) - IPOPTS="${x#ip=}" + IP="${x#ip=}" ;; boot=*) BOOT=${x#boot=} @@ -242,6 +243,7 @@ unset ROOTFLAGS unset ROOTFSTYPE unset ROOTDELAY unset ROOT +unset IP unset blacklist unset break unset noresume diff --git a/scripts/functions b/scripts/functions index f715e68..c024eeb 100644 --- a/scripts/functions +++ b/scripts/functions @@ -263,7 +263,7 @@ configure_networking() # support ip options see linux sources # Documentation/filesystems/nfsroot.txt - case ${IPOPTS} in + case ${IP} in none|off) # Do nothing ;; @@ -272,14 +272,14 @@ configure_networking() ipconfig -t 180 ${DEVICE} ;; dhcp|bootp|rarp|both) - ipconfig -t 180 -c ${IPOPTS} -d ${DEVICE} + ipconfig -t 180 -c ${IP} -d ${DEVICE} ;; *) - ipconfig -t 180 -d $IPOPTS + ipconfig -t 180 -d $IP # grab device entry from ip option - NEW_DEVICE=${IPOPTS#*:*:*:*:*:*} - if [ "${NEW_DEVICE}" != "${IPOPTS}" ]; then + NEW_DEVICE=${IP#*:*:*:*:*:*} + if [ "${NEW_DEVICE}" != "${IP}" ]; then NEW_DEVICE=${NEW_DEVICE%:*} else # wrong parse, possibly only a partial string -- cgit v1.2.3