Currently it's not possible to enable building of initramfs images for the devices which need them, leading to production of initramfs images for every device under target which has FEATURES += ramdisk.
So this patch adds a possibility to enable FEATURES += selective-ramdisk and then the device which needs ramdisk can just define NEEDS_INITRAMFS=1. Signed-off-by: Petr Štetiar <[email protected]> --- config/Config-images.in | 2 +- include/image.mk | 11 ++++++++++- scripts/target-metadata.pl | 1 + target/Config.in | 3 +++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/config/Config-images.in b/config/Config-images.in index 8548c7c..befed24 100644 --- a/config/Config-images.in +++ b/config/Config-images.in @@ -8,7 +8,7 @@ menu "Target Images" menuconfig TARGET_ROOTFS_INITRAMFS bool "ramdisk" - default y if USES_INITRAMFS + default y if (USES_INITRAMFS || USES_SELECTIVE_INITRAMFS) help Embed the root filesystem into the kernel (initramfs). diff --git a/include/image.mk b/include/image.mk index 5b02219..4f29002 100644 --- a/include/image.mk +++ b/include/image.mk @@ -382,6 +382,7 @@ define Device/Init SUPPORTED_DEVICES := IMAGE_METADATA := + NEEDS_INITRAMFS := FILESYSTEMS := $(TARGET_FILESYSTEMS) endef @@ -538,7 +539,15 @@ define Device/Build/artifact endef define Device/Build - $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(call Device/Build/initramfs,$(1))) +ifdef CONFIG_TARGET_ROOTFS_INITRAMFS +ifneq ($(CONFIG_USES_SELECTIVE_INITRAMFS),y) + $(call Device/Build/initramfs,$(1)) +else + ifdef NEEDS_INITRAMFS + $(call Device/Build/initramfs,$(1)) + endif +endif +endif $(call Device/Build/kernel,$(1)) $$(eval $$(foreach compile,$$(COMPILE), \ diff --git a/scripts/target-metadata.pl b/scripts/target-metadata.pl index 1239587..d6f2dd4 100755 --- a/scripts/target-metadata.pl +++ b/scripts/target-metadata.pl @@ -32,6 +32,7 @@ sub target_config_features(@) { /^fpu$/ and $ret .= "\tselect HAS_FPU\n"; /^spe_fpu$/ and $ret .= "\tselect HAS_SPE_FPU\n"; /^ramdisk$/ and $ret .= "\tselect USES_INITRAMFS\n"; + /^selective-ramdisk$/ and $ret .= "\tselect USES_SELECTIVE_INITRAMFS\n"; /^powerpc64$/ and $ret .= "\tselect powerpc64\n"; /^nommu$/ and $ret .= "\tselect NOMMU\n"; /^mips16$/ and $ret .= "\tselect HAS_MIPS16\n"; diff --git a/target/Config.in b/target/Config.in index 3cf4231..3533cf9 100644 --- a/target/Config.in +++ b/target/Config.in @@ -46,6 +46,9 @@ config USES_DEVICETREE config USES_INITRAMFS bool +config USES_SELECTIVE_INITRAMFS + bool + config USES_SQUASHFS bool -- 1.9.1 _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
