ASM与ASM-Linux标头中的通用-它们是相同的吗 [英] asm vs asm-generic in linux headers -- are they same
本文介绍了ASM与ASM-Linux标头中的通用-它们是相同的吗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
#include <asm/module.h> // top of linux/module.h
但实际上我在安装头文件时并没有包含在头文件中的ASM文件夹。
所以我脑海中浮现的一个解决方案是。可能的解决方案是:将引用从asm/*更改为asm-Generic/*,就像在linux/module e.h和其他我可能使用的文件中一样,从asm/module e.h更改为asm-Generic/module e.h。我想知道ASM和ASM-Generic是一样的吗?意味着它们包含相同的文件和结构,或者我可能导致问题的地方有什么不同
如果我更正了Include Reference中的目录名,那么这有意义吗?或者,如果我将头文件的Include List中的头子目录名称从ASM更改为ASM-GENERIC,那么在编译模块时会遇到问题吗?如果我不这样做,头文件将丢失
推荐答案
简略回答
它们不相同。
内核开发人员可能会在ASM标头中包括ASM泛型标头,而ASM标头是内核模块所需的标头。
您可以从下面的帖子中获得更多信息
- in linux kernel, asm or asm-generic?
- Linux kernel headers' organization
- linux module compilng missed folder asm
用另一种方式回答此问题。
您似乎正在尝试创建内核模块。
要构建内核模块,您需要内核头或编译后的内核源代码。但是,我不了解Kali Linux,因此我在此仅提供一般性建议。
从哪里获取它们
某些发行版(如Ubuntu)预置了linux标头。
- 例如:Ubuntu有
/usr/src/linux-headers-$(uname -r)/include
- 例如:Ubuntu有
下载sudo apt-get install linux-headers-$(uname -r)
- 似乎Kali Linux2.0可能需要更多操作。找到this post可能会有所帮助。
您自己构建
- 签出所需发行版的Linux内核代码。
- 使用
make menuconfig
设置内核配置(您可能会在这里遇到一些问题。)可能需要多个包) - 使用
make modules_prepare
编译内核,编译驱动程序的Essential Module.symvers。它比编译一个完整内核花费的时间要少得多。
或其他example
这篇关于ASM与ASM-Linux标头中的通用-它们是相同的吗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文