YOCTO项目概述

GETTING STARTED THE YOCTO PROJECT OVERVIEW
YOCTO项目概述

目录
2 YOCTO项目概述 1
3 Layer模型-定制的关键 2
4 YOCTO项目维护的组件和工具 2
5 一般的工作流程 4
6 开发环境的搭建 5
7 参考的嵌入式发行版(POKY) 5

1 YOCTO项目概述
Yocto项目是一个开源协作项目,它帮助开发人员为嵌入式产品创建基于linux的自定义系统,而不考虑硬件体系结构。该项目提供了一套灵活的工具和一个空间,全世界的嵌入式开发人员可以在这里共享技术、软件堆栈、配置和最佳实践,这些可以用于为嵌入式设备创建定制的Linux映像。
该项目提供了一个交付硬件支持和软件栈的标准,允许软件配置和构建的交换。这些工具允许用户以可维护和可伸缩的方式为多个硬件平台和软件堆栈构建和支持自定义。
YOCTO项目是从OpenEmbedded项目发展而来,并与之合作,而OpenEmbedded项目是构建系统和一些元数据的来源。
YOCTO项目包括如下的三个关键的组成元素:

  1. 一组嵌入式Linux成功工作所需的集成工具,包括用于自动化构建和测试的工具,用于支持和遵从许可证的流程,以及用于定制的基于linux的嵌入式操作系统的组件信息。
  2. 一个参考的嵌入式的发行版(Poky)。
  3. OpenEmbedded构建系统(与OpenEmbedded项目共同维护)。

在Yocto项目中有许多不同的开源组件和工具。
Poky,这个参考的嵌入式操作系统实际上是一个可以运行的构建示例,它将使用内部的构建系统(BitBake,构建引擎和openembedcore,核心构建系统元数据)构建一个小型的嵌入式操作系统。
构建系统通过Poky构建指令“文件”(称为recipes和layers)下载。为了创建定制的嵌入式Linux,您可以以任何需要的方式修改、复制或使用Poky构建细节。

2 LAYER模型-定制的关键
Yocto项目有一个为创建嵌入式和物联网Linux的开发模型,这使它区别于其他简单的构建系统。其称为Layer模型。
Layer模型同时支持协作和定制。Layers是包含相关指令集的存储库(repository),这些指令集告诉构建系统要做什么。用户能够协作、共享和重用Layers。Layers可以在任何时候包含对先前指令或设置的更改。
这种强大的覆盖功能允许您定制以前的协作或社区提供的层,以满足您的产品需求。
使用不同的层在逻辑上分离构建中的信息。例如,可以有BSP层、GUI层、发行版配置、中间件或应用程序。将整个构建放在一个层中会限制和复杂化未来的定制和重用。另一方面,将信息隔离到各个层有助于简化未来的定制和重用。尽可能使用来自芯片(硬件)供应商的BSP层。
熟悉精选的(经过测试)的YOCTO项目兼容层的索引。还有OpenEmbedded层的索引,它包含了更多的层,但其内容没有得到广泛的验证。
Yocto项目成员组织可以提供关于特定BSP的信息。详情请访问YOCTO项目成员BSP页面。
3 YOCTO项目维护的组件和工具
项目使用一组组件和工具来维护和更新实际的项目;还有一些是项目本身直接使用的;剩下的组件和工具是开发人员使用其来创建他们的自定义操作系统的。
这些组件和工具本身就是开源项目或元数据。两者都独立于参考发布版和构建系统,并且大多数都是单独下载的。

术语:
 Configuration Files:配置文件。保存变量、用户定义变量和硬件配置信息的全局定义的文件。它们告诉构建系统要构建什么并将其放入支持特定平台的映像中。
 Recipe:最常见的元数据形式。Recipe包含用于构建包的设置和任务(指令)列表,这些构建的包随后用于构建二进制映像。Recipe描述从何处获得源代码以及应用哪些补丁。Recipe还描述了库或其他Recipe的依赖关系,以及配置和编译选项。Recipe保存在许多Layer中。
 Layer:相关Recipe的集合。Layer允许您合并相关的元数据来定制您的构建,并为多个架构的构建建立隔离的信息。Layer是分层的,它们能够覆盖以前的定义。您可以包含来自Yocto项目的任意数量的可用层,并通过在它们之后添加您的层来定制构建。
 Metadata:元数据。Yocto项目的一个关键元素是用于构建Linux发行版的元数据,它包含在构建映像时构建系统解析的文件中。通常,元数据包括Recipe、配置文件和构建指令本身相关的其他信息,以及用于控制要构建什么以及影响如何构建的数据,以及用来控制生成什么以及影响生成方式的数据。元数据还包括指示软件版本,获取软件的源地址以及软件本身更改或补充(补丁或辅助文件,用于修复bug或定制的软件在一个特定的情况下使用)的命令和数据。OpenEmbedded Core是最重要的一组经过验证的元数据。
 OpenEmbedded-Core:coe -core是由基本的Recipes、Classes和相关文件组成的元数据,这些元数据在许多不同的openembedde派生系统(包括Yocto项目)中是通用的。它是OpenEmbedded社区开发的原始存储库的一个精选的子集,这个原始存储库已经被精简为一个更小的、不断验证的核心Recipe集。这是一个受到严格控制、质量有保证的核心Recipe集。
 Poky:一个参考的嵌入式的发行版和一个参考的测试配置,其创建的目的如下:1)提供了一个基本功能级别的发行版,用来展示如何自定义一个发行版。2)用来测试YOCTO项目的组件。3)作为用户下载YOCTO项目的载体。Poky并不是一个产品级别的发行版,但却是自定义嵌入式系统的很好的起点。Poky是在oe-core上的一个完整的Layer。
 构建系统-“Bitbake”:解析指令(Recipes)和配置数据的调度程序和执行引擎。然后,它创建一个依赖树用来对编译进行排序,以及调度所包含代码的编译。最后,执行指定的自定义Linux映像(发行版)的构建。BitBake是一个类似make的构建工具。BitBake Recipe指定了一个特定的包是如何构建的。它们包括所有包依赖项、源代码位置、配置、编译、构建、安装和删除指令。Recipes还将包的元数据存储在标准变量中。相关的Recipes被合并到一个Layer中。在构建过程中跟踪依赖项,并执行包的本地或交叉编译。作为交叉构建设置的第一步,框架将尝试创建一个适合目标平台的交叉编译器工具链(可扩展SDK)。
 Packages:构建系统的输出,用来创建最终的映像。
 ESDK(Extensible Software Development Kit):应用开发人员的自定义的SDK,其允许他们将库和程序的更改合并到映像中,使其他应用程序开发人员也可以使用他们的代码。
 Image:用来加载到设备上的Linux发行版的二进制格式。
4 一般的工作流程

 首先,开发人员指定架构、策略(Policies)、补丁和配置细节。
 随后,构建系统从指定的源获取和下载源码。项目支持Tarball或源码repositories 系统(Git)的获取方法。
 下载完成后,源码解压缩到本地目录,并应用补丁,随后运行通用的配置和编译软件的过程。
 软件随后被集中安装到临时目录中,您可以选择如deb、rpm或ipk二进制包格式对其进行打包。
 不同的QA和完整性检查贯穿于整个构建过程中。
 在创建二进制文件之后,生成二进制包提要,然后用它创建最终的根文件映像。
 生成文件系统映像。
在使用Yocto项目时,这个工作流将根据实际使用的组件和工具而改变。
5 开发环境的搭建

  1. 大多数开发人员使用Yocto Project Quick Build中描述的Linux开发主机。
  2. 对于其他操作系统,YOCTO项目提供了一种利用DOCKER容器的开源、跨平台开发框架CROP。CROP提供了一个易于管理、可扩展的环境,允许开发人员为WINDOWS或MACOS上的各种体系结构构建二进制文件,以及本地LINUX主机。有关更多信息,请参见开发任务手册。
  3. 第三种选择是使用TOASTER,这是一个WEB接口,它具有有用但有限的功能,允许您配置和运行构建,并提供关于构建过程的信息和统计信息。参见TOASTER手册。
    在您的主机中建立号YOCOT项目的开发环境后,可以使用Eclipse IDE进行开发。
    6 参考的嵌入式发行版(POKY)
    “Poky”是Yocto项目的参考发行版或参考OS Kit的名称。它包含构建系统(BitBake和oe-core)以及一组元数据,让你开始构建你自己的发行版。
    要使用Yocto项目工具,您可以下载Poky并使用它引导您自己的发行版。注意,Poky不包含二进制文件——它是一个工作示例展示了如何从源代码构建您自己的定制Linux发行版。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值