Yocto之目录结构说明

以下结构为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          说明文件

原文地址:https://www.cnblogs.com/idyllcheung/p/13468074.html