ºìÁªLinuxÃÅ»§
Linux°ïÖú

ÔÚLinuxÉϰ²×°Broadcom NetXtreme BCM5704 Gigabit Íø¿¨

·¢²¼Ê±¼ä:2008-03-17 15:48:07À´Ô´:ºìÁª×÷Õß:redfans
¡¡¡¡·þÎñÆ÷£ºIBM X3850

¡¡¡¡OS£ºRedhat Enterprise Linux 4.0 32-bit Update 1

¡¡¡¡°²×°ÍêOS£¬·¢ÏÖÍø¿¨ÎÞ·¨Õý³£¹¤×÷£¬Ã¿´Î¼¤»îÍø¿¨ºó£¬Êó±êÖ¸ÕëÒÆ¶¯±äµÃÒì³£»ºÂý£¬¶øÇÒ¼üÅ̵ÄÊäÈëÒ²±äµÃ»ºÂý¡£Ö±½Ó»³ÒÉÊÇÍø¿¨Çý¶¯µÄÎÊÌ⣬ÓÚÊÇ£¬´ÓËæ»ú¹âÅÌÖÐÕÒµ½ÁËÍø¿¨Çý¶¯£¬·¢ÏÖÖ»ÊÇÌṩÁË.cºÍ.hµÄCÓïÑÔÔ´´úÂ룬ºÜÏÔÈ»£¬ÐèÒªÖØÐ±àÒëºóÔÙ°²×°£¬µ±È»Ò²¿ÉÒÔ´ÓBroadcom¹Ù·½ÍøÕ¾ÉÏÏÂÔØ×îеÄÇý¶¯³ÌÐò¡£ÓÚÊÇ£¬°´ÕÕÇý¶¯³ÌÐòÖÐÌṩµÄREADME.txtÎļþ¿ªÊ¼°²×°¡£ÔÚ°²×°¹ý³ÌÖÐÓöµ½Á˺ܶàÎÊÌ⣬ÏÖÔÚ½«½â¾öºóµÄÎÊÌâ×ܽáÈçÏ£º

¡¡¡¡1.Ò»¶¨Òª°²×°rpm-build-4.3.3-9_nonptl.i386.rpm¡£

¡¡¡¡2.Ò»¶¨ÐèÒª°²×°LinuxÔ´´úÂ룺
¡¡¡¡Ê¹ÓÃuname -r²é¿´Äں˰汾£¬Èç¹ûÊǰ汾ÊÇ2.6.9-11£¬ÄÇô°²×°kernel-devel-2.6.9-11.EL.i686.rpm°ü£¬Èç¹ûÊÇ2.6.9-11.ELsmp£¬ÄÇô°²×°kernel-smp-devel-2.6.9-11.EL.i686.rpm

¡¡¡¡3.ÔÚ×îºóinsmod tg3.ko ²½ÖèµÄʱºò£¬Èç¹û±¨ÎļþÒѾ­´æÔڵĴíÎó£¬ÄÇôÏÈʹÓÃrmmod tg3.ko½«Ä£¿é´ÓÄÚºËÖÐÒÆ³ý£¬ÔÚʹÓÃinsmod tg3.ko°²×°tg3Ä£¿éµ½Äںˡ£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. redfans ÓÚ 2008-03-17 15:48:43·¢±í:

    ¸½£ºREADME.txtÎļþÄÚÈÝ

    ÒýÓÃ:
    Installation Notes
    Broadcom tg3 Linux Driver
    Version 3.81c
    09/18/2007

    Broadcom Corporation
    5300 California Avenue
    Irvine, California 92617

    Copyright (c) 2004, 2005, 2006, 2007 Broadcom Corporation
    All rights reserved


    Table of Contents
    =================

    Introduction
    Limitations
    Packaging
    Installing Source RPM Package
    Building Driver From TAR File
    Driver Settings
    Driver Defaults
    Unloading and Removing Driver
    Driver Messages


    Introduction
    ============

    This file describes the tg3 Linux driver for the Broadcom NetXtreme
    10/100/1000 Mbps PCI/PCI-X/PCI Express Ethernet Network Controllers.
    The latest driver is in the latest 2.6 Linux kernel. It can also be
    downloaded from http://www.broadcom.com as a source package, but is
    generally not necessary to do so if you are using the latest 2.6
    upstream kernel from http://www.kernel.org or one of the latest
    vendor kernels from Red Hat, SuSE, or others.

    The tg3 driver from the Broadcom package is almost identical to the
    tg3 driver in the latest 2.6 upstream Linux kernel. It includes some
    additional kernel compatible code to allow it to compile on older 2.6
    and some 2.4 kernels. The version number is also similar but generally
    has a one letter suffix at the end, (e.g. 3.55b) to distinguish it from
    the in-kernel tg3 driver.

    The next few sections on packaging, compiling, and installation apply
    mostly to the Broadcom driver package only.


    Limitations
    ===========

    The current version of the driver has been tested on 2.4.x kernels starting
    from 2.4.24 and all 2.6.x kernels. The driver may not compile on kernels
    older than 2.4.24. Testing is concentrated on i386 and x86_64 architectures.
    Only limited testing has been done on some other architectures such as
    powerpc and sparc64.

    Minor changes to some source files and Makefile may be needed on some
    kernels.


    Packaging
    =========

    To replace an older previously installed or in-kernel tg3 driver, follow
    the instructions below.

    The driver package from http://www.broadcom.com is released in two packaging
    formats: source RPM and compressed tar formats. The file names for the two
    packages are tg3-.src.rpm and tg3-.tar.gz respectively.
    Identical source files to build the driver are included in both packages.


    Installing Source RPM Package
    =============================

    The following are general guidelines for installing the driver.

    1. Install the source RPM package:

    rpm -ivh tg3-.src.rpm

    2. CD to the RPM path and build the binary driver for your kernel:

    cd /usr/src/{redhat,OpenLinux,turbo,packages,rpm ..}

    rpm -bb SPECS/tg3.spec

    or

    rpmbuild -bb SPECS/tg3.spec (for RPM version 4.x.x)

    Note that the RPM path is different for different Linux distributions.

    The driver will be compiled for the running kernel by default. To build
    the driver for a kernel different than the running one, specify the
    kernel by defining it in KVER:

    rpmbuild -bb SPECS/tg3.spec --define "KVER "

    where in the form of 2.x.y-z is the version of another
    kernel that is installed on the system.

    3. Install the newly built package (driver and man page):

    rpm -ivh RPMS//tg3-..rpm

    is the architecture of the machine, e.g. i386:

    rpm -ivh RPMS/i386/tg3-.i386.rpm

    Note that the --force option may be needed on some Linux distributions
    if conflicts are reported.

    The driver will be installed in the following path:

    2.4.x kernels:

    /lib/modules//kernel/drivers/net/tg3.o

    2.6.x kernels:

    /lib/modules//kernel/drivers/net/tg3.ko

    4. Load the driver:

    insmod tg3.o
    or
    insmod tg3.ko (on 2.6.x kernels)
    or
    modprobe tg3

    5. To configure network protocol and address, refer to various Linux
    documentations.


    Building Driver From TAR File
    =============================

    The following are general guidelines for installing the driver.

    1. Create a directory and extract the files:

    tar xvzf tg3-.tar.gz

    2. Build the driver tg3.o (or tg3.ko) as a loadable module for the
    running kernel:

    cd src
    make

    The driver will be compiled for the running kernel by default. To build
    the driver for a kernel different than the running one, specify the
    kernel by defining it in KVER:

    make KVER=

    where in the form of 2.x.y-z is the version of another
    kernel that is installed on the system.

    3. Test the driver by loading it:

    insmod tg3.o
    or
    insmod tg3.ko (on 2.6.x kernels)
    or
    insmod tg3

    4. Install the driver:

    make install

    See RPM instructions above for the location of the installed driver.

    5. To configure network protocol and address, refer to various Linux
    documentations.


    Driver Settings
    ===============

    This and the rest of the sections below apply to both the in-kernel tg3
    driver and the tg3 driver package from Broadcom.

    Driver settings can be queried and changed using ethtool. The latest ethtool
    can be downloaded from http://sourceforge.net/projects/gkernel if it is not
    already installed. The following are some common examples on how to use
    ethtool. See the ethtool man page for more information. ethtool settings do
    not persist across reboot or module reload. The ethtool commands can be put
    in a startup script such as /etc/rc.local to preserve the settings across a
    reboot. On Red Hat distributions, "ethtool -s" parameters can be specified
    in the ifcfg-ethx scripts using the ETHTOOL_OPTS keyword. The specified
    ethtool parameters will be set during ifup. Example:
    /etc/sysconfig/network-scripts/ifcfg-eth0:

    ETHTOOL_OPTS="wol g speed 100 duplex half autoneg off"

    Some ethtool examples:

    1. Show current speed, duplex, and link status:

    ethtool eth0

    2. Change speed, duplex, autoneg:

    Example: 100Mbps half duplex, no autonegotiation:

    ethtool -s eth0 speed 100 duplex half autoneg off

    Example: Autonegotiation with full advertisement:

    ethtool -s eth0 autoneg on

    Example: Autonegotiation with 100Mbps full duplex advertisement only:

    ethtool -s eth0 speed 100 duplex full autoneg on

    3. Show flow control settings:

    ethtool -a eth0

    4. Change flow control settings:

    Example: Turn off flow control

    ethtool -A eth0 autoneg off rx off tx off

    Example: Turn flow control autonegotiation on with tx and rx advertisement:

    ethtool -A eth0 autoneg on rx on tx on

    Note that this is only valid if speed is set to autonegotiation.

    5. Show offload settings:

    ethtool -k eth0

    6. Change offload settings:

    Example: Turn off TSO (TCP segmentation offload)

    ethtool -K eth0 tso off

    7. Get statistics:

    ethtool -S eth0

    8. Perform self-test:

    ethtool -t eth0

    Note that the interface (eth0) must be up to do all tests.

    9. See ethtool man page for more options.


    Driver Defaults
    ===============

    Speed : Autonegotiation with all speeds advertised

    Flow control : Autonegotiation with rx and tx advertised

    MTU : 1500 (range 46 - 9000)

    Some chips do not support jumbo MTUs bigger than
    1500

    Rx Ring Size : 200 (range 0 - 511)

    Some chips are fixed at 64

    Rx Jumbo Ring Size : 100 (range 0 - 255)

    Not all chips support the jumbo ring, and some
    chips that support jumbo frames do not use the
    jumbo ring.

    Tx Ring Size : 511 (range (MAX_SKB_FRAGS+1) - 511)

    MAX_SKB_FRAGS varies on different kernels and
    different architectures. On a 2.6 kernel for
    x86, MAX_SKB_FRAGS is 18.

    Coalesce rx usecs : 20 (range 0 - 1023)

    Coalesce rx usecs irq : 20 (range 0 - 255)

    Coalesce rx frames : 5 (range 0 - 1023)

    Coalesce rx frames irq : 5 (range 0 - 255)

    Coalesce tx usecs : 72 (range 0 - 1023)

    Coalesce tx usecs irq : 20 (range 0 - 255)

    Coalesce tx frames : 53 (range 0 - 1023)

    Coalesce tx frames irq : 5 (range 0 - 255)

    Coalesce stats usecs : 1000000 (aprox. 1 sec.)

    Some coalescing parameters are not used or have
    different defaults on some chips

    MSI : Enabled (if supported by the chip and passed
    the interrupt test)

    TSO : Enabled on newer chips that support TCP segmentation
    offload in hardware

    WoL : Disabled


    Unloading and Removing Driver
    =============================

    To unload the driver, use ifconfig to bring down all eth# interfaces opened
    by the driver, then do the following:

    rmmod tg3

    Note that on 2.6 kernels, it is not necessary to bring down the eth#
    interfaces before unloading the driver module.


    If the driver was installed using rpm, do the following to remove it:

    rpm -e tg3


    If the driver was installed using make install from the tar file, the driver
    tg3.o (or tg3.ko) has to be manually deleted from the system. Refer
    to the section "Installing Source RPM Package" for the location of the
    installed driver.


    Driver Messages
    ===============

    The following are the most common sample messages that may be logged in the file
    /var/log/messages. Use dmesg -n to control the level at which messages
    will appear on the console. Most systems are set to level 6 by default. To see
    all messages, set the level higher.

    Driver signon:
    -------------

    tg3.c:v3.81c (September 18, 2007)


    NIC detected:
    ------------

    eth0: Tigon3 [partno(BCM95704A6) rev 2003 PHY(5704)] (PCIX:100MHz:64-bit) 10/100/1000Base-T Ethernet 00:10:18:04:3f:36
    eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] WireSpeed[1] TSOcap[1]
    eth0: dma_rwctrl[769f4000] dma_mask[64-bit]


    Link up and speed indication:
    ----------------------------

    tg3: eth0: Link is up at 1000 Mbps, full duplex.
    tg3: eth0: Flow control is on for TX and on for RX.


    Link down indication:
    --------------------

    tg3: eth0: Link is down.