linux模块compilng错过文件夹asm

Teb*_*ebe 5 linux kernel module header

我正在尝试编译驱动程序.我的内核版本是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>
Run Code Online (Sandbox Code Playgroud)

找到这些标题.但是当我尝试编译时,我得到的错误是找不到asm/cache.h文件.当我挖杓子时,我发现没有"asm"这样的文件夹,但asm-generic并且它包含所需的标题.

它是带有标题的文件夹结构: 为什么要重命名?因此我无法编译其他驱动程序.如果我将"asm-geneic"重命名为"asm",则会导致其他缺少的标题.这有什么不对?

Fed*_*ico 4

asm/cache.h与架构相关,不同的架构有不同的 asm 目录

arch/powerpc/include/asm/
arch/x86/include/asm/
arch/arm/include/asm
[...]
Run Code Online (Sandbox Code Playgroud)

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