ASM与ASM-Linux标头中的通用-它们是相同的吗 [英] asm vs asm-generic in linux headers -- are they same

查看:21
本文介绍了ASM与ASM-Linux标头中的通用-它们是相同的吗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在包含目录/usr/src/linux-headers-5.7.0-kali1-common/include.中包含的KALI内核5.7.0标头上的Linux头文件文件夹中在这个文件夹中,我的头文件包含在子文件夹中,如asm-Generic、Linux、uapi、acpi、crypto等。但是在头文件中,即在linux/module e.h内部,有一个头文件引用,如下所示

    #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标头是内核模块所需的标头。

您可以从下面的帖子中获得更多信息

用另一种方式回答此问题。

您似乎正在尝试创建内核模块。

要构建内核模块,您需要内核头或编译后的内核源代码。但是,我不了解Kali Linux,因此我在此仅提供一般性建议。

从哪里获取它们

  • 某些发行版(如Ubuntu)预置了linux标头。

    • 例如:Ubuntu有/usr/src/linux-headers-$(uname -r)/include
  • sudo apt-get install linux-headers-$(uname -r)

    下载
    • 似乎Kali Linux2.0可能需要更多操作。找到this post可能会有所帮助。
  • 您自己构建

    1. 签出所需发行版的Linux内核代码。
    2. 使用make menuconfig设置内核配置(您可能会在这里遇到一些问题。)可能需要多个包)
    3. 使用make modules_prepare编译内核,编译驱动程序的Essential Module.symvers。它比编译一个完整内核花费的时间要少得多。
我假设您已经找到了一个内核模块构建示例。如果没有,您可以咨询官方内核模块documentation。如果你花点时间阅读前两章,会有很大帮助。

或其他example

这篇关于ASM与ASM-Linux标头中的通用-它们是相同的吗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆