Мне нужно скомпилировать модуль со сборкой root, чтобы я мог отлаживать его с помощью QEMU + gdb, и текущие руководства не работают. Я пробовал большинство основных c форм в соответствии с документацией, и ничего не получалось. Может быть, я что-то упускаю, но я действительно не вижу этого сейчас. Я использую следующее:
Модуль dir содержит эти файлы:
/home/xx/git/buildroot/package/kernel_module/
Config.in
hello.c
kernel_module.mk
Makefile
Config.in
1 config BR2_PACKAGE_KERNEL_MODULE
2 bool "kernel_module"
3 depends on BR2_LINUX_KERNEL
kernel_module.mk
1 KERNEL_MODULE_SITE = $(KERNEL_MODULE_PKGDIR)
2 KERNEL_MODULE_SITE_METHOD = local
3 $(eval $(kernel-module))
4 $(eval $(generic-package))
Makefile
1 obj-m += hello.o
2 ccflags-y := -DDEBUG -g -std=gnu99 -Wno-declaration-after-statement
3
4 .PHONY: all clean
5
6 all:
7 $(MAKE) -C '$(LINUX_DIR)' M='$(PWD)' modules
8
9 clean:
10 $(MAKE) -C '$(LINUX_DIR)' M='$(PWD)' clean
привет. c
1 #include <linux/module.h>
2 #include <linux/kernel.h>
3
4 MODULE_LICENSE("GPL");
5
6 static int myinit(void)
7 {
8 printk(KERN_INFO "hello init\n");
9 return 0;
10 }
11
12 static void myexit(void)
13 {
14 printk(KERN_INFO "hello exit\n");
15 }
16
17 module_init(myinit)
18 module_exit(myexit)
Я также отредактировал пакеты / Config.in, чтобы включить путь к модулю. Я попробовал другие ответы на SO, но ни один не работает.
Редактировать: Чтобы уточнить, модуль не появится нигде при загрузке.
Заранее спасибо за вашу помощь.