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.