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 :

2. Install new kernel-devel

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

3. Download Broadcom TG3 NetXtreme driver from :

4. Extract file and change directory to
Server/Linux/Driver directory

# unzip; 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
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:
2.6.x kernels:

11. Load the driver:

insmod tg3.o


insmod tg3.ko (on 2.6.x kernels)


modprobe tg3

12. To configure network protocol and address.