如何从 Linux Kernel Source 创建 Linux Kernel Headers?

Dou*_*oug 7 kernel-modules header-file linux-kernel

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

看起来他们没有在包中随时可用的内核头文件,但他们确实有内核源代码。因此,我下载了该源代码,并尝试从中创建标题,但我不知道自己在做什么。

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

make headers_install
Run Code Online (Sandbox Code Playgroud)

可能会做我需要它做的事情,这实际上是一个正确的 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
Run Code Online (Sandbox Code Playgroud)

我在这里是在正确的轨道上,我只是缺少依赖项或其他东西,还是我完全在错误的轨道上?

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

如何从源代码制作内核头文件?任何指针都非常感谢!

Ste*_*itt 1

来自Mark Plotnick \xe2\x80\x99s评论

\n
\n

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

\n
\n