嵌入式 Linux 开发 9:减少尺寸与加快启动

减少 rootfs 大小

为节省空间而编译

  • 在使用 GCC 时,用 -Os 参数编译程序将使编译器生成最小的代码 arm-linix-gcc -Os <program>
  • 删除应用程序的调试代码 find <rootfs_root> -type f -exec arm-linux-strip {};\

减小内核的尺寸

  • 文件系统:删除产品不需要的文件系统,如 NFS ext2/2 等。
  • 驱动程序:删除产品用不上的硬件驱动,如 Wi-Fi 音频 视频等。
  • 输入输出:内核对鼠标和 VGA 控制台有专门的驱动程序,如果用不上可以删除。
  • 调试和性能剖析:内核配置菜单 Kernel Hacking 用于调试,产品可以禁用该选项。

减小根文件系统的尺寸

  • 删除不需要的链接库
  • 追求极小尺寸(代价大)可以从零开始,采用试错法,一路添加各种必需的组件。

减少启动时间

减少内核启动时间

  • 不使用内核镜像的压缩/解压的功能,即空间换时间。
  • 取消启动时的控制台输出,向内核命令行添加参数 quiet
  • 消除内核模块,将所有模块静态链接到内核中,加载模块的时间缩减为 0

减小根文件系统启动时间

  • 使用只读文件系统,一个 50MB 的根文件系统镜像 JFFS2 需要 6S 而 Squash 只需要 1S
  • 延迟启动,将一些耗时的初始化程序放置在 shell 启动之后,让用户看起来启动快一些。
posted @ 2022-09-22 13:32  KevinAshton  阅读(83)  评论(0编辑  收藏  举报