Probleme mit Kernelmodul-Kompilierung

Hallo!

Ich habe das Problem, dass sich der Quellcode für ein Kernelmodul, das ich unbedingt brauche, nicht kompiliert werden kann. Ich benutze SuSE 9.0. Bei der Ausführung der make - Datei bekomme ich folgende Fehlermeldung. Vielleicht weiss jemand was schief geht?

/usr/include/asm/module.h:54:2: #error unknown processor family
In file included from deviceadwin.c:2:
/usr/include/linux/version.h:2:2: #error
„=======================================================“
/usr/include/linux/version.h:3:2: #error „You should not include /usr/include/
{linux,asm}/ header“
/usr/include/linux/version.h:4:2: #error „files directly for the compilation
of kernel modules.“
/usr/include/linux/version.h:5:2: #error „“
/usr/include/linux/version.h:6:2: #error „glibc now uses kernel header files
from a well-defined“
/usr/include/linux/version.h:7:2: #error „working kernel version (as
recommended by Linus Torvalds)“
/usr/include/linux/version.h:8:2: #error „These files are glibc internal and
may not match the“
/usr/include/linux/version.h:9:2: #error „currently running kernel. They
should only be“
/usr/include/linux/version.h:10:2: #error „included via other system header
files - user space“
/usr/include/linux/version.h:11:2: #error „programs should not directly
include or“
/usr/include/linux/version.h:12:2: #error " as well."
/usr/include/linux/version.h:13:2: #error „“
/usr/include/linux/version.h:14:2: #error „To build kernel modules please do
the following:“
/usr/include/linux/version.h:15:2: #error „“
/usr/include/linux/version.h:16:2: #error " o Have the kernel sources
installed"
/usr/include/linux/version.h:17:2: #error „“
/usr/include/linux/version.h:18:2: #error " o Make sure that the symbolic
link"
/usr/include/linux/version.h:19:2: #error " /lib/modules/uname -r/build
exists and points to"
/usr/include/linux/version.h:20:2: #error " the matching kernel source
directory"
/usr/include/linux/version.h:21:2: #error „“
/usr/include/linux/version.h:22:2: #error " o Configure kernel sources:"
/usr/include/linux/version.h:23:2: #error " - cd /usr/src/linux"
/usr/include/linux/version.h:24:2: #error " - make mrproper"
/usr/include/linux/version.h:25:2: #error " - make cloneconfig"
/usr/include/linux/version.h:26:2: #error " - make dep"
/usr/include/linux/version.h:27:2: #error „“
/usr/include/linux/version.h:28:2: #error " o When compiling, make sure to use
the following"
/usr/include/linux/version.h:29:2: #error " compiler option to use the
correct include files:"
/usr/include/linux/version.h:30:2: #error „“
/usr/include/linux/version.h:31:2: #error " -I/lib/modules/uname -r/build/
include"
/usr/include/linux/version.h:32:2: #error „“
/usr/include/linux/version.h:33:2: #error " instead of"
/usr/include/linux/version.h:34:2: #error „“
/usr/include/linux/version.h:35:2: #error " -I/usr/include/linux"
/usr/include/linux/version.h:36:2: #error „“
/usr/include/linux/version.h:37:2: #error " Please adjust the Makefile
accordingly."
/usr/include/linux/version.h:38:2: #error
„=======================================================“

Danke im Voraus für die Infos.

Florian

Hallo,

Ich habe das Problem, dass sich der Quellcode für ein
Kernelmodul, das ich unbedingt brauche, nicht kompiliert
werden kann. Ich benutze SuSE 9.0. Bei der Ausführung der make

  • Datei bekomme ich folgende Fehlermeldung. Vielleicht weiss
    jemand was schief geht?

/usr/include/asm/module.h:54:2: #error unknown processor
family
In file included from deviceadwin.c:2:
/usr/include/linux/version.h:2:2: #error

Das fängt schon mal ganz schlecht an. Welche Makedatei hast Du denn aufgerufen? „make modules“ im Linux-Sourceverzeichnis funktioniert nicht? Hast Du die Kernelsourcen installiert? Sind es evtl. SuSE modifizierte Quellen oder Originalquellen?

Gruß

Fritze

Hallo!

Das fängt schon mal ganz schlecht an. Welche Makedatei hast Du
denn aufgerufen? „make modules“ im Linux-Sourceverzeichnis
funktioniert nicht? Hast Du die Kernelsourcen installiert?
Sind es evtl. SuSE modifizierte Quellen oder Originalquellen?

Also es ist so: Ich habe von einem Hersteller von besonderer Hardware (Messtechnik) Linux-Treiber bekommen. U.a. umfassen die Pakete Quellcode für ein Kernelmodul mit dem sich diese Hardware ansteuern lässt. Die make - Datei, die ich (wie im Installationshandbuch beschrieben) aufrufe, sollte eigentlich einfach „nur“ eine Modul-Datei erzeugen und die entsprechenden Dateien in verschiedene Systemverzeichnisse kopieren. Aber schon beim Kompilieren der Sourcecodes kommen die Fehlermeldungen, die ich hier dargestellt habe.

Ich kompiliere hier also NICHT meinen Kernel neu, sondern versuche ein neues Kernelmodul zu kompilieren.

Florian

Hallo,

Ich kompiliere hier also NICHT meinen Kernel neu, sondern
versuche ein neues Kernelmodul zu kompilieren.

Ja, was meinst Du denn, was ein Kernelmodul ist? Das ist ein ganz tiefer Eingriff ins System. Außerdem wird vermutlich eine bestimmte Version des Originalkernels vorausgesetzt. Kernelmodule laufen nicht ohne weiteres mit jedem Kernel. SuSE Kernel sind gerenell schlecht für solche Sachen, weil sie in vielen Punkten von SuSE selbst – abweichend vom Original – beliebig stark umgebaut werden.

In Deinem tollen Handbuch sollte auch etwas zur benötigten Version stehen. Diese kannst Du Dir dann bei http://www.kernel.org/ oder einem Mirror Deiner Wahl runterladen.

Gruß

Fritze

Hallo!

Ja aber es klappt doch schon beim Kompilieren nicht: Ich hab’ doch noch gar nix eingebunden. Warum kriegt das der Compiler nicht hin?

Florian

Hallo!

Ja aber es klappt doch schon beim Kompilieren nicht: Ich hab’
doch noch gar nix eingebunden. Warum kriegt das der Compiler
nicht hin?

Weil Du vermutlich große Teile eines bestimmten Original-Kernel brauchst, den Du nicht hast. Du brauchst den Rest des Quellcodes, damit der Compiler das übersetzen kann. Lies doch mal die Fehlermeldungen!

Gruß

Fritze