我对内核编程很陌生,我编写了一个小内核模块,就像这样,
mod.c
#include<linux/kernel.h>
#include<linux/module.h>
#include<sys/sysinfo.h>
int init_module(void)
{
int k;
struct sysinfo info;
printk(KERN_INFO "hello\n");
k = sysinfo(&info);
printk(KERN_EMERG "procs = %d\n", info.procs)
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye\n");
}
和Makefile看起来像这样,
obj-m +=mod.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
如果我从终端发出make,则会出错
致命错误:sys / sysinfo.h:没有这样的文件或目录
答案 0 :(得分:0)
如果有人还在寻找如何做到这一点,我前一段时间解决了这个问题,这是解决方案。 这适用于debian Linux 3.16版本。如果你想看一下这里的代码。
https://github.com/st0rmi/rootkit_programming/blob/master/assignment01/assignment01_mod.c