编译linux内核deb-pkg目标而不生成dbg包?

bpa*_*rni 10 linux debian

我正在按照Debian Linux Kernel Handbook 的指示(在大多数情况下)以 debian 方式构建 linux 内核。所以对于编译步骤,我使用 target deb-pkg,并且在成功终止时make deb-pkg在父目录中生成了一些 debian 包:

linux-firmware-image-VERSIONS.deb
linux-headers-VERSIONS.deb
linux-image-VERSIONS.deb
linux-image-VERSION-dbg_VERSION.deb
linux-libc-dev_VERSIONS.deb
Run Code Online (Sandbox Code Playgroud)

很多时候我发现自己只安装linux-image-x.y.z.deb了其他四个未使用的软件包。这不是什么大问题,但我一直发现生成包含内核调试符号 ( linux-image-x.y.z-dbg_x.y.z_arch.deb)的包需要花费大量时间。我想知道是否有一种方法可以指示deb-pkg构建目标不生成调试符号包?

bpa*_*rni 17

MariusMatutiae 给出的答案并不是我所期望的,但我确实查看了一些内核构建脚本并找到了一个可行的解决方案。生成生成的 debian 包的脚本是scripts/package/builddeb. 查看此脚本,使用调试符号构建包的部分被条件包围,具体取决于BUILD_DEBUG给定KCONFIGfor 的grep CONFIG_DEBUG_INFO=y

因此,要停止生成带有调试符号的 debian 包,目前您需要禁用内核CONFIG_DEBUG_INFO选项:

CONFIG_DEBUG_INFO=n
Run Code Online (Sandbox Code Playgroud)


Mik*_*ike 5

内核手册建议这样做:

如果禁用 CONFIG_DEBUG_INFO 选项,构建将使用更少的磁盘空间。仅当您计划在内核上使用诸如 crash、kgdb 和 SystemTap 之类的二进制对象工具时才需要 Debuginfo。

这可以通过以下命令实现:

cd linux-source-4.12
scripts/config --disable DEBUG_INFO
Run Code Online (Sandbox Code Playgroud)