PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probs beim Kompilieren


ZeroSix
07.03.02, 22:21
Ich habe in meinem Rechner (Suse 7.3) 2 Netzwerk-Karte (obere ist eine Realtek (Compex RE100TX 10/100 MBits), die 2. Karte (darunter) ist eine Fiberline (DM9102(A)/DM9132/DM9801), wenn ich jetzt von der ersten Karte (Realtek) das Modul kompilieren will, bekomme ich nur eine Liste von Fehlermeldungen angezeigt.
In der Anleitung steht :

1) Copy the driver source code to the right directory,
cp /mnt/floppy/<lan driver.c> /usr/src/linux

2) Compile the source code by entering as shown.
cd /usr/src/linux

For single CPU machine enter as follows:
gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c rtl8139.c `[ -f /usr/include/linux/modversions.h ] && echo -DMODVERSIONS`

Ich habe es auf 2 Arten versucht :

1. Mal : gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c rtl8139.c

2. Mal : gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c rtl8139.c `[ -f /usr/include/linux/modversions.h ] && echo -DMODVERSIONS`

Aber bei beiden Versuchen erhalte ich nur Fehlermeldungen :

In file included from /usr/include/linux/module.h:260,
from re100tx.c:65:
/usr/include/linux/version.h:2: #error "================================================== ====="
/usr/include/linux/version.h:3: #error "You should not include /usr/include/{linux,asm}/ header"
/usr/include/linux/version.h:4: #error "files directly for the compilation of kernel modules."
/usr/include/linux/version.h:5: #error ""
/usr/include/linux/version.h:6: #error "glibc now uses kernel header files from a well-defined"
/usr/include/linux/version.h:7: #error "working kernel version (as recommended by Linus Torvalds)"
/usr/include/linux/version.h:8: #error "These files are glibc internal and may not match the"
/usr/include/linux/version.h:9: #error "currently running kernel. They should only be"
/usr/include/linux/version.h:10: #error "included via other system header files - user space"
/usr/include/linux/version.h:11: #error "programs should not directly include <linux/*.h> or"
/usr/include/linux/version.h:12: #error "<asm/*.h> as well."
/usr/include/linux/version.h:13: #error ""
/usr/include/linux/version.h:14: #error "To build kernel modules please do the following:"
/usr/include/linux/version.h:15: #error ""
/usr/include/linux/version.h:16: #error " o Have the kernel sources installed"
/usr/include/linux/version.h:17: #error ""
/usr/include/linux/version.h:18: #error " o Make sure that the symbolic link"
/usr/include/linux/version.h:19: #error " /lib/modules/`uname -r`/build exists and points to"
/usr/include/linux/version.h:20: #error " the matching kernel source directory"
/usr/include/linux/version.h:21: #error ""
/usr/include/linux/version.h:22: #error " o Now copy /boot/vmlinuz.version.h to"
/usr/include/linux/version.h:23: #error " /lib/modules/`uname -r`/build/include/linux/version.h"
/usr/include/linux/version.h:24: #error ""
/usr/include/linux/version.h:25: #error " o When compiling, make sure to use the following"
/usr/include/linux/version.h:26: #error " compiler option to use the correct include files:"
/usr/include/linux/version.h:27: #error ""
/usr/include/linux/version.h:28: #error " -I/lib/modules/`uname -r`/build/include"
/usr/include/linux/version.h:29: #error ""
/usr/include/linux/version.h:30: #error " instead of"
/usr/include/linux/version.h:31: #error ""
/usr/include/linux/version.h:32: #error " -I/usr/include/linux"
/usr/include/linux/version.h:33: #error ""
/usr/include/linux/version.h:34: #error " Please adjust the Makefile accordingly."
/usr/include/linux/version.h:35: #error "================================================== ====="
In file included from re100tx.c:66:
/usr/include/linux/version.h:2: #error "================================================== ====="
/usr/include/linux/version.h:3: #error "You should not include /usr/include/{linux,asm}/ header"
/usr/include/linux/version.h:4: #error "files directly for the compilation of kernel modules."
/usr/include/linux/version.h:5: #error ""
/usr/include/linux/version.h:6: #error "glibc now uses kernel header files from a well-defined"
/usr/include/linux/version.h:7: #error "working kernel version (as recommended by Linus Torvalds)"
/usr/include/linux/version.h:8: #error "These files are glibc internal and may not match the"
/usr/include/linux/version.h:9: #error "currently running kernel. They should only be"
/usr/include/linux/version.h:10: #error "included via other system header files - user space"
/usr/include/linux/version.h:11: #error "programs should not directly include <linux/*.h> or"
/usr/include/linux/version.h:12: #error "<asm/*.h> as well."
/usr/include/linux/version.h:13: #error ""
/usr/include/linux/version.h:14: #error "To build kernel modules please do the following:"
/usr/include/linux/version.h:15: #error ""
/usr/include/linux/version.h:16: #error " o Have the kernel sources installed"
/usr/include/linux/version.h:17: #error ""
/usr/include/linux/version.h:18: #error " o Make sure that the symbolic link"
/usr/include/linux/version.h:19: #error " /lib/modules/`uname -r`/build exists and points to"
/usr/include/linux/version.h:20: #error " the matching kernel source directory"
/usr/include/linux/version.h:21: #error ""
/usr/include/linux/version.h:22: #error " o Now copy /boot/vmlinuz.version.h to"
/usr/include/linux/version.h:23: #error " /lib/modules/`uname -r`/build/include/linux/version.h"
/usr/include/linux/version.h:24: #error ""
/usr/include/linux/version.h:25: #error " o When compiling, make sure to use the following"
/usr/include/linux/version.h:26: #error " compiler option to use the correct include files:"
/usr/include/linux/version.h:27: #error ""
/usr/include/linux/version.h:28: #error " -I/lib/modules/`uname -r`/build/include"
/usr/include/linux/version.h:29: #error ""
/usr/include/linux/version.h:30: #error " instead of"
/usr/include/linux/version.h:31: #error ""
/usr/include/linux/version.h:32: #error " -I/usr/include/linux"
/usr/include/linux/version.h:33: #error ""
/usr/include/linux/version.h:34: #error " Please adjust the Makefile accordingly."
/usr/include/linux/version.h:35: #error "================================================== ====="
In file included from /usr/include/linux/udf_fs_sb.h:22,
from /usr/include/linux/fs.h:658,
from /usr/include/linux/capability.h:17,
from /usr/include/linux/binfmts.h:5,
from /usr/include/linux/sched.h:8,
from re100tx.c:73:
/usr/include/linux/version.h:2: #error "================================================== ====="
/usr/include/linux/version.h:3: #error "You should not include /usr/include/{linux,asm}/ header"
/usr/include/linux/version.h:4: #error "files directly for the compilation of kernel modules."
/usr/include/linux/version.h:5: #error ""
/usr/include/linux/version.h:6: #error "glibc now uses kernel header files from a well-defined"
/usr/include/linux/version.h:7: #error "working kernel version (as recommended by Linus Torvalds)"
/usr/include/linux/version.h:8: #error "These files are glibc internal and may not match the"
/usr/include/linux/version.h:9: #error "currently running kernel. They should only be"
/usr/include/linux/version.h:10: #error "included via other system header files - user space"
/usr/include/linux/version.h:11: #error "programs should not directly include <linux/*.h> or"
/usr/include/linux/version.h:12: #error "<asm/*.h> as well."
/usr/include/linux/version.h:13: #error ""
/usr/include/linux/version.h:14: #error "To build kernel modules please do the following:"
/usr/include/linux/version.h:15: #error ""
/usr/include/linux/version.h:16: #error " o Have the kernel sources installed"
/usr/include/linux/version.h:17: #error ""
/usr/include/linux/version.h:18: #error " o Make sure that the symbolic link"
/usr/include/linux/version.h:19: #error " /lib/modules/`uname -r`/build exists and points to"
/usr/include/linux/version.h:20: #error " the matching kernel source directory"
/usr/include/linux/version.h:21: #error ""
/usr/include/linux/version.h:22: #error " o Now copy /boot/vmlinuz.version.h to"
/usr/include/linux/version.h:23: #error " /lib/modules/`uname -r`/build/include/linux/version.h"
/usr/include/linux/version.h:24: #error ""
/usr/include/linux/version.h:25: #error " o When compiling, make sure to use the following"
/usr/include/linux/version.h:26: #error " compiler option to use the correct include files:"
/usr/include/linux/version.h:27: #error ""
/usr/include/linux/version.h:28: #error " -I/lib/modules/`uname -r`/build/include"
/usr/include/linux/version.h:29: #error ""
/usr/include/linux/version.h:30: #error " instead of"
/usr/include/linux/version.h:31: #error ""
/usr/include/linux/version.h:32: #error " -I/usr/include/linux"
/usr/include/linux/version.h:33: #error ""
/usr/include/linux/version.h:34: #error " Please adjust the Makefile accordingly."
/usr/include/linux/version.h:35: #error "================================================== ====="
re100tx.c:105: linux/bios32.h: No such file or directory
re100tx.c:1042: macro `dev_kfree_skb' used with too many (2) args
re100tx.c:1272: macro `dev_kfree_skb' used with too many (2) args
linux:/usr/src #

Weiß jemand, was ich hier falsch gemacht habe ? Oder kann mir hierbei jemand weiterhelfen ?

micha
07.03.02, 23:34
Hi,

es steht eigentlich schon alles in der Fehlermeldung:


To build kernel modules please do the following:
Have the kernel sources installed
Make sure that the symbolic link
/lib/modules/`uname -r`/build
exists and points to the matching kernel source directory

Now copy /boot/vmlinuz.version.h to
/lib/modules/`uname -r`/build/include/linux/version.h
When compiling, make sure to use the following
compiler option to use the correct include files:

-I/lib/modules/`uname -r`/build/include

instead of

-I/usr/include/linux

Please adjust the Makefile accordingly.


Gruß micha

ZeroSix
08.03.02, 09:18
Kernel-Scource ? Ich denke, die wir bei Suse Linux mitinstalliert ? Dann muss ich mal sehen, ob ich die auf den CD`s finde ;) Oder ich pack mir direkt den aktuelle Kernel drauf (hoffentlich wird die Source dann dabei mitinstalliert)


Danke dir schonmal :)

micha
09.03.02, 17:53
Nein,

die Kernel-Sourcen werden bei SuSE nicht standardmäßig installiert, ausser vielleicht bei einem Entwicklersystem. Die Kernel-Sourcen findest Du unter Serie d, soviel ich weiss. Die würd ich auch vorziehen, da mit dem Paket auch gleich die richtigen Links unter /lib/modules/, /usr/src/ und /usr/include gesetzt werden, die Du nachher zum Kompilieren benötigst.

Gruß micha

tonmeister440
16.10.02, 14:52
hi,

leider muss ich gestehen, das ich nocht damit zurecht gekommen bin. beim kompilieren der sourcen, bekomme ich folgende fehlermeldung:

[root@bgm net]# gcc -l /lib/modules/2.4.18-3/build/include -DMODULE -Wall -Wstrict-prototypes -O6 -c rtl8139.c
In file included from rtl8139.c:109:
/usr/include/linux/interrupt.h:44:25: asm/hardirq.h: Datei oder Verzeichnis nicht gefunden
/usr/include/linux/interrupt.h:45:25: asm/softirq.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/linux/timex.h:152,
from /usr/include/linux/sched.h:14,
from /usr/include/linux/skbuff.h:19,
from rtl8139.c:113:
/usr/include/asm/timex.h:10:21: asm/msr.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/linux/highmem.h:5,
from /usr/include/linux/skbuff.h:26,
from rtl8139.c:113:
/usr/include/asm/pgalloc.h:6:24: asm/fixmap.h: Datei oder Verzeichnis nicht gefunden
[root@bgm net]#


wie ihr seht hab ich schon den korrekten include-pfad für die header files angegeben. leider hab ich nicht genügend wissen um die fehlermeldung zu verstehen, weil er soll doch nicht mehr in /usr/include nach den headern gucken und trotzdem diese meldung :confused:
wär cool wenn mir jemand nen hint geben könnte, vielleicht ist die syntax ja auch falsch mit der ich gcc aufrufe ??

gruss tonmeister440