以下结构为yocto工程的一些通用的结构。实际工程中,各个厂商可能根据自己的需要进行剪裁,但是整体的结构以及每个目录存放的内容大体上是一致的。
顶层文件结构
bitbake bitbake工具目录。bitbake,是一metedate解释器,读取metedate并执行定义的task。执行bitbake命令时,其实执行的就是bitbake/bin/下面的文件。
build 用户配置文件和工程构建输出目录。build目录在建立环境变量时进行创建并进行配置文件初始化。构建的所有文件都在该目录下组织存放。
documentation 说明文件
meta OE Core的Metedata,包括recipes,comon classes等
meta-poky poky发行版本的配置数据
meta-yocto-bsp yocto工程包含的一些参考的BSP配置,通常厂商自己会增加自己的bsp目录。
meta-selftest OE自测的recipes和append 文件
meta-skeleton BSP和kernel开发用的一些临时recipes
scripts 脚本文件,用来提供一些特性的功能。该路径会被添加到环境变量中。
oe-init-build-env 构建OE的环境
build/目录下的文件组织结构
注意:build可以指fsl-release-bsp/imx6ulevk-fb
build/conf/local.conf 用户的配置文件,包含所有定制化的配置。该文件配置的所有变量都会覆盖其他文件相应变量的软赋值 (?= 形式)(注意=形式的硬编码无法覆盖)
build/conf/bblayers.conf 该文件用来定义BBLAYERS,BBLAYERS是决定哪些路径下的模块需要构建,哪些不需要构建,并将这些信息提供给BitBake。
build/conf/sanity_info 可用性信息,不用关注
build/downloads 构建过程中,下载的所有源码。可以将该目录放到一个公共目录下,提供每次的编译效率
build/sstate-cache 构建构成中的构建状态缓存。可以将该目录放到一个公共目录下,提供每次的编译效率
build/tmp 构建时所有的输出都存放在该目录下
build/tmp/buildstats 构建统计信息,每次构建,都会在该目录下生成一个日期目录
build/tmp/cache BitBake解析metedata(包括recipes和config文件)后,将解析的结果缓存在该目录,以提高后续效率
build/tmp/deploy 部署文件目录,最终需要的文件(boot rootfs image等)都在该目录中
build/tmp/deploy/deb 存放系统产生的所有.deb类型的安装包
build/tmp/deploy/rpm 存放系统产生的所有rpm类型的安装包
build/tmp/deploy/ipk 存放系统产生的所有ipk类型的安装包
build/tmp/deploy/licenses 系统使用的各种软件的许可信息
build/tmp/deploy/images 存放boot rootfs image等文件
build/tmp/deploy/sdk 工具链安装脚本
build/tmp/sstate-control 状态跟踪文件
build/tmp/sysroots-components 制作sysroots前需要额外添加的一些组件
build/tmp/sysroots 构建出的根文件系统内容
build/tmp/stamps 记录BitBake跟踪task执行时间的一些信息
build/tmp/log 日志信息
build/tmp/work 包含和CPU架构相关的工作目录
build/tmp/work-shared 工作信息缓存,为了提高效率
meta/目录下的文件组织结构
meta/classes 包含所有的 *.bbclass。class文件是抽象的公共代码,给各个package使用。
meta/conf 配置文件(.conf)的核心集合。比如所有的bblayers的配置文件都是从该目录下的bitbake.conf文件中衍生的。
meta/conf/machine machine的配置文件
meta/conf/distro 发行信息的配置文件
meta/conf/machine-sdk 制定sdk是32位还是64位。
meta/files/ 包含一些licence文件和系统构建所需要的一些其他文件
meta/lib/ 系统构建过程中需要的一些Python库文件
meta/recipes-bsp uboot等硬件相关的配置信息
meta/recipes-connectivity 包含和其他设备通信相关的库和应用
meta/recipes-core 构建基本的linux image所需要的依赖
meta/recipes-devtools 主机构建时需要的tools,这些工具在目标板上同样能够使用。
meta/recipes-extended 一些不重要的应用
meta/recipes-gnome GTK+框架相关的应用
meta/recipes-graphics 绘图相关的库
meta/recipes-kernel kernel以及内核所依赖的库
meta/recipes-lsb4 支持Linux Standard Base (LSB) version 4.x所需要的
meta/recipes-multimedia 多媒体支持,图片、声音、视频
meta/recipes-rt 支持PREEMPT_RT 所需要的recipes和包
meta/recipes-sato/ sato demo
meta/recipes-support 其他recipes包含的一些通用的recipes
meta/site 不同的架构下的缓存结果存放
meta/recipes.txt 说明文件