我认为“/ 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/
符号链接应该指向构建目录 – 即在内核构建期间放置目标文件的位置。 在您的情况下,您的源目录与您的构建目录相同,因此两个符号链接将指向同一目录。
解决方案是在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
是理智的 – 无论是先安装映像包还是首先安装头包,它都指向头包 – 并负责清理当安装任何一个包时。