Re: more install problems
On Friday 01 August 2003 06:45, Andrew McGuinness wrote:
[...residue of previous snipped...]
>
> include/pcmcia/version.h isn't a problem.
>
> The errors you quoted from you compile are in code that shouldn't
> be compiled unless LINUX_VERSION_CODE indicates a 2.2 kernel, at
> least in the rtl8139.c I picked up from scyld.com.
>
> So either, a different LINUX_VERSION_CODE is being picked up from
> somewhere else, or the rtl8139.c you have been provided is so old
> or hacked up that it only supports 2.2 kernels.
Probably the latter. Now I am beginning to understand. This is the
top of the file
/* rtl8139.c: A RealTek RTL8129/8139 Fast Ethernet driver for Linux.
*/
/*
Written 1997-2000 by Donald Becker.
...
/* Version 1.11 is originally written by Donald Becker.
Version 1.11a is modified by Clifford Chiang,
wrchiang@realtek.com.tw,
with Link Down Power Saving */
It is the version distributed by the card maker on a floppy with the
card. Looks out of date. No changelog on the disk.
>
> Options for continuing:
>
> a) Try to go back completely to 2.2 and compile with that. I don't
> really recommend that, as being stuck with 2.2 kernel will hold you
> back on other things.
No, thanks.
>
> b) Find out where the rtl8139.c on your floppy disk came from. If
> it is patched or modified by the manufacturer, try to find if they
> have a newer version.
The latest version on the realtek.com.tw site seems to be:
Linux driver for kernel 2.4.x (RedHat 7.2 ) ver.1.60 2003/06/16
I tried to compile that, without success. At the risk of boring
everyone I attach below the session to show what happened.
> If the changelog doesn't suggest it has been modified by anyone but
> Donald Becker, go to http://www.scyld.com/network/rtl8139.html
> and follow the instructoins there. (That means downloading the
> four files rtl8139.c kern_compat.h pci_scan.h, pci_scan.c and doing
> roughly what you've been doing).
If curiosity wins out over the pressure to finish real work, I might
try that later.
>
> If that sounds a bit much, I'll try compiling it all for you
> tonight or Saturday morning. I'm getting kind of hooked on this
> problem.
I'm glad to hear that. I doubt I could solve this without you!
>
> It might help if you mail the rtl8139.c you have to me (I don't
> think it's of much value to the list generally)
I haven't mailed it in the light of the above.
Many thanks for your help so far.
richard
addendum: Here is the failed compile
(I've added backslashes to mark split lines):
===============first, here is the Makefile==================
# Makefile for a basic kernel module
#-----------------------------------------------------------------
# This flag specifies access type to operation register on PCI \
ethernet chips.
# If you apply 8139/8139CP ethernet controller via cardbus interface \
on linux distribution Red Hat 7.3
# please turn on this macro.
#------------------------------------------------------------------
#RTL_MEM_ACCESS = USE_IO_OPS
#------------------------------------------------------------------
# Please specify the include path according to your kernel.
#------------------------------------------------------------------
NEW_INCLUDE_PATH = /usr/src/linux-2.4.18-3/include/
#------------------------------------------------------------------
# GNU C compiler and its flags
#------------------------------------------------------------------
CC=gcc
MODCFLAGS := -O6 -Wall -DCONFIG_KERNELD -DMODULE -D__KERNEL__ \
-DLINUX -D${RTL_MEM_ACCESS}
all: 8139too
8139too: 8139too.c /usr/include/linux/version.h
$(CC) $(MODCFLAGS) -I$(NEW_INCLUDE_PATH) -c \
8139too.c -o $@.o
.
===============and now what I did===========================
richard@segaccia:~/down/realtek$ make
Makefile:28: *** missing separator. Stop.
The file finishes with a blank line and a line (28) containing only a
full stop (US period). I deleted the full stop and tried again:
richard@segaccia:~/down/realtek$ make
gcc -O6 -Wall -DCONFIG_KERNELD -DMODULE -D__KERNEL__ -DLINUX -D
-I/usr/src/linux/include/ -c 8139too.c -o 8139too.o
8139too.c:0: malformed option `-D -I/usr/src/linux/include/'
make: *** [8139too] Error 1
That empty -D is the '-D${RTL_MEM_ACCESS}'. Presumably something is
supposed to substitute it. In a spirit of blind experimentation, I
tried omitting it altogether:
richard@segaccia:~/down/realtek$ ls
8139too.c Makefile linux24x-8139cp-1.60.zip readme.txt
richard@segaccia:~/down/realtek$ gcc -O6 -Wall -DCONFIG_KERNELD \
-DMODULE -D__KERNEL__ -DLINUX -I/usr/src/linux/include/ -c \
8139too.c -o 8139too.o
8139too.c: In function `rtl8139_close':
8139too.c:2753: warning: unused variable `ret'
8139too.c: In function `rtl8139CP_close':
8139too.c:2798: warning: unused variable `ret'
richard@segaccia:~/down/realtek$ ls
8139too.c 8139too.o Makefile linux24x-8139cp-1.60.zip readme.txt
It had written a file, so, WTH, I gave it a try.
richard@segaccia:~/down/realtek$ su
Password:
segaccia:/home/richard/down/realtek# chown root:root 8139too.o
segaccia:/home/richard/down/realtek# cp 8139too.o \
/lib/modules/2.4.18-bf2.4/kernel/drivers/net
segaccia:~# insmod 8139too
Using /lib/modules/2.4.18-bf2.4/kernel/drivers/net/8139too.o
Warning: loading \
/lib/modules/2.4.18-bf2.4/kernel/drivers/net/8139too.o will taint \
the kernel: no license
/lib/modules/2.4.18-bf2.4/kernel/drivers/net/8139too.o: \
init_module: No such device
Hint: insmod errors can be caused by incorrect module parameters, \
including invalid IO or IRQ parameters
Naturally, it didn't work.
=========================================================
Reply to: