0

私はカーネルプログラミングに非常に慣れていないので、次のような小さなカーネルモジュールを作成しました。

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: No such file or directory

ここで何が問題なのか教えていただけますか?

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 に答える