嵌入式Linux启动优化 · Yocto实战
📘 30章 · 从BootROM到3秒内
v2.0
01
启动流程全景
从BootROM到用户空间的完整启动链路分析
02
Yocto环境搭建
配置Poky、构建最小系统镜像
03
Bootloader选型
U-Boot vs Barebox,启动时间对比
04
U-Boot深度优化
裁剪配置、启用Falcon模式、快速启动
05
Kernel启动参数
减少printk、优化initcall、使用快速压缩算法
06
设备树优化
精简设备树节点、禁用未使用外设
07
根文件系统
从initramfs到squashfs,挂载策略对比
08
Systemd vs Busybox init
启动管理器性能实测
09
并行化启动
systemd的并行服务与依赖管理
10
预链接与预加载
ldconfig与prelink加速动态库加载
11
文件系统布局
只读根文件系统与overlayfs实践
12
内核模块
静态编译 vs 模块化加载,启动时间权衡
13
驱动延迟加载
使用deferred probe与probe顺序优化
14
存储优化
从eMMC到SPI NOR,不同介质启动速度差异
15
压缩算法
LZ4 vs LZO vs Gzip,解压速度与压缩率取舍
16
镜像大小优化
删除调试符号、strip二进制、清理无用文件
17
启动时间测量
使用bootchart、printk time、ftrace
18
硬件加速
利用硬件看门狗、硬件随机数生成器加速启动
19
多阶段启动
从SPL到U-Boot再到Kernel的接力优化
20
安全启动
在优化启动速度的同时保证安全链完整性
21
用户空间优化
精简init脚本、减少不必要的守护进程
22
网络启动
PXE与NFS根文件系统在开发阶段的加速应用
23
休眠与快速恢复
suspend-to-RAM与hibernate策略
24
Yocto Recipe优化
使用PACKAGECONFIG裁剪功能
25
Image自定义
构建最小化镜像,移除不需要的包
26
缓存与增量构建
使用sstate-cache加速重复构建
27
交叉编译工具链
优化GCC参数,使用LTO链接时优化
28
实时系统
PREEMPT_RT补丁对启动时间的影响
29
容器化启动
使用Docker/containerd加速应用部署
30
综合实战
从零开始将启动时间从30秒优化到3秒以内