我已经为linux内核编写了一个测试模块。此模块需要标题<linux/config.h>
和<asm/system.h>
。当我发出make
时,它给了我错误
fatal error: linux/config.h: No such file or directory
并且以同样的方式,如果我评论config.h
标题,那么它会显示asm/system.h: No such file or directory
。我尝试搜索问题并遇到解决方案,这些标头属于ti kernel-headers
包。我安装了这个软件包(虽然它已经安装在我的系统上)。但后来它找不到这两个标题。我找到了来自autoconf.h
路径的软链接/usr/src/
的解决方案,但遗憾的是我在此路径上找不到任何头文件夹。谁能告诉我我的代码有什么问题?我使用的是F20操作系统,内核版本是3.12.9-301.fc20.x86_64。
答案 0 :(得分:4)
您的Makefile似乎不知道在哪里搜索内核头文件。你可以尝试使用这个Makefile:只需键入make
,它应该使用当前运行的内核的内核头文件进行构建。
# Run this Makefile as follows:
# (MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
#
KDIR= /lib/modules/$(shell uname -r)/build
obj-m := test.o
all:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
install:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install
depmod -a
clean:
rm -f *~
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
答案 1 :(得分:1)
文件include / linux / config.h已从2.6.19内核中删除。 所以请记住,如果您针对新建立您喜欢的模块 2.6.19内核,你得到一个类似的错误:
fatal error: linux/config.h: No such file or directory
#include <linux/config.h>
的src:
答案 2 :(得分:0)
您可以尝试触摸linux / config.h文件并尝试make。