Page 1 of 1

Kernel -Modul -Kompilierungsfehler: Undefinierte Verweise auf __asan_register_Globals und __asan_unregister_Globals

Posted: 17 Feb 2025, 12:49
by Anonymous
Ich versuche "Hallo, World" -Kernelmodul auf Ubuntu 22.04 mit Linux -Kernel 6.1.25 zu bauen. Wenn ich jedoch laufe, begegne ich den folgenden Fehlern in Bezug auf Adressanitizer (Asan):

Code: Select all

make -C /lib/modules/6.1.25-lkp-kernel/build/ M=$(PWD) modules
make[1]: Entering directory '/home/c2kp/kernels/linux-6.1.25'
CC [M]  /home/c2kp/Linux-Kernel-Programming_2E/ch4/helloworld_lkm/helloworld_lkm.o
MODPOST /home/c2kp/Linux-Kernel-Programming_2E/ch4/helloworld_lkm/Module.symvers
ERROR: modpost: "__asan_unregister_globals" [/home/c2kp/Linux-Kernel-Programming_2E/ch4/helloworld_lkm/helloworld_lkm.ko] undefined!
ERROR: modpost: "__asan_register_globals" [/home/c2kp/Linux-Kernel-Programming_2E/ch4/helloworld_lkm/helloworld_lkm.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:126: /home/c2kp/Linux-Kernel-Programming_2E/ch4/helloworld_lkm/Module.symvers] Error 1
make[1]: *** [Makefile:1964: modpost] Error 2
make[1]: Leaving directory '/home/c2kp/kernels/linux-6.1.25'
make: *** [Makefile:9: all] Error 2
Mein Makefile:

Code: Select all

PWD   := $(shell pwd)
KDIR  := /lib/modules/$(shell uname -r)/build/
obj-m += helloworld_lkm.o
ccflags-y += -fsanitize=kernel-address

all:
make -C $(KDIR) M=$(PWD) modules
install:
make -C $(KDIR) M=$(PWD) modules_install
clean:
make -C $(KDIR) M=$(PWD) clean
Warum fällt mein Kernel -Modul aufgrund dieser undefinierten Symbole fehl? Stellen Sie sicher, dass mein Modul korrekt erstellt, wenn der Kernel Kasan aktiviert hat? oder sollte ich Kasan im Kernel deaktivieren?