不“干净”地重新构建 Linux 内核

不“干净”地重新构建 Linux 内核

我正在构建一个基于 4.11 的自定义内核(对于 Mintx64,如果重要的话)。我已经编译并安装了它以证明它有效。现在我对几个文件做了一些小更改(在驱动程序和网络子系统中,这就是为什么我需要首先编译自定义内核!)

现在我想构建修改后的内核。然而当我跑步时

fakeroot make -j5 deb-pkg LOCALVERSION=myname KDEB_PKGVERSION=1 

构建系统似乎是从“清理”一大堆东西开始的,所以我很快就停止了它。不幸的是,我使用的计算机没有配备好的 CPU,需要花费很多时间从头开始构建。因此,如果可能的话,我宁愿避免再次这样做!

是否可以仅进行增量构建而无需将所有内容都“干净”,或者这是内核构建系统的要求?

我得到的输出是:

CHK      include/config/kernel.release
make clean
CLEAN .
CLEAN arch/x86/lib
...

答案1

这只make clean适用于deb-pkg目标。看一眼scripts/package/Makefile

deb-pkg: FORCE
        $(MAKE) clean
        $(call cmd,src_tar,$(KDEB_SOURCENAME))
        $(MAKE) KBUILD_SRC=
        +$(call cmd,builddeb)

bindeb-pkg: FORCE
        $(MAKE) KBUILD_SRC=
        +$(call cmd,builddeb)

如果你bindeb-pkg相反地构建它,它不会做干净的事情。无论如何,您可能不需要源包。

我怀疑它会进行清理,因为它不想在源 tarball 中压缩构建工件。

答案2

你可以尝试制作那些德布使用不同工具make-kpkg安装的软件包,由apt-get install kernel-package.那么例如

make-kpkg --rootcmd=fakeroot --initrd --uc --us -j2 kernel_image kernel_headers

该命令不应该make clean每次都执行。

答案3

我通过进入 deb-pkg 命令的 makefile 并从脚本中删除“make clean”来修复此问题。这似乎并没有对构建造成任何不良影响,而且我已经运行自定义内核一两周了,没有出现任何问题。嗯嗯!

相关内容