Linux内核模块编译

0xA*_*xAX 5 c linux kernel kernel-module

我尝试编译简单的linux内核模块:

#include <linux/module.h>    
#include <linux/kernel.h>       

int init_module(void)
{
        printk("Hello world 1.\n");
        return 0;
}

void cleanup_module(void)
{
        printk(KERN_ALERT "Goodbye world 1.\n");
}
Run Code Online (Sandbox Code Playgroud)

我的makefile:

obj-m = testmodule.o
KVERSION = $(shell uname -r)
all:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
Run Code Online (Sandbox Code Playgroud)

现在我的.c文件中没有错误.

但是当我在终端尝试make时:make:没有什么可以为'all'做的.

怎么了?

谢谢.

bma*_*ies 5

makefile中的默认命令是

make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
Run Code Online (Sandbox Code Playgroud)

这指示make到cd/to/modules/$(KVERSION)/ build并运行

make module m=YOUR_CURRENT_DIR
Run Code Online (Sandbox Code Playgroud)

反过来,makefile没有找到任何事情要做.据推测,makefile期望在当前目录中找到一些特定的结构.

您需要更仔细地阅读指导您设置此makefile的任何说明.