linux - 编译linux设备驱动程序时创建的各种文件是什么?

标签 linux linux-kernel linux-device-driver

我有一个非常基本的问题。当我们使用 makefile 创建驱动程序时,我们会看到创建了许多文件,如下所示

  1. 模块.symvers
  2. .mod.c
  3. 内置.o
  4. .mod.o
  5. .o
  6. 模块.顺序
  7. .ko

到目前为止,我只对 *.ko 文件感兴趣,不关心任何其他文件。但我仍然想知道其他文件,它们有什么用? 请回复

最佳答案

来自评论中指出的文档和其他一些来源( 123 ):

  1. Module.symvers - “Module.symvers 包含内核构建中所有导出符号的列表。”
  2. .mod.c - “是一个基本上包含有关模块的信息(版本信息等)的文件”
  3. built-in.o - 该文件与内核模块无关,而是与正常的内核构建相关。 “Kbuild 编译所有 $(obj-y) 文件。然后调用“$(LD) -r”将这些文件合并到一个built-in.o 文件中。built-in.o 随后链接到 vmlinux由父 Makefile”
  4. .mod.o - 编译 .mod.c 文件产生的 objcet 文件。
  5. .o - 编译模块源文件产生的目标文件。
  6. modules.order - “如果您一起编译多个模块,它将列出 .ko 的编译和创建的顺序”
  7. .ko - 加载到内核中的最终内核模块二进制文件。

关于linux - 编译linux设备驱动程序时创建的各种文件是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20924738/

相关文章:

linux - polkitd未注册身份验证代理的解释

linux-kernel - 通过 NUMA 环回优化套接字数据传输

node.js - NodeJS 是否遵守 Docker 虚拟化和资源限制?

c - 在用户空间启用写入组合 IO 访问

c - 错误 : "device or resource busy" in removing proc module

linux - 根据另一个文件中的字符串拆分一个文件

linux - stat() 系统函数在 Linux 7.6 中不起作用

linux - Linux中如何获取进程的页表内容?

linux - 针对错误的内核头文件编译 Linux 内核模块,会发生什么?

c++ - 在 Linux 上检测事件触摸屏(如果是多点触控)