我正在尝试构建一个内核模块。我在软呢帽 25
这是我的制作文件:
obj-m += simple.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
这是简单的.c文件:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
/* This function is called when the module is loaded. */
int simple_init(void)
{
printk(KERN_INFO "Loading Modulen");
return 0;
}
/* This function is called when the module is removed. */
void simple_exit(void) {
printk(KERN_INFO "Removing Modulen");
}
/* Macros for registering module entry and exit points. */
module_init( simple_init );
module_exit( simple_exit );
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Simple Module");
MODULE_AUTHOR("SGG");
使用 make 命令后我遇到的错误:
make -C /lib/modules/4.11.3-202.fc25.x86_64/build M=/home/nubian/Downloads/ch02/ch2 modules
make[1]: *** /lib/modules/4.11.3-202.fc25.x86_64/build: No such file or directory. Stop.
Makefile:7: recipe for target 'default' failed
make: *** [default] Error 2
在
调用递归 make 时,应始终使用$(MAKE)
永远不要make
。 但是,这不是您的问题。
您的问题是您没有为当前运行的内核安装模块构建环境。 如果你安装它,它将创建你为内核构建模块所需的目录。
例如,请参阅此页面上的 yum install
命令。