Linux kernel Can';t使用buildroot编译模块

Linux kernel Can';t使用buildroot编译模块,linux-kernel,qemu,buildroot,Linux Kernel,Qemu,Buildroot,我需要用buildroot编译一个模块,这样我就可以使用QEMU+gdb调试它,而当前的指南不起作用。根据文档,我尝试了最基本的表单,但没有任何效果。也许我错过了什么,但我现在真的看不见了。我正在使用以下命令: 模块目录包含以下文件: /home/xx/git/buildroot/package/kernel_module/ Config.in hello.c kernel_module.mk Makefile Config.in 1 config BR2_

我需要用buildroot编译一个模块,这样我就可以使用QEMU+gdb调试它,而当前的指南不起作用。根据文档,我尝试了最基本的表单,但没有任何效果。也许我错过了什么,但我现在真的看不见了。我正在使用以下命令:

模块目录包含以下文件:

  /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))
生成文件

    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)
1#包括
2#包括
3.
4模块许可证(“GPL”);
5.
6静态int myinit(void)
7 {
8 printk(KERN_INFO“hello init\n”);
9返回0;
10 }
11
12静态无效myexit(无效)
13 {
14 printk(KERN_INFO“hello exit”\n);
15 }
16
17模块_init(myinit)
18模块_出口(myexit)
我还编辑了packages/Config.in以包含模块路径。我试过其他的回答,但都不起作用

编辑:澄清一下,当我启动时,模块不会出现在任何地方


提前感谢您的帮助。

问题不清楚是什么问题。模块没有生成吗?它是否显示在目标rootfs中?它不能加载吗?好的。我补充了一项澄清。该模块不会出现在目标rootfs中的任何位置。没有构建错误或任何引导我解决问题的东西。它甚至是构建的吗?是否有目录输出/构建/内核模块?当您运行
make kernel module
时,您得到了什么输出?模块没有生成,并且
make kernel\u module
工作正常。有趣。谢谢。您当时没有在“make menuconfig”中选择它。