ZHCAG72 September 2026
为了快速实现快速启动功能,TI提供了额外的overlay config来帮助裁减内核。在内核代码中,kernel/configs/ti_early_display.config文件提供了额外的内核模块配置。该配置中有如下的描述,详细说明了关闭该模块能够带来的启动优化。
#This reduces kernel image size by 0KB and boot time by 144ms
CONFIG_RODATA_FULL_DEFAULT_ENABLED=n
为了应用预设的快速启动配置,需要修改相应的makerule。首先进入Linux SDK安装目录下的makerules文件夹,修改Makefile_linux相应部分,将ti_early_display.config加入编译命令。
linux: linux-dtbs
@echo =================================
@echo Building the Linux Kernel
@echo =================================
$(MAKE) -C $(LINUXKERNEL_INSTALL_DIR) ARCH=arm64 CROSS_COMPILE=$(CROSS_COMPILE) defconfig ti_arm64_prune.config ti_early_display.config
$(MAKE) -j $(MAKE_JOBS) -C $(LINUXKERNEL_INSTALL_DIR) ARCH=arm64 CROSS_COMPILE=$(CROSS_COMPILE) Image
$(MAKE) -j $(MAKE_JOBS) -C $(LINUXKERNEL_INSTALL_DIR) ARCH=arm64 CROSS_COMPILE=$(CROSS_COMPILE) modules
ifeq ($(SOC_TYPE),hs)
$(MAKE) linux-fitImage
endif
由于Linux依赖于设备树,因此设备树的编译命令中也需要加入该配置文件,在Makefile_linux-dtbs中,将ti_early_display.config加入编译命令。
linux-dtbs:
@echo =====================================
@echo Building the Linux Kernel DTBs
@echo =====================================
$(MAKE) -C $(LINUXKERNEL_INSTALL_DIR) ARCH=arm64 CROSS_COMPILE=$(CROSS_COMPILE) defconfig ti_arm64_prune.config ti_early_display.config
@for DTB in $(KERNEL_DEVICETREE); do \
$(MAKE) -j $(MAKE_JOBS) -C $(LINUXKERNEL_INSTALL_DIR) DTC_FLAGS=-@ ARCH=arm64 CROSS_COMPILE=$(CROSS_COMPILE) $$DTB; \
done
在修改完编译指令后,重新编译Linux,重新编译出的镜像文件大小从20MB下降到15MB左右,同时Linux启动时间降低约1s。