我已经在我的机器上下载,编译和安装了最新的内核。现在,我正在尝试编写内核模块。当我尝试编译它时,我得到类似的错误 - 致命错误:sys / syscall.h:没有这样的文件或目录 致命错误:linux / module.h:没有这样的文件或目录 我尝试以包含来自我最新内核源的必要目录的方式重写makefile,但问题仍然存在。
需要你的建议。
答案 0 :(得分:1)
您不能在内核中使用libc头。
此外,您似乎包含syscall.h。 Syscalls本质上是用户空间调用。内核中不需要系统调用。
linux / module.h的include应该可行。你能给我们你正在使用的Makefile吗?
答案 1 :(得分:0)
您的Makefile
看起来应该是这样的。
hello.ko: hello.c
make ARCH=um -C "/home/abhijit/play/kernel/linux-2.6" M=`pwd` modules
obj-m:= hello.o
objs:= hello.o
您应该在源文件中定义module_init
和module_exit
。
你有这些东西吗?