8.7.2. yocto源目录结构
8.7.2.1. 顶层核心组件
8.7.2.1.1. bitbake
bitbake是一个元数据解释器,它读取yocto项目元数据并运行该数据定义的任务。
当运行bitbake命令,bitbake/bin/目录中对应的可执行文件将会启动。
8.7.2.1.2. build
此目录包含用户配置文件和构建过程中的输出文件。
8.7.2.1.3. documentation
该目录包含 Yocto 项目文档的源代码以及允许您生成 PDF 和 HTML 版本手册的模板和工具。
8.7.2.1.4. meta
此目录包含最小的底层openembedded-core元数据。
8.7.2.1.5. meta-poky
在meta内容之上,这个目录添加了足够的元数据来定义poky参考
8.7.2.1.6. meta-yocto-bsp
此目录包含yocto项目参考硬件板卡支持包
8.7.2.1.7. meta-selftest
此目录添加了openembedded自测试使用的recipe和附加文件,以验证构建系统的行为.
8.7.2.1.8. meta-skeleton
该目录包含用于BSP和内核开发的模板recipe
8.7.2.1.9. scripts
该目录包含在yocto项目环境中实现额外功能的各种集成脚本(例如qemu脚本)
8.7.2.2. 构建目录
当运行环境设置脚本oe-init-build-env时,默认会创建build目录,在后续的解析和处理中可以通过TOPDIR回去build目录的名称
build/conf/local.conf
此配置文件包含所有本地用户配置,通常会修改此文件来修改MACHINE PACKAGE_CLASSES DL_DIR
build/conf/bblayers.conf
此配置文件定了layer,他们是目录树,由bitbake遍历。
build/cache/sanity_info
此文件指示健全性检查的状态并在构建期间创建。
build/downloads/
此目录包含下载文件tarball,可以通过DL_DIR变量来控制此目录的位置
build/sstate-cache/
此目录包含共享状态缓存,可以通过SSTATE_DIR变量来控制此目录的位置
build/tmp
bitbake构建过程中的输出都在此目录,TMPDIR指向该目录
build/tmp/buildstats
此目录存储构建统计信息
build/tmp/cache
当bitbake解析元数据时,它会缓存结果到build/tmp/cache以加快构建
build/tmp/deploy
此目录包含bitbake构建过程的任何”最终结果”输出,DEPLOY_DIR指向该目录
build/tmp/deploy/deb
此目录包含.deb构建产生的包
build/tmp/deploy/images
此目录包含基本输出对象,包括bootloader,内核,以及根文件系统等内容
如果不小心删除了此处的文件,可以通过以下命令重新创建
bitbake virtual/kernel #重新创建
bitbake -c clean virtual/kernel #删除
build/tmp/deploy/sdk
此目录会保存工具链安装程序脚本,这些脚本执行时会安装与目标硬件匹配的sysroot
build/tmp/sstate-control
此目录用于存储共享状态清单文件,共享状态代码使用这些文件来记录每个sstate任务安装的文件
build/tmp/log
此目录包含log文件
build/tmp/work
此目录为bitbake的工作目录
8.7.2.3. 元数据
meta/calsses
此目录包含*.bbclass文件,class文件用于抽象公共代码,以便它可以被多个包重用,每个包都继承base.bbclass文件
meta/conf
该目录包含核心配置文件集bitbake.con,所有其他配置文件都从这些配置文件开始
meta/conf/machine
该目录包含所有机器配置文件
meta/recipes-bsp
该目录包含任何连接到特定硬件或硬件配置信息的内容,如”uboot”和”grub”
meta/recipes-devtools
此目录包含工具集,可以应用到目标