可加载内核模块中的错误为make:没有什么可以为所有人做的?

时间:2014-04-16 05:37:56

标签: c linux linux-kernel makefile procfs

您编写的用于提供procfs接口的函数只是LKM源代码的一部分。

http://linux.die.net/lkmpg/x769.html有一个使用procfs的简单示例,在此转载:

我复制了上面链接的代码 - 您将在http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html找到构建内核模块的教程。总结是:

1)确保在/ usr / src中安装了内核源代码。

2)创建一个类似于:

的makefile
obj-m = procfs2.o
KVERSION = $(shell uname -r)
all:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

3)使用make命令构建模块4)使用命令insmod procfs2.ko将模块加载到内存中(以root用户身份执行)

我复制了代码并创建了MAKEFILE,稍后如果我从控制台发出make命令,那么它显示为:make:没有什么可以为所有人完成的。有人可以告诉我可能是什么错误??

1 个答案:

答案 0 :(得分:4)

以下是内核模块的Makefile示例。

需要注意的重要一点是,下面显示的点必须替换为 TAB ,将其替换为空格将导致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