Yocto常用术语

Posted 林多

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yocto常用术语相关的知识,希望对你有一定的参考价值。

Yocto常用术语

  • Yocto是一套开源、专为嵌入式定制的编译系统,它提供了toolset和开发环境,开发人员可以利用Yocto定制基于Linux的系统。
  • Yocto官网介绍了其常用术语,官网链接Yocto Project Terms,了解这些术语可以加深对Yocto的认识。

Bitbake

  • Yocto提供的命令,类似于“make”命名。使用bitbake命名,对特定的目标进行编译。
# -h 输出 bitbake帮助命令
bitbake -h

Classes

  • Classes指扩展名为bbclass的文件。这个类文件,类似于C++程序中的公共头文件。bbclass文件中经常定义一些共同的配置、函数,比如一个名为 mymake.bbclass,在bb文件中通过inherits来使用它(将bbclass文件中定义的内容继承过来)
# 某个bb文件
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。

以上是关于Yocto常用术语的主要内容,如果未能解决你的问题,请参考以下文章

Yocto常用术语

Yocto常用术语

为啥 yocto 跳过我的食谱?

Yocto dunfell 配方,不能依赖 hdf5

如何在yocto中编写makefile的配方

如何在 Yocto 配方中获取 Bash 脚本