如何提取内核标头以便稍后编译内核模块



我从git存储库编译了各种Linux内核。有时我将内核复制到其他系统,需要内核标头来编译外部模块。

我尝试运行"make headers_install",但它只生成了一个包含/文件夹。当我尝试将外部模块指向该文件夹时,它抱怨找不到 Makefile。

打包内核标头以进行部署的正确方法是什么?

谢谢。

创建内核软件包 相反,对于基于 dpkg 的发行版,这是"make deb-pkg",对于基于 RPM 的发行版,"make rpm-pkg"。它们创建多个包,其中一个是可用于外部模块构建的包。这应该是 Debian 软件包的 linux-headers-*,对于 RPM 版本来说应该是 "devel" 软件包。

在某些方面,这只是对先前答案的扩展。 如果你查看内核源代码中的文件scripts/package/builddeb,你会发现脚本代码从内核构建中选择构建外部模块所需的文件,并将它们放入/usr/src/linux-headers-$version中。 我可以通过在 builddeb 文件中搜索字符串"# Build 内核头包",在本地内核版本中找到该脚本代码。 如果你想手动做事,你可以手动执行该脚本代码。

最新更新