0

我对内核编程很陌生,我写了一个像这样的小内核模块,

模组

#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:没有这样的文件或目录

你能告诉我这里有什么问题吗?

4

1 回答 1

0

如果有人仍在寻找如何做到这一点,我前段时间解决了这个问题,这是解决方案。这适用于 debian Linux 3.16 版本。如果你想看看这里的代码。

https://github.com/st0rmi/rootkit_programming/blob/master/assignment01/assignment01_mod.c

于 2014-11-28T17:18:58.267 回答