我从git存储库编译了各种Linux内核。有时我将内核复制到其他系统并需要内核头来编译外部模块。
我尝试运行“make headers_install”,但它只生成了一个include /文件夹。当我试图将外部模块指向该文件夹时,它会抱怨它无法找到Makefile。
打包内核标头以进行部署的正确方法是什么?
感谢。
答案 0 :(得分:4)
创建内核包,即基于dpkg的发行版的“make deb-pkg”和基于RPM的发行版的“make rpm-pkg”。这些创建了多个包,其中之一是可用于外部模块构建的包。这应该是针对Debian软件包的linux-headers- *和针对RPM版本的“开发”软件包。
答案 1 :(得分:1)
在某些方面,这只是the previous answer的扩展。如果查看内核源代码中的文件scripts / package / builddeb,您将找到脚本代码,该代码从内核构建中选择构建外部模块所需的文件,并将它们放入/ usr / src / linux-headers- $ version。通过搜索字符串"#Build kernel header package"我可以在本地内核版本中找到该脚本代码。在builddeb文件中。如果您想手动执行操作,可以手动执行该脚本代码。