[tulip] Problem with trying to build netdrivers.rpm / Redhat7 2.2.16-22

Reiner Wilhelms reiner@speech.mit.edu
Mon, 23 Oct 2000 00:31:36 -0400


Sorry, I need help (again) , I don't get through this version jungle.
I also  have a Etherfast 10/100 LAN Card (LNE100TX) by
Linksys. That's why I'm here (and why where you folks
put into this loop...:-?)

I got :  uname -r
2.2.16-22

I would like to know under what circumstances and using which
include files the most recent netdrivers will compile, given an
installation of
Redhat 7.0.  Another question is if  netdrivers-2.0.3.i386.rpm
contains actually the same thing as the current netdrivers.tgz (after
building it).
I didn't manage to install any of two versions given on the ftp
site of scyld.com, even though I received some helpful hints
from Donald Becker very immediately,  for which I am thankful.

In other words, would someone have a
netdrivers-2.0.x.i386-for-dorks-like-me-running-under-Redhat-7.0.rpm??

Thank you all.

Please read on if you want to see what I tried sofar.
=====================================

This is a rather fresh installation of Redhat 7.0 (I didn't use any
tricks, just the
plain vanilla installation, standard as they call it).

A) I tried first to install the existing  netdrivers-2.0.3.i386 (from
Aug 8, on ftp.scyld.com/pub/network).  After depmod -a, etc,
I get plenty more undefined  symbols:

rpm -i --force netdriver-2.0-3.i386.rpm
depmod: *** Unresolved symbols in /lib/modules/2.2.16-22/net/tulip.o
[root@localhost reiner]# /sbin/depmod -a
depmod: *** Unresolved symbols in /lib/modules/2.2.16-22/net/tulip.o
[root@localhost reiner]# /sbin/modprobe tulip
/lib/modules/2.2.16-22/net/tulip.o: unresolved symbol
skb_over_panic_Rff4558c6
/lib/modules/2.2.16-22/net/tulip.o: unresolved symbol
eth_type_trans_R268fea4a
/lib/modules/2.2.16-22/net/tulip.o: unresolved symbol netif_rx_R507bc694

/lib/modules/2.2.16-22/net/tulip.o: unresolved symbol
dev_close_Rf2863777
/lib/modules/2.2.16-22/net/tulip.o: unresolved symbol
__kfree_skb_Rb199cc61
/lib/modules/2.2.16-22/net/tulip.o: unresolved symbol
alloc_skb_Rbb37a2d1
/lib/modules/2.2.16-22/net/tulip.o: unresolved symbol
eth_copy_and_sum_R8c7c58f8
/lib/modules/2.2.16-22/net/tulip.o: unresolved symbol
unregister_netdev_Ref7eb65d
/lib/modules/2.2.16-22/net/tulip.o: unresolved symbol
init_etherdev_Rf1ebeb5a
/lib/modules/2.2.16-22/net/tulip.o: insmod
/lib/modules/2.2.16-22/net/tulip.o failed
/lib/modules/2.2.16-22/net/tulip.o: insmod tulip failed


That's a few more unresolved symbols than what Thomas May
reported earlier, namely pci_drv_register and  pci_drv_unregister
So I tried the source RPM package, and followed pretty much
what is decribed under using the Source RPM Package.
As follows (see http://www.scyld.com/network/updates.html):

># Transfer the Scyld PCI Netdriver package
>rpm -i ftp://ftp.scyld.com/pub/network/netdriver-2.0.src.rpm
># Build the binary version for your kernel
>cd /usr/src/{redhat,TurboLinux}/
>rpm -bb SPECS/netdriver.spec
># Now install it your newly built package.
>rpm -i --force RPMS/i386/netdriver-2.0-*.i386.rpm

rpm -i with the URL indeed generates
/usr/src/redhat/SOURCES/netdrivers.tgz -- good.
Then, using the next line of the instructions I get (previously by
others described)
the error that symbols such as 'interrupt' and 'tbusy' in the net_device
structure
are not defined.  Now,  Donald Becker had told that I should change the
includes
so that I get a resulting  -I/usr/src/linux/include (this was in the
case of individually
compiling tulip.c, which also didn't work, and that I should use kgpp
instead of gpp:
Donald Becker: >> Don't forget to use 'kgcc', since 7.0 ships with a
bogus gcc snapshot <<

(I take your word for it :-) So I expanded the netdrivers.tgz file,
manipulated the
Makefile and compressed it again using tar cvfz, so that I could follow
the above
instructions (rpm -bb etc.)  again. In the Makefile I  changed gcc to
kgcc and  LINUX=/usr
and in another experiment to LINUX = /usr/i386-glibc21-linux .
(These two possibilities make sense since a statment such as
-I(LINUX)/include
expands to an actually existing directory. )

In either case I get big problems: In the first instance I get the same
problem with
missing symbols tbusy, interrupt and  start. In the other case : I get a
long list of
errors that may have to do with the problem of  'PAGE_OFFSET_RAW' not
being
defined:

/usr/i386-glibc21-linux/include/asm/pgtable.h: In function
`get_pgd_slow':
In file included from /usr/i386-glibc21-linux/include/linux/vmalloc.h:7,

                 from /usr/i386-glibc21-linux/include/asm/io.h:102,
                 from pci-skeleton.c:105:
/usr/i386-glibc21-linux/include/asm/pgtable.h:409: `PAGE_OFFSET_RAW'
undeclared (first use in this function)
/usr/i386-glibc21-linux/include/asm/pgtable.h:409: (Each undeclared
identifier is reported only once
.........


Finally I forced a definition of that symbol by altering
/usr/i386-glibc21-linux/include/asm/page_offset.h temporarily,.
which left the following problem:

kgcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6
-I/usr/i386-glibc21-linux/include -pipe -fno-strength-reduce
-DMODVERSIONS   -c -o pci-skeleton.o pci-skeleton.c
pci-skeleton.c: In function `netfin_probe1':
pci-skeleton.c:435: warning: assignment from incompatible pointer type
pci-skeleton.c:438: dereferencing pointer to incomplete type
pci-skeleton.c:441: dereferencing pointer to incomplete type
pci-skeleton.c:443: dereferencing pointer to incomplete type
pci-skeleton.c:444: dereferencing pointer to incomplete type
pci-skeleton.c:468: dereferencing pointer to incomplete type


Jetzt bin ich mit meinem Latein am Ende... (I've had it now with this).


Reiner