Ralf Utermann wrote:
Ryan Steele wrote:
[...]
638: # make /scripts/live use configure_networking just like
/scripts/nfs does
639: #ipconfig ${DEVICE} | tee /netboot.config
640: configure_networking
And this change to /scripts/functions, at the bottom of the
configure_networking function:
356: # If we don't know the device ahead of time, we need to check
net-*.conf
357: # source ipconfig output
358: #if [ -n "${DEVICE}" ]; then
359: # # source specific bootdevice
360: # . /tmp/net-${DEVICE}.conf
361: #else
362: # source any interface as not exactly specified
363: . /tmp/net-*.conf
364: #fi
these changes did not work for me on a lenny system :( Still
hangs trying eth0 and I don't see it trying any other
interface. So I go back to my udev rule for renaming ...
Ah, I (think I) forgot to tell you that I had to put 'ip=all' in the
pxelinux.cfg, otherwise you either hang or get kernel panics.
Basically, when we PXE boot with the pxelinux.cfg file set up by
fai-chboot using ip=dhcp, we end up using the /scripts/live shell
script, which uses the 'ipconfig' binary. But, we need to tell ipconfig
to time out for an interface for which it can't find a DHCP server,
which is what configure_networking does using 'ipconfig -t'. I'm not
the configure_networking, which my lenny/fai3.2.14 puts into the
generated initrd has no -t in any ipconfig call.
Well, what's stopping you from adding it? :)
sure why /scripts/live doesn't use the configure_networking script by
default, or if this is even the right thing to do, but it works for me,
no matter which interface I have cables in or which interfaces can
contact a DHCP server via ipconfig. If anybody has any comments, please
feel free to voice them.
Ryan, can you send me your scripts/functions file?
Sure, I'll post it for all to see, hopefully the list formatting won't
butcher the config - I use a 30" monitor, so I don't restrict my config
files to 80 chars in width. That being said, the only function I hacked
in there was configure_networking, so here it is:
configure_networking()
{
# RYANS 2008-12-05 - add debugging output
echo -e "\n\nInside configure_networking\n\n" > /dev/console 2>&1
# networking already configured thus bail out
[ -n "${DEVICE}" ] && [ -e /tmp/net-"${DEVICE}".conf ] && return 0
# RYANS 2008-12-05 - set timeout to 30
# support ip options see linux sources Documentation/nfsroot.txt
case ${IPOPTS} in
none|off)
# Do nothing
;;
""|on|any)
# Bring up device
ipconfig -t 30 ${DEVICE}
;;
dhcp|bootp|rarp|both)
ipconfig -t 30 -c ${IPOPTS} -d ${DEVICE}
;;
*)
ipconfig -t 30 -d $IPOPTS
# grab device entry from ip option
NEW_DEVICE=${IPOPTS#*:*:*:*:*:*}
if [ "${NEW_DEVICE}" != "${IPOPTS}" ]; then
NEW_DEVICE=${NEW_DEVICE%:*}
else
# wrong parse, possibly only a partial string
NEW_DEVICE=
fi
if [ -n "${NEW_DEVICE}" ]; then
DEVICE="${NEW_DEVICE}"
fi
;;
esac
# RYANS 2008-12-05 - just source net-*.conf and be done with it
# source ipconfig output
#if [ -n "${DEVICE}" ]; then
# # source specific bootdevice
# . /tmp/net-${DEVICE}.conf
#else
# source any interface as not exaclty specified
. /tmp/net-*.conf
#fi
}