How to updating driver for gigabit network card [Broadcom TG3:netXtream] on fedora core 4.

This is detail of how to updating driver for gigabit network card
[Broadcom TG3:NetXtreme] on fedora core 4.

1. Download kernel-devel-2.6.11-1.1369_FC4.i686.rpm from :
ftp://ftp.riken.jp/Linux/fedora/core/4/i386/os/Fedora/RPMS/
kernel-devel-2.6.11-1.1369_FC4.i686.rpm

2. Install new kernel-devel

# rpm -ivh kernel-devel-2.6.11-1.1369_FC4.i686.rpm

3. Download Broadcom TG3 NetXtreme driver from :

http://www.broadcom.com/docs/driver_download/570x/linux-3.71b.zip


4. Extract file linux-3.71b.zip and change directory to
Server/Linux/Driver directory

# unzip linux-3.71b.zip; cd Server/Linux/Driver;

5. Install the source RPM package:

# rpm -ivh tg3-.src.rpm

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

# cd /usr/src/{redhat,OpenLinux,turbo,packages,rpm ..}
# rpmbuild -bb SPECS/tg3.spec –define “KVER ”

** You can check your kernel version by

# uname -r

7. From my experience of installation, you don’t install complete and
you will find this error :
------------------------------------------------------------------
" In file included from
/usr/src/redhat/GUILD/tg3=3.66f/tg3.c:82:/usr/src/redhat/GUILD/tg3-3.66f/tg3.h:334:
error: conflicting types for 'skb_header_cloned'
include /linux/skbuff.h:398: error: previous definition of
'skb_header_cloned' was here
RPM build errors:
bad exit status from /var/tmp/rpm-tmp.36567 "
------------------------------------------------------------------

So you can solve this problem by disable (make this function to comment) function skb_header_cloned” on file /usr/src/kernels/
version>/include/linux/skbuff.h such as :
:
/** static inline int skb_header_cloned(const struct sk_buff *skb)
*{
* int dataref;
*
* if (!skb->cloned)
* return 0;
*
* dataref = atomic_read(&skb_shinfo(skb)->dataref);
* dataref = (dataref & SKB_DATAREF_MASK) - (dataref >> SKB_DATAREF_SHIFT);
* return dataref != 1;
*}
:


8. Build the binary driver for your kernel again :

# rpmbuild -bb SPECS/tg3.spec –define “KVER ”

9. 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

10. 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

11. Load the driver:

insmod tg3.o

or

insmod tg3.ko (on 2.6.x kernels)

or

modprobe tg3

12. To configure network protocol and address.