Yocto最终会将所有Recipe的${D}
(部署目录)下的文件整合到根文件系统中,但这一过程并非简单收集所有内容,而是通过分阶段打包、依赖管理和定制化配置实现的。以下是核心机制的解析:
一、${D}
目录的作用与文件收集原理
-
${D}
的定位
${D}
是模拟目标系统根文件结构的临时目录(路径为${WORKDIR}/image/
),每个Recipe的do_install
任务会将编译生成的二进制文件、配置文件等安装到此目录49。例如:
bitbake
do_install() {
install -d ${D}/usr/bin
install -m 0755 ${S}/myapp ${D}/usr/bin
}
此操作将myapp
安装到最终系统的/usr/bin
目录。 -
分阶段打包
- 主包(
${PN}
)与子包:通过FILES_${PN}
变量定义主包包含的文件路径(如/usr/bin/*
),而FILES_${PN}-dev
- 主包(