Yocto常用术语
Yocto是一套开源、专为嵌入式定制的编译系统,它提供了toolset和开发环境,开发人员可以利用Yocto定制基于Linux的系统。 Yocto官网介绍了其常用术语,官网链接Yocto Project Terms,了解这些术语可以加深对Yocto的认识。
Bitbake
Yocto提供的命令,类似于“make”命名。使用bitbake命名,对特定的目标进行编译。
bitbake -h
Classes
Classes指扩展名为bbclass的文件。这个类文件,类似于C++程序中的公共头文件。bbclass文件中经常定义一些共同的配置、函数,比如一个名为 mymake.bbclass,在bb文件中通过inherits来使用它(将bbclass文件中定义的内容继承过来)
inherits mymake
Recipe
Recipe,食谱。Yocto中比较重要的概念。一个以.bb为扩展名的文件,就是一个食谱。食谱中标明了编译目标的源码、要打哪些patch(git patch)、编译配置以及编译依赖。bitbake指定的目标,就是一个食谱。比如有个叫my.bb的文件,那么编译它的方式为
bitbake my
Recipe是编译执行的单元,Image也是一个bb文件,用一个bb文件表示。
Layer
Layer表示一系列的食谱(Recipe),以及为了构建食谱的一些列配置文件。Yocto通过Layer进行隔离,我们可以在Yocto中加入新的Layer。理论上Layer之间互不影响,但是可以通过bbappend的方式在自己的Layer中修改其他Layer配置。 一般来讲 meta-* 这种文件夹就表示一个layer。可以使用bitbake命令,或者查看编译目录下的 "conf/bblayers.conf"确定当前有哪些layer。
Append Files
Append Files即以bbapend为扩展名的文件,全称BitBake append files,这种文件可以再不修改bb文件的基础上,将修改内容append到对应的bb文件中。 例如有一个叫 my.bb的文件,那么只要新建一个 my.bbapend的文件,将其放在与my.bb文件同目录内,bbapend文件中的内容就会加入到bb文件中。
Configuration File
配置文件,以.conf结尾。包括hardware配置、全局配置信息、用户自定义配置等。
Image
Image是编译成果物的集合,其本身也通过bb文件定义。
MetaData
MetaData包括recipe、配置文件、编译相关信息等。与Layer的概念有些类似,它主要指用于构建目标的所有元数据。
Source Directory
Source Directory指 proky这个目录,也就是我们通过git://git.yoctoproject.org/poky下载的Yocto项目。
Build Directory
编译目录,所有编译成果物输出的命令。默认为 Source Directory下的Build文件夹,编译目录也可以自定义。
source poky/oe-init-build-env my-build-dir
Cross-Development Toolchain
Poky
Poky是Yocto中常见的概念,并且我们下载的Yocto也是以poky命名。可以把理解为,Yocto官网写好的一个sample(怎么编译、怎么写bb、怎么做test测试、怎么定义image),开发者可以基于Poky进行定制。
OpenEmbedded-Core (OE-Core)
它是一个MetaData,包含了核心的recipe、配置等等。它提供了很多基础功能,比如一些预定义好的function。开发者可以利用它提供的功能,定义自己的食谱。
OpenEmbedded Build System
基于Yocto概念的构建系统(编译系统),它加上Poky就是整套Yocto的环境。
Container Layer
子层,如果某些layer比较大,那么它可能包括多个子layer。