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