【问题标题】:Cannot find the kernel-headers although installed尽管已安装,但找不到内核头文件
【发布时间】:2015-11-08 15:07:54
【问题描述】:

我已经为 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 包的解决方案。我安装了这个包(虽然它已经安装在我的系统上)。但后来它找不到这两个标题。我从/usr/src/ 路径找到了软链接autoconf.h 的解决方案,但不幸的是我找不到安装在此路径上的任何标题文件夹。谁能告诉我我的代码哪里出了问题?我用的是F20操作系统,内核版本是3.12.9-301.fc20.x86_64。

【问题讨论】:

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


    【解决方案1】:

    您的 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
    

    【讨论】:

    • 问题依然存在。找不到 linux/config.h。
    【解决方案2】:

    文件 include/linux/config.h 已从 2.6.19 内核中删除。 因此,如果您针对新的模块构建您最喜欢的模块,请记住这一点 2.6.19 内核,您会收到类似以下的错误:

    fatal error: linux/config.h: No such file or directory
     #include <linux/config.h>
    

    源代码:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-27
        • 1970-01-01
        • 2022-12-03
        相关资源
        最近更新 更多