【问题标题】:linux module compilng missed folder asmlinux模块编译错过的文件夹asm
【发布时间】:2012-07-28 15:12:11
【问题描述】:

我正在尝试编译驱动程序。我的内核版本是 3.2.0-27-generic。

我留下的只包括我需要的:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/proc_fs.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/dmi.h>

找到这些标题。但是当我尝试编译时,我收到错误,即找不到 asm/cache.h 文件。 当我挖dipper时,我发现没有“asm”这样的文件夹,而是asm-generic,它包含所需的标题。

带有标题的文件夹结构: 为什么改名了?因此,我无法编译其他驱动程序。如果我将“asm-geneic”重命名为“asm”,它将导致其他丢失的标题。这里有什么问题?

【问题讨论】:

    标签: linux module header kernel


    【解决方案1】:

    asm/cache.h 依赖于架构,不同架构有不同的 asm 目录

    arch/powerpc/include/asm/
    arch/x86/include/asm/
    arch/arm/include/asm
    [...]
    

    您不能将 include/asm-generic 重命名为 include/asm,因为您的问题是您无法访问架构 asm 文件夹。尝试检查您的 .config 文件或手动设置 ARCH 变量。

    【讨论】:

    • 啊,我明白了。我添加了新路径 /usr/src/linux-headers-3.2.0-27/arch/x86//include。有用。我的架构是 x86。但是我遇到了这样的新错误 img6.imagebanana.com/img/vqfu6vpy/01375431072012_001.png 。你能提供一些治疗方法吗?我什么都没做,我只包含了标题。
    • 您不需要包含任何内容,它应该会自动运行。试试看这个例子link
    猜你喜欢
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    相关资源
    最近更新 更多