构建Linux内核模块的问题

时间:2017-04-08 00:55:47

标签: c linux makefile linux-kernel

我在VMWare上安装了Ubuntu。我的目的是在其中构建内核模块。我是初学者。我写了一个基本模块。但我无法使用'Makefile'编译它。我需要修理什么?

C文件(kernel.c)的内容: -

#include <linux/kernel.h>
MODULE_LICENSE("GPL");

makefile的内容: -

obj-m+=kernel.o

all:
 make -C /lib/modules/$(shell uname -r)/build/ M=$(shell PWD) modules

clean:
 make -C /lib/modules/$(shell uname -r)/build M=$(shell PWD) clean

1 个答案:

答案 0 :(得分:0)

使用TAB作为分隔符,而不是空格。你的Makefile应该写成如下。

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

还应注意$ {PWD}是一个环境变量。无需外壳读取env变量。