如何从 Linux 内核源代码创建 Linux 内核头文件?

如何从 Linux 内核源代码创建 Linux 内核头文件?

我正在使用 Tiny Core Linux 并尝试安装 Vmware Tools,这当然需要内核标头:-)。

他们似乎没有在包中提供内核头文件,但他们确实有内核源代码。结果我下载了该源代码,并尝试从中创建标头,但我不知道我在做什么。

在我遇到的谷歌搜索中,听起来像:

make headers_install

可能会做我需要它做的事情,这实际上是一个正确的 make 目标,但它在我身上出现了以下错误:

tc@box:/usr/src/linux-3.16.6$ make headers_install
  CHK     include/generated/uapi/linux/version.h
  HOSTCC  arch/x86/tools/relocs_32.o
In file included from arch/x86/tools/relocs_32.c:1:0:
arch/x86/tools/relocs.h:17:32: fatal error: tools/le_byteshift.h: No such file or directory
 #include <tools/le_byteshift.h>
                                ^
compilation terminated.
scripts/Makefile.host:134: recipe for target 'arch/x86/tools/relocs_32.o' failed
make[1]: *** [arch/x86/tools/relocs_32.o] Error 1
arch/x86/Makefile:181: recipe for target 'archscripts' failed
make: *** [archscripts] Error 2

我是否走在正确的轨道上,而我只是缺少依赖项或其他东西,或者我完全走在错误的轨道上?

有人可以给我一些关于下一步如何进行的指示吗?看起来“tools/le_byteshift.h”不知何故丢失了,但我不确定从哪里开始隔离哪个包才能使其正常工作。

如何从源代码生成内核头文件?任何指点都非常感谢!

答案1

马克·普洛特尼克评论:

VMware 工具需要实际的内核头文件,而不是make headers_install生成的经过清理的头文件。当脚本提示您输入时,只需输入include内核源代码树中目录的完整路径即可。vmware-config-tools.pl并确保内核源与您正在运行的内核完全匹配。后续的内核版本有时会更改数据结构的布局。

相关内容