tg3 network cards [SOLVED]
Ryan Steele
ryans at aweber.com
Thu Dec 11 19:57:01 CET 2008
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
}
More information about the linux-fai
mailing list