Не могу скомпилировать модуль с помощью buildroot - PullRequest
0 голосов
/ 10 февраля 2020

Мне нужно скомпилировать модуль со сборкой 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, но ни один не работает.

Редактировать: Чтобы уточнить, модуль не появится нигде при загрузке.

Заранее спасибо за вашу помощь.

...