我认为“/ lib / modules / $(uname -r)/ build”指向不正确的文件夹

我编译/创建自己的内核deb包:

make-kpkg --rootcmd fakeroot --initrd --append-to-version=$version --revision=1 kernel_image kernel_headers 

但是当我在/ lib / modules /(* name_kernel_compiled *)中安装这两个软件包时,它会创建两个链接, 源代码和构建 ,指向带有源代码的文件夹,来自我已经编译过。

source链接是正确的但是build应该指向/ usr / src / linux-( 版本内核 ),你不觉得吗?

/lib/modules//build符号链接应该指向构建目录 – 即在内核构建期间放置目标文件的位置。 在您的情况下,您的源目录与您的构建目录相同,因此两个符号链接将指向同一目录。

解决方案是在make-kpkg文档中:

您可以查看示例目录中的其他示例: /usr/share/kernel-package/examples/以查看是否有其他示例脚本要进入/etc/kernel – 并且您可以创建自己的脚本。


例如,如果您使用linux-headers-*包来编译第三方模块,这样您就不必保留sources目录,您可能会对以下内容感兴趣:

 /etc/kernel/header_postinst.d/link /etc/kernel/header_postrm.d/link /etc/kernel/header_prerm.d/link /etc/kernel/postinst.d/force-build-link /etc/kernel/postrm.d/force-build-link 

这些脚本将尝试确保symlink /lib/modules/$VERSION/build是理智的 – 无论是先安装映像包还是首先安装头包,它都指向头包 – 并负责清理当安装任何一个包时。