diff options
| author | Christian Marangi | 2025-01-20 16:14:47 +0000 |
|---|---|---|
| committer | Christian Marangi | 2025-01-20 16:22:06 +0000 |
| commit | 334c649a8d9b191c0282f9104b3997b090628f56 (patch) | |
| tree | c3488838b494e83227e107448f0463b26c1ce002 | |
| parent | 4a8717b5e76edbc8e1f63122f8b05685e0b779db (diff) | |
| download | openwrt-334c649a8d9b191c0282f9104b3997b090628f56.tar.gz | |
kernel: fix rootfs initramfs not updating on subsequent single build
There is currently a problem where the rootfs in an initramfs image for
single target build is not updated on subsequent run. This is caused by
a bug introduced in d78dec3e19e3 ("kernel: copy kernel build dir on
Per-Device Initramfs compilation") where the initramfs_data.cpio rm was
moved to PrepareConfigPerRootfs. This caused the side effect of dropping
the rm call for single target build making the kernel reusing the
previous generated initramfs_data.cpio.
To correctly handle this, restore the original location of this call
right after the touch /init call. This way the kernel will always
regenerate the initramfs embedded rootfs ALSO for single target build.
Fixes: d78dec3e19e3 ("kernel: copy kernel build dir on Per-Device Initramfs compilation")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
| -rw-r--r-- | include/kernel-defaults.mk | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index f94ed33230..cbe415abe6 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -175,7 +175,6 @@ define Kernel/PrepareConfigPerRootfs [ ! -d "$(1)" ] || rm -rf $(1); \ mkdir $(1) && $(CP) -T $(LINUX_DIR) $(1); \ touch $(1)/.config; \ - rm -rf $(1)/usr/initramfs_data.cpio*; \ } endef @@ -190,6 +189,7 @@ define Kernel/CompileImage/Initramfs $(call Kernel/Configure/Initramfs,$(if $(1),$(1),$(TARGET_DIR)),$(LINUX_DIR)$(2)); \ $(CP) $(GENERIC_PLATFORM_DIR)/other-files/init $(if $(1),$(1),$(TARGET_DIR))/init; \ $(if $(SOURCE_DATE_EPOCH),touch -hcd "@$(SOURCE_DATE_EPOCH)" $(if $(1),$(1),$(TARGET_DIR)) $(if $(1),$(1),$(TARGET_DIR))/init;) \ + rm -rf $(LINUX_DIR)$(2)/usr/initramfs_data.cpio*; \ $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE), \ $(call locked,{ \ $(if $(call qstrip,$(CONFIG_EXTERNAL_CPIO)), \ |