Before or in parallel with the root filesystem customization, embedded projects usually require an image size optimization that will reduce the boot time and memory usage.
Smaller images mean less storage space, less transmission time, and less programming time, which saves money both in manufacturing and field updates.
By default, the compressed Linux kernel image (zImage) for the wandboard-quad
is around 5.2 MB. This recipe will show how we can reduce that.
An example of a minimal kernel configuration for a Wandboard that is able to boot from a microSD card root filesystem is the arch/arm/configs/wandboard-quad_minimal_defconfig
file that follows:
CONFIG_KERNEL_XZ=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_BLK_DEV_INITRD=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_EMBEDDED=y CONFIG_SLOB=y CONFIG_ARCH_MXC=y CONFIG_SOC_IMX6Q=y CONFIG_SOC_IMX6SL=y CONFIG_SMP=y CONFIG_VMSPLIT_2G=y CONFIG_AEABI=y CONFIG_CPU_FREQ=y CONFIG_ARM_IMX6_CPUFREQ=y CONFIG_CPU_IDLE...