LKM ohne Versionsangabe kompilieren

D

dmg239

Hallo,

ich beschäftige mich momentan mit der Programmierung von Kernelmodulen unter Linux. Ich habe gelesen, dass man in älteren Kernelversionen (2.4.x) ein Kernelmodul kompilieren kann, ohne dass dieses nur unter einer bestimmten Kernelversion läuft. In diesen Versionen konnte man einfach mit
Code:
#define __NO_VERSION__
das Inkludieren von version.h unterbinden und das Modul lief (sofern alle benötigen Symbole vorhanden sind, etc) auch unter anderen Kernelversionen.
Nun ist meine Frage: Gibt es eine Möglichkeit, das auch in den 2.6'er Versionen des Kernels zu machen? Ich entwickle momentan unter Ubuntu mit dem Kernel 2.6.38-11-generic-pae.
Die Angabe von __NO_VERSION__ hat leider nichts bewirkt, was ich mir durch
Code:
objdump --full-contents --section=.modinfo
beweisen lassen habe.

MfG
 
Meines Wissens nach funktioniert das Laden, ohne dass Versionsinformationen eingelesen werden, nur noch, wenn in der Kernel-Konfiguration "Forced module loading" aktiviert ist. Dadurch kann man dann mit "modprobe --force <modul>" ein Modul unabhängig von der Kernel-Version laden. Aufgrund dieser Möglichkeit wurde im 2.6er Kernel das __NO_VERSION__ entfernt. Alternativ kann man auch "Module versioning support" deaktivieren, wodurch die Versionsinformationen per Default nicht eingelesen werden, so dass man auch Module nutzen kann, die für eine andere Kernel-Version kompiliert wurden. Beides ist aber keine gute Idee.
 
Zurück
Oben