我刚刚开始学习内核模块编程。我首先编写了一个简单的 hello world 模块。模块的代码如下。
# include <linux/module.h>
# include <linux/kernel.h>
int entry_function(void){
printk("Hello world from init module /n");
return 0;
}
void exit_function(void){
printk("Good Bye from exit module /n");
}
module_init(entry_function);
module_exit(exit_function);
MODULE_AUTHOR("name");
MODULE_LICENSE("GPL");
MODULE_DISCRIPTION("A simple module developed as demo");
我尝试通过制作 make 文件来编译此模块。make 文件的代码如下
obj-m:=helloworld_module.o
我使用以下命令编译了模块
make -C /usr/src/linux-headers-`uname -r` /M=/home/bharat/helloworld/
在此,我收到以下错误:
make[1]: *** No rule to make target 'arch/x86/entry/syscalls/syscall_32.tbl', needed by 'arch/x86/include/generated/asm/syscalls_32.h'. Stop.
arch/x86/Makefile:264: recipe for target 'archheaders' failed
make: *** [archheaders] Error 2
make: Leaving directory '/usr/src/linux-headers-4.15.0-112-generic'***
请帮我纠正这个错误。