Kernelversion (grsec) vs. Modulversion

18/04/2014 - 13:35 von Kai Bojens | Report spam
Moin.

Ich habe mich am „Linux Kernel Module Programming Guide“[1] einmal
langgehangelt und zumindest auf meinem Fedora 20 keinerlei Probleme. Das
Hello World Beispiel kompiliert ohne Probleme und làsst sich fehlerfrei zum
Kernel hinzufügen und entfernen.

Auf meinem Debian habe ich jedoch ein Problem. Da ist der Kernel erstens von
kernel.org, zweitens mit grsec gepatcht und drittens von mir selber gebaut.
Das ist auch kein Problem - der Kernel làuft ohne zu murren fehlerfrei. Wenn
ich aber das Hello World Kernemodul nach dem Kompilieren (das làuft übrigens
fehlerfrei) in den Kernel laden will, bekomme ich ein Versionsproblem.

Konkret:

$: insmod hello-world-module.ko
Error: could not insert module hello-world-module.ko: Invalid module format

$: modinfo hello-world-module.ko
filename: /root/module/hello-world-module.ko
depends:
vermagic: 3.13.10-grsec SMP mod_unload modversions KERNEXEC_BTS UDEREF
REFCOUNT GRSEC

aus dmesg:

version magic '3.13.10-grsec SMP mod_unload modversions KERNEXEC_BTS UDEREF
REFCOUNT GRSEC ' should be '3.13.10-grsec SMP mod_unload modversions
KERNEXEC_BTS UDEREF REFCOUNT CONSTIFY_PLUGIN STACKLEAK_PLUGIN GRSEC
RANDSTRUCT_PLUGIN_[lange Hash Summe]'

Das Problem ist zwar im Kern hier[2] erklàrt - jedoch unterscheiden sich die
Versionen in meinem Fall offenbar um von grsec hinzugefügte Parameter, die
ich im Makefile in /usr/src/linux nicht finden kann. Anscheinend ist das
„GRSEC“ in meinem Modul in der Kernelversion erweitert zu „CONSTIFY_PLUGIN
STACKLEAK_PLUGIN GRSEC RANDSTRUCT_PLUGIN_[lange Hash Summe]“.

Da stehe ich jetzt auf dem Schlauch.

[1] http://tldp.org/LDP/lkmpg/2.6/html/
[2] http://tldp.org/LDP/lkmpg/2.6/html/x380.html
 

Lesen sie die antworten

#1 Burkhard Ott
18/04/2014 - 17:43 | Warnen spam
On Fri, 18 Apr 2014 13:35:28 +0200, Kai Bojens wrote:

Moin.

Ich habe mich am „Linux Kernel Module Programming Guide“[1] einmal
langgehangelt und zumindest auf meinem Fedora 20 keinerlei Probleme. Das
Hello World Beispiel kompiliert ohne Probleme und làsst sich fehlerfrei
zum Kernel hinzufügen und entfernen.

Auf meinem Debian habe ich jedoch ein Problem. Da ist der Kernel erstens
von kernel.org, zweitens mit grsec gepatcht und drittens von mir selber
gebaut.
Das ist auch kein Problem - der Kernel làuft ohne zu murren fehlerfrei.
Wenn ich aber das Hello World Kernemodul nach dem Kompilieren (das làuft
übrigens fehlerfrei) in den Kernel laden will, bekomme ich ein
Versionsproblem.



Die Option kannst Du im Kernel ausschalten, dann sollte das funktionieren.

Ähnliche fragen