kernel: skip rebuilding kernel with ROOTFS_INITRAMFS_SEPARATE
authorChristian Marangi <ansuelsmth@gmail.com>
Sat, 6 Jul 2024 11:40:40 +0000 (13:40 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Sat, 6 Jul 2024 14:20:07 +0000 (16:20 +0200)
With PER_DEVICE_ROOTFS, rebuilding kernel is needed to embed the cpio
image in the kernel image. With ROOTFS_INITRAMFS_SEPARATE, the cpio
image is external hence we can reuse the same kernel image without
rebuilding it.

Link: https://github.com/openwrt/openwrt/pull/12959
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
include/kernel-defaults.mk

index b624405661d39aff70c0d66cb25d74a810da4f21..84d686cafc66d53eb411762a089f0c59e1896ea3 100644 (file)
@@ -183,11 +183,13 @@ endif
        $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),$(STAGING_DIR_HOST)/bin/lzop -9 -f $(if $(2),$(LINUX_DIR)$(2),$(KERNEL_BUILD_DIR))/initrd.cpio)
        $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),$(STAGING_DIR_HOST)/bin/xz -T$(if $(filter 1,$(NPROC)),2,0) -9 -fz --check=crc32 $(if $(2),$(LINUX_DIR)$(2),$(KERNEL_BUILD_DIR))/initrd.cpio)
        $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD),$(STAGING_DIR_HOST)/bin/zstd -T0 -f -o $(if $(2),$(LINUX_DIR)$(2),$(KERNEL_BUILD_DIR))/initrd.cpio.zstd $(if $(2),$(LINUX_DIR)$(2),$(KERNEL_BUILD_DIR))/initrd.cpio)
-endif
+       $(call Kernel/CopyImage,-initramfs$(2))
+else
        +$(call locked,$(if $(2),$(CP) $(LINUX_DIR)$(2)/.config* $(LINUX_DIR) && touch $(LINUX_DIR)/.config && )\
                rm -rf $(LINUX_DIR)/usr/initramfs_data.cpio* $(LINUX_DIR)/.config.prev && \
                $(KERNEL_MAKE) $(KERNEL_MAKEOPTS_IMAGE) $(if $(KERNELNAME),$(KERNELNAME),all) && \
                { $(call Kernel/CopyImage,-initramfs$(2)) },gen-initramfs)
+endif
 endef
 else
 define Kernel/CompileImage/Initramfs