Re: problem with Broadcom Ethernet card and RH 7.2

From: Bernard DEBREIL (bdebreil_at_teaser.fr)
Date: 11/14/03


Date: Fri, 14 Nov 2003 17:04:11 +0100

On Wed, 12 Nov 2003 22:52:34 +0100, Ian Northeast wrote:

> Bernard DEBREIL wrote:
>> The card is simply not reckognized, and it does not figure in the list
>> of reckognized ethernet cards for that RedHat distro. Could someone
>> tell me where I can find a driver for this card, or what alternate
>> setup may be tested ?
>>
>> The exact references of this card are :
>>
>> "Broadcom NetXtrem Gigabit Ethernet for HP"
>
> See http://www.broadcom.com/support/downloaddrivers.php.

Thanks a lot for this link. I have downloaded drivers, but I can't
compile/install any of them. I am not a specialist, and, when compiling a
program using the makefiles that are provided, if nothing goes wrong, I
have no problem. However, when something is not right, I am not likely to
know what to do. So, whether I try installing this driver, here is what it
says:

********************************************************************
[root@PCDEBREIL src]# make
gcc -DMODULE -D__KERNEL__ -DDBG=0 -DT3_JUMBO_RCV_RCB_ENTRY_COUNT=256
-DNICE_SUPPORT -DPCIX_TARGET_WORKAROUND=1 -DINCLUDE_TBI_SUPPORT -DINCLUDE_5701_AX_FIX=1
-Wall

-Wstrict-prototypes -O6 -I/lib/modules/2.4.7-10/build/include -c -o b57um.o b57um.c In file
included from mm.h:30,from b57um.c:19:

/usr/include/linux/modversions.h:1:2: #error Modules should never use
kernel-headers systemheaders,

/usr/include/linux/modversions.h:2:2: #error but rather headers from an appropriate
kernel-source package.

/usr/include/linux/modversions.h:3:2:

#error Change -I/usr/src/linux/include (or similar)to /usr/include/linux/modversions.h:4:2:

#error -I/lib/modules/$(uname -r)/build/include /usr/include/linux/modversions.h:5:2:

#error to build against the currently-running kernel. make: *** [b57um.o]

Erreur 1

[root@PCDEBREIL src]#

******************************************************************** below
Now, here is the Makefile provided with the driver package:

********************************************************************
#!/usr/bin/make
# Makefile for building Linux Broadcom Gigabit ethernet driver as a
module. # $id$

# PREFIX may be set by the RPM build to set the effective root. PREFIX=
ifeq ($(shell ls /lib/modules/$(shell uname -r)/build > /dev/null 2>&1 &&
echo build),)
  ifeq ($(shell ls /usr/src/linux > /dev/null 2>&1 && echo linux),)
    LINUX=
  else
    LINUX=/usr/src/linux
  endif
else
  LINUX=/lib/modules/$(shell uname -r)/build
endif

# check if 2.4 kernel or 2.5+ kernel
BCM_KVER:=$(shell uname -r | cut -c1-3 | sed 's/2\.[56]/2\.6/')

ifeq ($(BCM_KVER), 2.6)
# Makefile for 2.5+ kernel
ifneq ($(KERNELRELEASE),)

obj-m += bcm5700.o

bcm5700-objs := b57um.o b57proc.o tigon3.o autoneg.o 5701rls.o
tcp_seg.o

EXTRA_CFLAGS = -DDBG=0 -DT3_JUMBO_RCV_RCB_ENTRY_COUNT=256 -DNICE_SUPPORT
-DPCIX_TARGET_WORKAROUND=1 -DINCLUDE_TBI_SUPPORT -DINCLUDE_5701_AX_FIX=1

else

default:
        make -C $(LINUX) SUBDIRS=$(shell pwd) modules

install: default
        @if [ -d $(PREFIX)/lib/modules/$(shell uname -r)/kernel/drivers/net/bcm
        ];\ then install -m 444 bcm5700.ko $(PREFIX)/lib/modules/$(shell uname
        -r)/kernel/drivers/net/bcm;\ else mkdir -p $(PREFIX)/lib/modules/$(shell
        uname -r)/drivers/net;\ install -m 444 bcm5700.ko
        $(PREFIX)/lib/modules/$(shell uname -r)/drivers/net;\ fi
        install -m 444 bcm5700.4.gz $(PREFIX)/usr/share/man/man4;

endif

else # ifeq ($(BCM_KVER),2.6)
# Makefile for 2.4 kernel

ifeq ($(LINUX),)
  $(error Linux kernel source tree not found)
endif

ifeq ($(shell which kgcc > /dev/null 2>&1 && echo kgcc),)
  CC = gcc
else
  ifneq ($(findstring gcc version egcs-2.91.66, $(shell cat /proc/version
  2>&1)),)
    CC = kgcc
  else
    CC = gcc
  endif
endif

LD = ld
CFLAGS=-DMODULE -D__KERNEL__ -DDBG=0 -DT3_JUMBO_RCV_RCB_ENTRY_COUNT=256
-DNICE_SUPPORT -DPCIX_TARGET_WORKAROUND=1 -DINCLUDE_TBI_SUPPORT
-DINCLUDE_5701_AX_FIX=1 -Wall -Wstrict-prototypes -O6 -I$(LINUX)/include

ifeq ($(wildcard ~/rpmdir),)
  rpmdir = /usr/src/redhat
else
  rpmdir = $(wildcard ~/rpmdir)
endif

ARCH:=$(shell uname -m)

ifeq ($(ARCH),x86_64)
  CFLAGS+=-mno-red-zone -mcmodel=kernel -pipe -finline-limit=2000
endif

ifeq ($(ARCH),ia64)
  CFLAGS+=-pipe -ffixed-r13 -mfixed-range=f10-f15,f32-f127
  -falign-functions=32
endif

ifdef DBG
  CFLAGS += -DTIGON3_DEBUG=1
endif

ifdef SMALL
  CFLAGS += -DBCM_SMALL_DRV=1
endif

all: bcm5700.o
tar: bcm5700.tgz

bcm5700.o: b57um.o b57proc.o tigon3.o autoneg.o 5701rls.o tcp_seg.o
        $(LD) -i $^ -o $@

install: bcm5700.o
        @if [ -d $(PREFIX)/lib/modules/`uname -r`/kernel/drivers/addon/bcm5700
        ];\ then install -m 444 bcm5700.o $(PREFIX)/lib/modules/`uname
        -r`/kernel/drivers/addon/bcm5700;\ elif [ -d $(PREFIX)/lib/modules/`uname
        -r`/kernel/drivers/net/bcm ];\ then install -m 444 bcm5700.o
        $(PREFIX)/lib/modules/`uname -r`/kernel/drivers/net/bcm;\ elif [ -d
        $(PREFIX)/lib/modules/`uname -r`/kernel ];\ then mkdir -p
        $(PREFIX)/lib/modules/`uname -r`/kernel/drivers/net;\ install -m 444
        bcm5700.o $(PREFIX)/lib/modules/`uname -r`/kernel/drivers/net;\ else
        mkdir -p $(PREFIX)/lib/modules/`uname -r`/net;\ install -m 444 bcm5700.o
        $(PREFIX)/lib/modules/`uname -r`/net/;\ fi
        @if [ "$(PREFIX)" = "" ]; then /sbin/depmod -a ;\ else echo " *** Run
        '/sbin/depmod -a' to update the module database.";\ fi
        @if [ -d $(PREFIX)/usr/share/man ];\
        then install -m 444 bcm5700.4.gz $(PREFIX)/usr/share/man/man4;\ elif [ -d
        $(PREFIX)/usr/man ];\
        then install -m 444 bcm5700.4.gz $(PREFIX)/usr/man/man4;\ fi

bcm5700.tgz: Makefile *.[cho] LICENSE RELEASE.TXT
        tar cfvz $@ $^

rpm: bcm5700.tgz bcm5700.spec
        cp -p $< ${rpmdir}/SOURCES/
        rpm -ba bcm5700.spec

.PHONEY: all clean install tar

debug:
        @make DBG=1

small:
        @make SMALL=1

endif # ifeq ($(BCM_KVER),2.6)

clean:
        -rm -f bcm5700.o bcm5700.ko b57um.o b57proc.o tigon3.o autoneg.o
        5701rls.o tcp_seg.o bcm5700.mod.c bcm5700.mod.o
***********************************************************************

Can you advise what to do next ?

I don't know how to interpretate the following errors:

*******************************************
#error Change -I/usr/src/linux/include (or similar)to /usr/include/linux/modversions.h:4:2:

#error -I/lib/modules/$(uname -r)/build/include /usr/include/linux/modversions.h:5:2:

#error to build against the currently-running kernel. make: *** [b57um.o]
*******************************************

The system recommends that I replace ' -I/usr/src... by
/usr/include/modversions...

which makes no sense to me, since modversions.h contains only error
messages, and, besides, I don't know where to find the string to modify,
since it does not appear in the makefile. In any case, the $(uname -r)
would make no sense to me either.

Thanks in advance for a knowledged hand :)

I point out that I am running kernel 2.4.7-10.

-- 
Bernard DEBREIL


Relevant Pages