[Eisfair] Kernel-Module kompilieren
Daniel Vogel
daniel_vogel at t-online.de
Sa Jul 6 00:17:18 CEST 2024
Hallo Uwe,
Am 28.06.24 um 18:24 schrieb Uwe Kunze:
>> sh ./scripts/modules-check.sh modules.order
>> make -f ./scripts/Makefile.build obj=scripts scripts/module.lds
>> make -f ./scripts/Makefile.modpost
>> sed 's/\.ko$/\.o/' modules.order | scripts/mod/modpost -o modules-only.symvers -i vmlinux.symvers -T -
>> ERROR: modpost: "kmem_cache_alloc" [lib/lru_cache.ko] undefined!
>> ERROR: modpost: "kmalloc_caches" [lib/lru_cache.ko] undefined!
>> ERROR: modpost: "__kmalloc" [lib/lru_cache.ko] undefined!
>> ERROR: modpost: "kmem_cache_size" [lib/lru_cache.ko] undefined!
>> ERROR: modpost: "seq_putc" [lib/lru_cache.ko] undefined!
>> ERROR: modpost: "__x86_indirect_thunk_ecx" [lib/lru_cache.ko] undefined!
>> ERROR: modpost: "kfree" [lib/lru_cache.ko] undefined!
>> ERROR: modpost: "kmem_cache_free" [lib/lru_cache.ko] undefined!
>> ERROR: modpost: "seq_printf" [lib/lru_cache.ko] undefined!
>> ERROR: modpost: "memset" [lib/lru_cache.ko] undefined!
>> WARNING: modpost: suppressed 108156 unresolved symbol warnings because there were too many)
>> make[2]: *** [scripts/Makefile.modpost:133: modules-only.symvers] Error 1
>> make[2]: *** Deleting file 'modules-only.symvers'
>> make[1]: *** [Makefile:1826: modules] Error 2
>> make: *** [Makefile:298: vboxdrv] Error 2
das sind (zumindest in den meisten Fällen) Symbole von
Kernel-Funktionen, die nicht aufgelöst werden können. Leider kann ich zu
dem virtualbox Thema selbst nichts sagen, habe aber ein paar
Beispiel-Module von hier übersetzt:
https://github.com/hamjam/lkmpg-examples/tree/master
und auch einmal gezielt z.B. den Funktionsaufruf kfree() eingebaut. Der
Code ist zwar veraltet und musste mit MODULE_LICENSE() Informationen
versehen werden, hat sich dann aber klaglos (und ohne Umbenennung
irgendwelcher Dateien) übersetzen lassen.
Ich könnte mir vorstellen, dass auch dieses Problem mit der Auswertung
der symvers Datei zu tun hat. Baust Du das Modul für die Kernel-Version,
die gerade ausgeführt wird? In dem Fall ist kein switch_config Aufruf
erforderlich, da dies bei der Installation automatisch geschieht.
Wenn Du mir eine Möglichkeit aufzeigst, wie ich möglichst schnell Dein
Problem nachstellen kann, dann kann ich es mir mal anschauen.
--
Gruß Daniel
[eisfair-Team]
Mehr Informationen über die Mailingliste Eisfair