Hallo an alle Ich habe mir das Buch "Linux-Gerätetreiber" gekauft. Und nun will ich anfangen aber wenn ich mein erstes Modul erstelle bekomme ich eine Fehlermeldung: Modul.o: kernel-module version mismactch Modul.o was compiled for kernel version 2.4.3 whil this kernel is version 2.4.19 Wie ihr schon seht habe ich den Kernel 2.4.19 und außerdem noch 2.4.4 auf der Platte. SuSE schreibt einen Lösungsweg aber dieser klappt nicht. Außerdem habe ich den Kernel 2.4.19 ohne Versionsunterstützung gebaut. Ich hoffe ihr könnt mir helfen. Schon mal Danke Tobi -- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net
Hallo Tobias, Du mußt den Kernel neu übersetzen, da gibt es eine Option namens "kernel version information" in den "general settings" und wenn du die rausnimmst, dann klappt das mit dem modul auch. kleiner hinweis: das erste modul auf dem linux-gerätetreiber buch schreibt seine meldung übrigens nicht auf den bildschirm, sondern kann durch eingabe von "dmesg" abgerufen werden. gruß sebastian
sebastian.wolfgarten@gmx.net [20020815 00:58]:
Du mußt den Kernel neu übersetzen, da gibt es eine Option namens "kernel version information"
Nein, die Fehlermeldung hat mit der Option nichts zu tun. Beim Bauen
des Kernelmoduls sind höchstwahrscheinlich die falschen Header
(/usr/include/linux bzw. /usr/include/asm) verwendet worden.
Für 2.4.X Kernel ist der korrekte Compilerschalter
-I/lib/modules/
Hallo, ich hatte dasselbe Problem und damit war es auf jeden Fall gelöst. Gruß Sebastian
On Don, 15 Aug 2002 at 02:06 (+0200), Philipp Thomas wrote: [...]
Für 2.4.X Kernel ist der korrekte Compilerschalter -I/lib/modules/
/build/include
Bei mir: jan@k500:/lib/modules/2.4.18-4GB> pwd /lib/modules/2.4.18-4GB jan@k500:/lib/modules/2.4.18-4GB> ll build lrwxrwxrwx 1 root root 26 Apr 13 20:24 build -> /usr/src/linux-2.4.18.SuSE jan@k500:/lib/modules/2.4.18-4GB> ll /usr/src/linux lrwxrwxrwx 1 root root 17 Apr 13 21:34 /usr/src/linux -> linux-2.4.18.SuSE Also lande ich doch wieder in /usr/src/linux, oder? Wo ist der Unterschied?
Die Header in /usr/include/linux sind für user-space code! Dies sind die Kernel-Header gegen die glibc compiliert wurde und hat mit dem laufenden Kernel überhaupt nichts zu tun.
Dazu eine Anmerkung: Ich hatte bei einer Installation in einem Zustand geistiger Umnachtung nicht die suse-kernel-Quellen sondern die des normalen Kernels installiert. Trotzdem war /lib/modules/2.4.18-4GB/build weiterhin auf das nicht existierende Verzeichnis /usr/src/linux-2.4.18.SuSE gelinkt. Nicht schön. Jan
Jan.Trippler@t-online.de (Jan Trippler) [15 Aug 2002 21:23]:
jan@k500:/lib/modules/2.4.18-4GB> pwd /lib/modules/2.4.18-4GB jan@k500:/lib/modules/2.4.18-4GB> ll build lrwxrwxrwx 1 root root 26 Apr 13 20:24 build -> /usr/src/linux-2.4.18.SuSE jan@k500:/lib/modules/2.4.18-4GB> ll /usr/src/linux lrwxrwxrwx 1 root root 17 Apr 13 21:34 /usr/src/linux -> linux-2.4.18.SuSE
Also lande ich doch wieder in /usr/src/linux, oder? Wo ist der Unterschied?
Nein, denn /usr/src/linux ist ja nur ein Symlink. Den hätten wir liebend gerne entfernt, aber es geht einfach zu viele Software und Dokumentation davon aus, dort die Kernel-Quellen zu finden.
Dazu eine Anmerkung: Ich hatte bei einer Installation in einem Zustand geistiger Umnachtung nicht die suse-kernel-Quellen sondern die des normalen Kernels installiert. Trotzdem war /lib/modules/2.4.18-4GB/build weiterhin auf das nicht existierende Verzeichnis /usr/src/linux-2.4.18.SuSE gelinkt. Nicht schön.
Das ist ja vollkommen OK. /lib/modules/<version>/build ist ein Link, der beim Installieren des Kernels angelegt wird, denn er bezieht sich auf die Quellen, aus denen er gebaut wurde. Wenn diese Quellen nicht vorhanden sind, zeigt der Symlink halt ins Leere. Den Link dann auf die "normalen" Quellen zu legen, wäre grundsätzlich falsch, denn diese passen nicht zum laufenden Kernel! Philipp -- Philipp Thomas work: pthomas@suse.de Entwicklung, SuSE Linux AG private: philippt@t-online.de
On Fre, 16 Aug 2002 at 00:07 (+0200), Philipp Thomas wrote: [...]
Das ist ja vollkommen OK. /lib/modules/<version>/build ist ein Link, der beim Installieren des Kernels angelegt wird, denn er bezieht sich auf die Quellen, aus denen er gebaut wurde. Wenn diese Quellen nicht vorhanden sind, zeigt der Symlink halt ins Leere. Den Link dann auf die "normalen" Quellen zu legen, wäre grundsätzlich falsch, denn diese passen nicht zum laufenden Kernel!
Wäre es dann nicht besser, den Link erst mit dem Paket der SuSE-Kernel-Quellen anzulegen? Ein ins Leere laufender Symlink schafft IMHO nur Verwirrung. Jan
Am Donnerstag, 15. August 2002 00:01 schrieb tobolff@gmx.net:
Modul.o: kernel-module version mismactch Modul.o was compiled for kernel version 2.4.3 whil this kernel is version 2.4.19
Wie ihr schon seht habe ich den Kernel 2.4.19 und außerdem noch 2.4.4 auf der Platte. SuSE schreibt einen Lösungsweg aber dieser klappt
Hm, auf welches Kernelverzeichnis zeigt /usr/src/linux? Sollte der 2.4.19er sein, wenn Du damit "fährst". -- Machs gut | http://www.iiv.de/schwinde/buerger/tremmel/ Manfred | http://www.knightsoft-net.de
Moin Moin,
From:
Ich habe mir das Buch "Linux-Gerätetreiber" gekauft. Und nun will ich anfangen aber wenn ich mein erstes Modul erstelle bekomme ich eine Fehlermeldung:
Modul.o: kernel-module version mismactch Modul.o was compiled for kernel version 2.4.3 whil this kernel is version 2.4.19
Schaue Dir mal in dem Buch die Kapitel über "Versions abhängigkeiten" an. Wie hast Du die Kernel-Header eingebunden? Mit "" oder <> ? Bedenke, daß bei 2.4.er Kerneln /usr/include/linux __kein__ link auf die richtigen Kernel-Header sind! (Die sollten in /usr/src/linux/include/linux liegen) Ich habe mir extra einen Test - Kernel kompiliert, ohne Version kontrolle und so.
Wie ihr schon seht habe ich den Kernel 2.4.19 und außerdem noch 2.4.4 auf der Platte. SuSE schreibt einen Lösungsweg aber dieser klappt nicht. Außerdem habe ich den Kernel 2.4.19 ohne Versionsunterstützung gebaut.
Vermutlich nimmst Du einfach falsche Header-Dateien, aber das ist doch alles gut in dem Buch beschireben, halt nur etwas zerstreut :)) Ciao Andre
participants (6)
-
Andr� Heine
-
Jan.Trippler@t-online.de
-
Manfred Tremmel
-
Philipp Thomas
-
Sebastian Wolfgarten
-
tobolff@gmx.net