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

时间:2014-01-04 18:12:00

标签: linux linux-kernel linux-device-driver

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

  1. Module.symvers
  2. .mod.c
  3. 内置in.o
  4. .mod.o
  5. 的.o
  6. modules.order
  7. .ko
  8. 到目前为止,我只对* .ko文件感兴趣而且不关心任何其他文件。但我仍然想知道其他文件,它们用于什么? 请回复

1 个答案:

答案 0 :(得分:1)

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

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