summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Marangi2024-07-07 16:24:24 +0000
committerChristian Marangi2024-07-07 16:24:24 +0000
commit7bffb3f72bbfa06db5c61351f074533ac2d035a4 (patch)
treedd3fa5b9c8840396cea74641039644e5006daa65
parent2ded54972e5acb6df8c323a173a4d8ff27f9f1a0 (diff)
downloadopenwrt-7bffb3f72bbfa06db5c61351f074533ac2d035a4.tar.gz
kernel: fix CopyImage function with Per Device Rootfs
Some target define custom kernel images with KERNEL_INITRAMFS_NAME to reference .elf variant of vmlinux. With Per Device Rootfs, the expected format is image.suffix.extension.ROOTFS_ID, while in CopyImage we are currently generating images with image.suffix.ROOTFS_ID.extension making some target failing. Fix CopyImage function to correctly follow the expected pattern. Fixes: 97fd059e7e6a ("image: respect TARGET_PER_DEVICE_ROOTFS for initramfs") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
-rw-r--r--include/kernel-defaults.mk14
1 files changed, 8 insertions, 6 deletions
diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk
index 84d686cafc..46045b0ed7 100644
--- a/include/kernel-defaults.mk
+++ b/include/kernel-defaults.mk
@@ -136,14 +136,16 @@ ifeq ($(LINUX_KARCH),x86_64)
IMAGES_DIR:=../../x86/boot
endif
+# $1: image suffix
+# $2: Per Device Rootfs ID
define Kernel/CopyImage
- cmp -s $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug || { \
- $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(LINUX_KERNEL)$(1); \
- $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).elf; \
- $(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug; \
+ cmp -s $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug$(2) || { \
+ $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(LINUX_KERNEL)$(1)$(2); \
+ $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).elf$(2); \
+ $(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug$(2); \
$(foreach k, \
$(if $(KERNEL_IMAGES),$(KERNEL_IMAGES),$(filter-out vmlinux dtbs,$(KERNELNAME))), \
- $(CP) $(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/$(IMAGES_DIR)/$(k) $(KERNEL_BUILD_DIR)/$(k)$(1); \
+ $(CP) $(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/$(IMAGES_DIR)/$(k) $(KERNEL_BUILD_DIR)/$(k)$(1)$(2); \
) \
}
endef
@@ -188,7 +190,7 @@ 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)
+ { $(call Kernel/CopyImage,-initramfs,$(2)) },gen-initramfs)
endif
endef
else