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

我认为“/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*) 中它会创建两个链接,来源和构建,指向包含源文件的文件夹,来自我编译的。

来源链接是正确的,但是建造应该指向 /usr/src/linux-(版本内核),你不这么认为吗?

答案1

符号/lib/modules/<version>/build链接应指向构建目录 - 即内核构建期间放置目标文件的位置。 就您而言,源目录与构建目录相同,因此两个符号链接都将指向同一目录。

答案2

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

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


例如,如果您使用linux-headers-*软件包来编译第三方模块,这样您就不必保留源目录,那么您可能会感兴趣:

/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

这些脚本将尝试确保符号链接/lib/modules/$VERSION/build是合理的 - 即无论您先安装图像包还是先安装头文件包,它都指向头文件包 - 并在安装任一包时负责清理。

相关内容