2.2 内存中的initramfs
使用CONFIG_INITRAMFS_SOURCE选项在内核配置级别定义initramfs的内容
可以是包含根文件系统内容的目录的路径
可以是cpio归档文件的路径
可以是描述initramfs内容的文本文件
内核构建过程将自动获取CONFIG_INITRAMFS_SOURCE选项配置的内容,并将根文件系统集成到内核映像中
详细信息(在内核源文件中):
Documentation/filesystems/ramfs-rootfs-initramfs.txt
Documentation/early-userspace/README
2.3 用initramfs启动过程
2.4 initramfs 降低启动时间
创建尽可能小的最小初始化文件,足以启动关键应用程序,然后使用switch_root切换到最终根文件系统:
使用轻量级的C库以减小固件大小,建议使用uClibc。
将BusyBox裁剪到最小。甚至可以不用BusyBox直接在C中实现/init。
使用静态链接的应用程序(较少的CPU开销,较少的库加载,较小的initramfs(如果根本没有库))。Buildroot中用BR2_STATIC_LIBS配置。
2.5 静态链接可执行文件
静态链接的可执行文件对于减小大小(特别是在小型initramfs中)非常有用,并且启动工作量较少。
如果您将initramfs放在压缩的内核映像中,请不要对其进行压缩(启用CONFIG_INITRAMFS_COMPRESSION_NONE)。
否则默认情况下,您的initramfs数据将被压缩两次,内核将更大,并且将花费更多的时间来加载和解压缩。