Ø 用Image替代zImage,zImage是压缩后的内核镜像文件,所以使用Image就省去的加载时的解压所消耗的时间(大概可以节省2~3秒的启动时间)。但若使用Image则应考虑NandFlash的空间是否够用。
Ø 文件系统镜像有ramdisk、jffs2和cramfs三种,内核加载这三种镜像的速率cramfs最快,其次jffs2,最后是ramdisk。其中cramfs是只读文件系统。通常一个产品是三者的结合。
Ø 优化bootloader,减少其运行时间。
Ø 减少kernel体积,比如将不是在启动阶段必须加载的驱动模块留在文件系统后面加载,减少kernel的运行和加载时间。
Ø 优化或关闭调试串口输出。
Ø 驱动程序放在文件系统后面加载,先显示应用程序界面,再在后台加载必要的驱动模块。
Ø 将整个系统运行环境保存到RAM中,加电只是个系统恢复过程。
Ø 仔细优化kernel和每个驱动模块,将每个部分的延时调试到最快。
Ø 应用程序的优化,减少应用程序的启动时间。
注意:
优化嵌入式Linux系统的启动时间时注意,启动时间的减少也是有代价的,比如花费的人力,项目进展时间,产品的安全与稳定,以及系统的其他资源的开销,比如说存储空间等。
通常bootloader写入NorFlash,而内核Image和文件系统镜像写入NandFlash。NandFlash容易出现坏道,而NorFlash要相对好些。将bootloader写入NorFlash则可防止因为bootloader损坏而导致整个系统崩溃。而将bootloader写入NandFlash则可保证不把NorFlash损坏,因为可以通过NorFlash恢复NandFlash数据。