[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: