![我认为“/lib/modules/$(uname -r)/build”指向错误的文件夹](https://linux22.com/image/808147/%E6%88%91%E8%AE%A4%E4%B8%BA%E2%80%9C%2Flib%2Fmodules%2F%24(uname%20-r)%2Fbuild%E2%80%9D%E6%8C%87%E5%90%91%E9%94%99%E8%AF%AF%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我使用以下命令编译/创建自己的内核 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
是合理的 - 即无论您先安装图像包还是先安装头文件包,它都指向头文件包 - 并在安装任一包时负责清理。