我编译了我自己修补的上游 linux 内核版本。到目前为止,我一直使用make-kpkg
,方法是运行
CONCURRENCY_LEVEL=9 fakeroot make-kpkg --initrd --append-to-version=-patched kernel_image kernel_headers kernel_debug.
(我以前在某处读过关于该kernel_debug
目标的内容,但似乎没有记录)我想要的是行为和功能与相应 ubuntu 软件包完全相同的软件包,因为这似乎并非如此。上述命令创建了内核头文件包,但 virtualbox dkms 只是跳过了此内核模块的构建,因为它找不到源代码(我检查过,它们存在于 /usr/src 中)。
我也需要一个已编译内核的调试包,因为 kdump 和其他调试工具都需要它,而且我真的很希望它是一个 ubuntu 包,而且似乎创建的 dbg 包相当小。
除了图像、标题和调试(通过 ddebs 存储库)之外,ubuntu 似乎还提供 linux-image-extra 和 linux-tools 包,但我找不到它们是“make-kpkg”的任何目标,它们是自动集成的吗?
那么我怎样才能构建我需要的所有包呢?
编辑:我发现了以下情况:
- 对于调试包,您需要将
CONFIG_DEBUG_INFO=y
其与目标一起包含在内核配置中kernel_debug
。 - 对于找不到内核源的 dmks:它似乎
make-kpkg
不是为了为您自己以外的人创建包,因为包会创建指向构建目录的链接,如果您问我,这是疯狂的,如果您删除构建目录,则标题包将完全损坏,因为链接/lib/modules/<kernel-version>/build
指向构建目录。
有没有比这更好的方法呢?make-kpkg
因为我不需要创建包含指向构建目录的链接的包的工具。为什么有人需要一个自动化工具,然后你需要在之后修复它?