天天看点

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          说明文件

继续阅读