首页 > 其他分享 >Yocto2:Yocto基本概念以及编译流程

Yocto2:Yocto基本概念以及编译流程

时间:2023-03-22 11:26:03浏览次数:56  
标签:Yocto Layer Recipe Project 编译 构建 Yocto2

关键词:Recipe、Layer、Metadata、Poky、bitbake等等。

1 关键概念

深入了解Yocto之前,先了解一些基本概念。在Software – Yocto Project有说明。

这里摘录一段中文翻译:

  • 配置文件: 包含全局定义变量,用户定义变量和硬件配置信息。配置文件告诉构建系统需要构建什么,什么需要放入镜像,以支持一个特定平台。
  • 配方Recipe: 元数据最常见的形式。Recipe可以包含一列用来构建二进制镜像文件的设定和任务(指令)。Recipe描述了你从哪获取代码,需要应用哪个(代码)补丁。同时Recipe还描述了对于其他Recipe或库的依赖,以及配置和编译选项。Recipe存放在Layer中。
  • 层Layer: 相关Recipe的集合。Layer允许你将元数据(metadata)集合在一起,自定义你的构建。有时候你的构建是可以支持多种不同架构的,那么这种数据,可以通过Layer方式将它们独立出来。
  • 元数据Metadata: Yocto Project在构建Linux发行版本时,构建系统会解析的文件(数据),Metadata是Yocto Project中很关键的一个元素。通常来说,元数据包含recipe,配置文件,其他参考构建指令的信息,以及控制构建什么/如何构建(what and how)的数据。元数据也包括命令(command),软件版本信息,从何处获取,其他用来做补丁的文件或是特定场景下需要自定义软件的信息。OpenEmbedded Core是重要的一组被验证过的元数据。
  • OpenEmbedded-Core:OE-Core是基础recipe,类文件,和相关文件的元数据组合,在基于OpenEmbedded的系统中很常用,Yocto Project也使用它。OE-Core由OpenEmbedded社区将其开发的原始仓库取其核心,充分验证过的recipe的集合而形成的关键核心。
  • Poky: 一个参考嵌入式发行版本,同样也用来作为提供基本功能的发行,可以用来说明(学习)如何自定义发行版本,可以测试Yocto Project组件,还可以为用户下载Yocto Project。Poky不是产品级的,但它是一个很好的定制化工作起点。Poky是在OE-Core上层的一个Layer集成。
  • 构建系统 - "Bitbake": 调度和执行引擎,用来解析指令(recipe)和配置数据。然后它创建依赖树,安排编译,调度编译,最后执行定制化Linux镜像/发行版本的构建。BitBake是类似Make的一个构建工具。BitBake recipe指定一个特定包是如何被构建的,包括所有包的依赖,源代码路径,配置,编译,构建,安装,和移除指令。Recipe也在标准变量中存储包的元数据。相关Recipe形成一个Layer。构建过程中,追踪依赖,执行编译或交叉编译。作为交叉构建的第一部,bitbake框架首先创建适用于目标平台的eSDK套装。
  • 包Packages: 构建系统的输出,用来创建最终的镜像。
  • Extensible Software Development Kit (ESDK): 一个自定义的SDK,应用开发者可以用来将他们的库和代码改动写入镜像,为其他应用开发者提供代码。
  • 镜像image: 加载到设备上的Linux发行版本(操作系统)的二进制形式。

参考《【Yocto学习系列(二)】Yocto术语》。

2 Pocky通用编译流程

3 目录结构

 

参考文档:

Yocto开发篇_fulinux的博客-CSDN博客

Yocto Project Reference Manual — The Yocto Project ® 3.1.23 documentation

《 利用Yocto构建嵌入式Linux教程02--基本概念介绍

利用Yocto构建嵌入式Linux教程03--Yocto构建系统的配置文件

标签:Yocto,Layer,Recipe,Project,编译,构建,Yocto2
From: https://www.cnblogs.com/arnoldlu/p/17216015.html

相关文章

  • Windows上编译github源码方式运行Node-RED,以及离线迁移安装Node-RED
    场景上面是在Windows可以连接外网的情况下安装运行的Node-RED,如果再局域网内的Winserver2012的服务器,没法访问外网,怎样安装运行Node-RED。注:关注公众号霸道的程序猿获取......
  • 编译安装open-mpi
    openmpi官网地址:https://www.open-mpi.org/openmpi文档地址:https://docs.open-mpi.org/1.下载wgethttps://download.open-mpi.org/release/open-mpi/v4.1/openmpi......
  • Codon是一个高性能的Python编译器
    Codon是一个高性能的Python编译器,可以将Python代码编译成本地机器代码,没有任何运行时开销。与Python相比,单线程的典型加速比在10-100倍以上。Codon的性能通常与C/C++相......
  • #创作者激励#由一个编译参数引发的gn构建依赖图谱查询
    【本文正在参加2023年第一期优质创作者激励计划】(目录)起因事情的起因是这样子的,在给学生上课的时候,想演示一下kv存储(小熊派nano开发板),代码版本master,结果发现编......
  • 实验一 密码引擎-1-OpenEuler-OpenSSL编译
    实验一密码引擎-1-OpenEuler-OpenSSL编译0.安装Ubuntu和OpenEuler虚拟机1.下载最新的OpenSSL源码(1.1版本)2.用自己的8位学号建立一个文件夹,cd你的学号,用pwd获得绝......
  • 实验一 密码引擎-1-OpenEuler-OpenSSL编译
    0.安装Ubuntu和OpenEuler虚拟机安装openEuler-20.09安装登入openEuler系统1.下载最新的OpenSSL源码(1.1版本)Ubuntu22.04OpenSSL1.1.1tUbuntu最新版本下载参见......
  • 实验一 密码引擎-1-OpenEuler-OpenSSL编译
    任务详情0.安装Ubuntu和OpenEuler虚拟机下载最新的OpenSSL源码(1.1版本)用自己的8位学号建立一个文件夹,cd你的学号,用pwd获得绝对路径参考https://www.cnblogs.......
  • 实验一 密码引擎-1-OpenEuler-OpenSSL编译 _
    一、任务详情安装Ubuntu和OpenEuler虚拟机下载最新的OpenSSL源码(1.1版本)用自己的8位学号建立一个文件夹,cd你的学号,用pwd获得绝对路径参考https://www.cnblogs.com/......
  • 作为移动开发你不能不了解的编译流程
    作者:京东零售李臣臣阅读本文,或许能够了解关于以下的几个问题:1、编译器是什么?为什么会有编译器这样一个东西?2、编译器做了哪些工作?整个编译过程又是什么?3、Apple的编译......
  • Source Generator-编译本地文件的中的代码
    上一篇讲解了如何直接调用静态方法,而有时候我们会生成cs文件或其他格式的文件,进而使用SourceGenerator编译。本例中就对资源文件进行编译进行举例说明。在SourceGener......