在root上编译内核模块

时间:2015-08-11 16:40:42

标签: kernel-module

所以我有一个典型的hello world内核模块和相应的Makefile放在root下,当我尝试通过输入make编译时,我得到以下错误:

  

scripts / Makefile.build:128:kbuild:Makefile.build包含不正确

但是,如果我在home子目录下执行,则everythig编译就好了。

以下是hello.c的内容:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>

static int __init hello_init(void)
{
    printk(KERN_ALERT "Hello world\n");
    return 0;
}

static void __exit hello_exit(void)
{
    printk(KERN_ALERT "Goodbye\n");
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("Dual BSD/GPL");

和Makefile:

obj-m += hello.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

有人可以解释这种行为的原因吗?

0 个答案:

没有答案