c - 可加载内核模块错误 make : nothing to be done for all?

标签 c linux linux-kernel makefile procfs

您编写的用于提供 procfs 接口(interface)的函数只是作为 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: nothing to be done for all。有人可以告诉我可能是什么错误吗??

最佳答案

这是内核模块的 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

关于c - 可加载内核模块错误 make : nothing to be done for all?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100878/

相关文章:

linux - copy_from_user() 运行在用户空间还是内核空间?

linux - 进程控制 block ,Linux 中的进程描述符和 task_struct?

c - 使用共享内存以及如何使用 IPC_RMID 正确取消分配空间

linux-kernel - vm可以使用多少内存

linux - 为什么 linux 内核中的这段代码不会导致死循环?

c - 如何在 C 中使用 sscanf() 方法

c - 如何从 STDIN 读取 C 函数并在程序中运行它?

c - C中多个头文件重定义错误

c++ - 当列表/数组中的元素数量可变时,哪种结构最适合实现?

linux - 如何获取我的队列 :work to work on digital ocean server