首页 > 解决方案 > 无法使用 buildroot 编译模块

问题描述

我需要使用 buildroot 编译一个模块,这样我就可以使用 QEMU+gdb 对其进行调试,而当前的指南不起作用。我根据文档尝试了最基本的形式,但没有任何效果。也许我错过了一些东西,但我现在真的看不到它。我正在使用以下内容:

模块目录包含这些文件:

  /home/xx/git/buildroot/package/kernel_module/
    Config.in
    hello.c
    kernel_module.mk
    Makefile

配置文件

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

你好ç

    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)

我还编辑了 packages/Config.in 以包含模块路径。我在 SO 上尝试了其他回应,但没有任何工作。

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

在此先感谢您的帮助。

标签: linux-kernelqemubuildroot

解决方案


推荐阅读