A new project added by myself found sytem during compilation. the size of the IMA file exceeds the standard. There are many methods on the Internet to solve this problem (modify the size of board_systemimage_partition_size, board_userdataimage_partition_size. IMG compiled to ext4 instead of yaffs2. Check the makefile of the build system.
1. the following code is available in buildi/CORE/makefile. If internal_userimages_use_ext is set to true, the ext file system is compiled. Otherwise, yaffs2 is compiled.
ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true)## generate an ext image# $(1): output filedefine build-systemimage-target @echo "Target system fs image: $(1)" $(call build-userimage-ext-target,$(TARGET_OUT),$(1),system,$(INTERNAL_USERIMAGES_EXT_VARIANT),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE))endefelse # INTERNAL_USERIMAGES_USE_EXT != true## generate a yaffs2 image# $(1): output filedefine build-systemimage-target @echo "Target system fs image: $(1)" @mkdir -p $(dir $(1)) $(hide) $(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT) $(1)endefendif # INTERNAL_USERIMAGES_USE_EXT
2. Check the definition of internal_userimages_use_ext in makefile:
INTERNAL_USERIMAGES_EXT_VARIANT := ifeq ($(TARGET_USERIMAGES_USE_EXT2), true) INTERNAL_USERIMAGES_USE_EXT := true; INTERNAL_USERIMAGES_EXT_VARIANT :=ext2 else ifeq ($(TARGET_USERIMAGES_USE_EXT3), true) INTERNAL_USERIMAGES_USE_EXT := true INTERNAL_USERIMAGES_EXT_VARIANT :=ext3 else ifeq ($(TARGET_USERIMAGES_USE_EXT4, true) INTERNAL_USERIMAGES_USE_EXT := true INTERNAL_USERIMAGES_EXT_VARIANT :=ext4 endif endif endif
By default, target_userimages_use_ext [234] is not defined. That is to say, by default, system. IMG is compiled into a yaffs2 file system.
If necessary, you can go to boardconfig. MK is added to target_userimages_use_ext4: = true to set system. IMG compiled into ext4 file system. After modification, pay attention to init. mount System at RC. IMG also needs to be changed to ext4.