尽管已安装,但找不到内核头文件

时间:2014-03-16 07:12:20

标签: linux linux-kernel linux-device-driver fedora

我已经为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。

3 个答案:

答案 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:

http://www.linuxquestions.org/questions/linux-kernel-70/removal-of-include-linux-config-h-file-in-2-6-19-kernel-506363/

答案 2 :(得分:0)

您可以尝试触摸linux / config.h文件并尝试make。