基本概念 OpenEmbedded编译系统:Yocto项目的编译系统,它是基于早期poky项目,使用BitBake作为执行器的编译系统。
BitBake: OpenEmbedded编译系统中用来编译镜像的任务计划器和执行器。
Metadata: BitBake在编译镜像时解析该文件。通常Metadata包括recipe,class和配置文件。当在kernel Metadata出现时,它是指内核的git源码池中meta分支中的Metadata.

OpenEmbedded编译系统支持组织Metadata到不同的层。层文件(layer)在yocto项目中允许你隔离不同的定制内容。要理解层是如何用来保持事物的模块化,以平台定制为例,这类定制通常在一个叫做板级支持包(BSP)的特别的层,而非普通层。并且,平台定制需要同支持GUI环境相关的recipe和Metadata隔离。这种情形给您一些不同的层,比如一个用于平台配置,一个GUI环境配置。理解这一点很重要,BSP层仍可以创建特定平台额外配置到GUI环境层的recipe中而不会因特定平台配置的变化而污染GUI环境层本身。这可以通过一个BitBake的附加recipe(.bbapend文件)来完成。

安装完DEY后,在安装目录下的Source文件夹中,包含了普通层和BSP层。这些代表层的文件夹通常有一个meta-开头的名称。在meta-digi普通层下有核心板的各BSP层,而在meta-fsl-arm下有i.mx6相关的各个BSP层。更多关于BSP层的信息,请参考Yocto Project Board Support Package (BSP) Developer's Guide的相关章节。

创建您自己的层 利用OpenEmbedded编译系统很容易创建自己的层来使用。Yocto项目带有脚本可以用来创建普通层和BSP层。创建层通常需要以下这些步骤:

  1. 检查已经存在的层:创建新层之前,您需要确保还没有人创建带有您需要的Metadata的层。
  2. 创建一个目录:为您的层创建一个目录,虽然meta-前缀不是强制要求,但最好遵从这样一些既定俗成的约定。
  3. 创建一个层配置文件:在您的层文件夹下,您需要创建conf/layer.conf,通常您可以从现有的一些层中拷过来,并修改成您所需的内容。
  4. 添加内容。

详细说明,请参考:http://www.yoctoproject.org/docs/2.1/dev-manual/dev-manual.html#understanding-and-creating-layers