🛠️ Yocto 调试秘籍
30 章 · 嵌入式实战
🎒 友好色系
01
Yocto项目概述
什么是Yocto
核心组件
BitBake
OpenEmbedded
对比Buildroot
应用场景
02
搭建Yocto开发环境
宿主机要求
Ubuntu/Debian
安装软件包
Git/Repo
下载Poky
03
理解Yocto目录结构
Poky目录
meta层
conf目录
recipes/bb
layer.conf
04
BitBake基础
BitBake是什么
任务机制
do_fetch
do_compile
依赖关系
05
编写第一个Recipe
Recipe结构
LICENSE
SRC_URI
覆写do_compile
06
Yocto变量系统
PN/PV/PR
WORKDIR
覆盖机制
弱赋值
立即赋值
07
Layer管理
自定义Layer
layer.conf
BBLAYERS
优先级
08
Image定制
local.conf
core-image-minimal
IMAGE_INSTALL
自定义Image
09
Kernel配置与编译
内核源码
配置片段
内核Recipe
设备树
10
U-Boot与Bootloader
U-Boot集成
配置片段
SPL/ATF
启动调试
11
文件系统构建
根文件系统
ext4/squashfs
initramfs
包管理
12
SDK与交叉编译链
populate_sdk
安装SDK
交叉编译
常见问题
13
Devtool快速开发
devtool add
modify
build
finish
工作流
14
Patch管理
quilt工具
创建/应用Patch
优先级
集成
15
依赖与继承
DEPENDS
RDEPENDS
inherit
BBCLASSEXTEND
16
PACKAGECONFIG详解
语法
条件编译
特性开关
SSL案例
17
构建缓存与加速
sstate缓存
DL_DIR
SSTATE_DIR
PREMIRRORS
并行编译
18
常见构建错误与解决
do_fetch失败
校验和
do_compile错误
权限问题
19
日志与调试技巧
log.do_*
run.do_*
BB_VERBOSE_LOGS
devshell
20
任务执行控制
bitbake -c
强制重跑 -C
依赖图 -g
并行度
21
Recipe版本管理
PV/SRCREV
Git哈希锁定
PR Server
自动递增
22
Yocto与CI/CD集成
Jenkins
GitLab CI
自动化构建
镜像归档
23
多机器与BSP支持
MACHINE变量
机器配置
KERNEL_DEVICETREE
MACHINE_FEATURES
24
Yocto安全加固
SECURITY_CFLAGS
CVE检查
移除组件
签名校验
25
Yocto与容器
Docker/containerd
容器镜像
meta-virtualization
26
Yocto与Qt/QML
Qt5/Qt6集成
工具链
触摸屏
应用部署
27
Yocto与Python
Python解释器
pip/setuptools
嵌入式优化
28
Yocto与ROS2
meta-ros层
Recipe编写
节点依赖
实时性
29
Yocto性能优化
tmpfs/ccache
镜像大小
IMAGE_FEATURES
启动优化
30
Yocto实战项目
智能网关
网络/存储
Web/MQTT
经验总结