无法编译测试内核模块

时间:2018-03-13 20:39:08

标签: c makefile kernel kernel-module

我有这个测试文件

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

static int init_module(void){
    printk(KERN_INFO "Hello world!\n");
    return 0;
}

static void cleanup_module(void){
    printk(KERN_INFO, "I wanna kill my self tbh\n");
}

module_init(init_module);
module_exit(cleanup_module);

和这个make文件

obj-m += test.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

我不太清楚这是什么意思但是我收到错误,说它在当前目录中找不到Makefile,文件和文件夹与源文件一起留在当前目录中makefile,这些文件是.cache.mk文件和.tmp_versions文件夹。

我只是运行make命令,这是我得到的输出:

make -C /lib/modules/4.15.8-1-ARCH/build M=/home/[user]/projects/c/test modules
make[1]: Entering directory '/usr/lib/modules/4.15.8-1-ARCH/build'
scripts/Makefile.build:45: /home/[user]/projects/c/test/Makefile: No such file or directory
make[2]: *** No rule to make target '/home/[user]/projects/c/test/Makefile'.  Stop.
make[1]: *** [Makefile:1510: _module_/home/[user]/projects/c/test] Error 2
make[1]: Leaving directory '/usr/lib/modules/4.15.8-1-ARCH/build'
make: *** [makefile:4: all] Error 2

0 个答案:

没有答案