使用 make 创建简单的 hello world 内核模块时出错

使用 make 创建简单的 hello world 内核模块时出错

我刚刚开始学习内核模块编程。我首先编写了一个简单的 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'***

请帮我纠正这个错误。

相关内容