Linux kernel 错误:没有这样的文件或目录
我是内核模块开发的新手。所以我从简单的helloworld内核模块开始 我正在使用《Linux内核模块编程指南》一书作为参考(它是针对内核2.6的)。 我使用yum安装了kernel-devel和kenel头文件。我用的是软呢帽17。 我发现一个符号链接Linux kernel 错误:没有这样的文件或目录,linux-kernel,makefile,kernel-module,Linux Kernel,Makefile,Kernel Module,我是内核模块开发的新手。所以我从简单的helloworld内核模块开始 我正在使用《Linux内核模块编程指南》一书作为参考(它是针对内核2.6的)。 我使用yum安装了kernel-devel和kenel头文件。我用的是软呢帽17。 我发现一个符号链接 /lib/modules/3.3.4-5.fc17.x86_64/build->/usr/src/kernels/3.3.4-5.fc17.x86_64 现在,我有一个hello-1.c(在我的工作目录中有一个简单的内核模块和一个Makefil
/lib/modules/3.3.4-5.fc17.x86_64/build->/usr/src/kernels/3.3.4-5.fc17.x86_64
现在,我有一个hello-1.c(在我的工作目录中有一个简单的内核模块和一个Makefile)
生成文件是:
obj-m += hello-1.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中时,我得到错误:
make -C /lib/modules/3.3.4-5.fc17.x86_64/build M=/root/kerneldev modules
make: *** /lib/modules/3.3.4-5.fc17.x86_64/build: No such file or directory. Stop.
make: *** [all] Error 2
我让同一个程序在Centos-5.x上成功运行,因为/lib/modules/3.3.4-5.fc17.x86_64/build包含实际模块(不是符号链接)。
问题应该是什么?为什么会有这样的差异?我几乎没有疑问,比如,您在哪里发出make命令。 您当前的目录似乎是
M=/root/kerneldev
您的hello-1.c是否在/root/kerneldev
文件夹中。请尝试“yum安装kernel-devel”(用于内核头)消息
make: *** /lib/modules/3.3.4-5.fc17.x86_64/build: No such file or directory. Stop.
正在告诉您***后面的目录路径不存在<当-C
目录不存在时,code>Make会发出此错误的精确格式。其他不存在的路径情况将导致更多单词。例如,如果/lib/modules/3.3.4-5.fc17.x86_64/build
目录确实存在,但它不包含makefile,make
将明确表示未找到makefile
因此,其他答案为您提供了一些想法,帮助您创建包含正确内容的目录
这个答案也是为了帮助那些有上述形式错误消息的人,以及那些安装“kernel-devel”对他们没有帮助的人,通过解释消息本身。我也在使用带有相同符号链接的fedora 17/18,我没有任何问题。。它是有效的符号链接吗/是否存在usr/src/kernels/3.3.4-5.fc17.x86_64?