热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

yocto构建定制Linux发行版,yoctolinux

yocto关键词:yoctoPokyBitBakeopenembeddedyocto构建系统定制你的Linux主要内容:yocto简介和概念yocto资源BitBake

yocto

关键词: yocto Poky BitBake openembedded yocto构建系统

定制你的Linux

主要内容:

yocto简介和概念yocto资源BitBake和openembeddedyocto的工作流程

文档参考:

yocto官网 https://www.yoctoproject.org/官方文档 https://docs.yoctoproject.org/index.html官方论坛 https://wiki.yoctoproject.org/wiki/TipsAndTricksBitBake文档https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bitbake-user-manual-intro.htmlOpenEmbedded http://www.openembedded.org/

最新文档 https://taotaodiy-yocto.readthedocs.io/en/latest/yocto/yocto.html

什么是Yocto

Yocto项目(YP)是一个开源协作项目,可帮助开发人员创建基于Linux的自定义系统,而无需考虑其硬件体系结构。
该项目提供了一套灵活的工具和空间,全世界的嵌入式开发人员可以在其中共享技术,软件堆栈,配置和最佳实践,这些技术,
可用于为嵌入式和IOT设备或需要定制Linux OS的地方创建量身定制的Linux映像。

yocto的发行版为Poky,也是用来构建系统的基本工具。Poky包含定制版OpenEmbedded(OE
Core)和BitBake构建引擎,以及帮助我们构建系统的其他元数据,
在BitBake的调度下,很好的协调meta-poky、meta-yocto-bsp等元数据层,定制我们所需要的系统。
Poky是典型嵌入式系统所需功能的基本规范,也是Yocto项目中允许您将发行版构建成可用二进制映像的基本规范。

Yocto
Project适用于任何架构。无论是芯片还是ODM供应商都编写了支持性的BSP,或者如果您有自定义芯片,您可以按照YP的规格创建BSP。Yocto
Project支持Intel,ARM,MIPS,AMD,PPC等
大多数ODM,OSV和芯片供应商提供SDK,BSP和其他支持结构,以便与Yocto
Project一起使用。 它专为受限制的嵌入式和物联网设备需求而设计。Yocto
Project的设计使您只需根据需要添加所需内容或包,而无需删除和减少默认分发。Yocto
Project提供了一个示例嵌入式发行版(Poky),以帮助您快速入门。 Yocto
Project提供全面的工具链功能。此工具链已经过Yocto社区在各种架构和平台上的测试。
Yocto
Project遵循严格的发布计划,在所有受支持的版本中包含安全补丁。最新的2个版本支持CVE(常见漏洞和风险)问题。

相关资源

yocto官网 https://www.yoctoproject.org/

官方文档 https://docs.yoctoproject.org/index.html

官方论坛 https://wiki.yoctoproject.org/wiki/TipsAndTricks

BitBake文档
https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bitbake-user-manual-intro.html

OpenEmbedded http://www.openembedded.org/

资源

meta-openembedded https://gitee.com/warery/meta-openembedded

imx项目 https://source.codeaurora.org/external/imx/imx-manifest

一些硬件bsp层

https://layers.openembedded.org/layerindex/branch/master/layer/meta-qcom/
https://layers.openembedded.org/layerindex/branch/master/layer/meta-ti/
https://layers.openembedded.org/layerindex/branch/master/layer/meta-freescale/
https://layers.openembedded.org/layerindex/branch/master/layer/meta-amd/

一些关键的软件层

https://layers.openembedded.org/layerindex/branch/master/layer/meta-mender-core/
https://layers.openembedded.org/layerindex/branch/master/layer/meta-qt5/
https://layers.openembedded.org/layerindex/branch/master/layer/meta-nodejs/
https://layers.openembedded.org/layerindex/branch/master/layer/meta-snappy/

博客

为什么将Yocto项目用于我的物联网项目?

OpenEmbedded 中文手册

Yocto在Ubuntu上创建一个最小化的Linux发行版

Yocto tips 系列(1-20)

工程

nxp https://source.codeaurora.org/external/imx/imx-manifest

openembedded,poky和yocto的关系

OpenEmbedded包含核心元数据层和BitBake构建工具

BitBake是任务执行程序和调度程序,它是OpenEmbedded构建系统的核心。

OpenEmbedded-Core(OE-Core)元数据,其中包括共享配置,全局变量定义,共享类,包装和配方。其中,类定义了构建逻辑的封装和继承。配方是要构建的软件和图像的逻辑单元。

Poky既是Yocto的构建示例也是一套构建工具,Poky是位于OE-Core之上的集成层。

meta-poky,这是特定于Poky的元数据。

meta-yocto-bsp,这是Yocto项目特定的董事会支持包(BSP)。

文档,其中包含用于制作用户手册集的Yocto Project源文件。

而Yocto大致类似于桌面Linux发行版的概念;它是配方,配置值和依赖项的集合,用于创建针对特定需求的定制Linux运行时映像。

BitBake是什么

从根本上讲,BitBake是一个通用的任务执行引擎,它允许Shell和Python任务在复杂的任务间相关性约束内工作时高效且并行地运行。
BitBake的主要用户之一OpenEmbedded以此内核为基础,并使用面向任务的方法构建嵌入式Linux软件堆栈。

从概念上讲,BitBake在某些方面类似于GNU Make,但有很大的区别:

BitBake根据提供的构成任务的元数据执行任务。元数据存储在配方(.bb)和相关的配方"追加"(.bbappend)文件,配置(.conf)和基础包含(.inc)文件以及类(.bbclass)文件中。元数据向BitBake提供有关要运行哪些任务以及这些任务之间的依赖关系的说明。BitBake包含一个提取程序库,用于从各个地方(例如本地文件,源代码控制系统或网站)获取源代码。每个要构建的单元的指令(例如,一个软件)被称为"配方"文件,其中包含有关该单元的所有信息(依赖项,源文件位置,校验和,描述等)。BitBake包括客户端/服务器抽象,可以从命令行使用,也可以通过XML-RPC用作服务,并且具有多个不同的用户界面。 yocto的工作流程

了解Yocto
Project工作流非常重要,因为它可以帮助您查明发生问题的位置以及构建的中断方式。工作流分为以下步骤:

首先,开发人员指定架构,策略,补丁和配置详细信息。然后,构建系统从指定的位置获取并下载源代码。该项目支持标准方法(例如tarball)或源代码存储库系统(例如git)。下载后,将源提取到本地工作区中,在该工作区中将应用补丁,并且将运行用于配置和编译软件的常见步骤。然后将软件安装到临时暂存区域,在该区域中,您选择的二进制软件包格式(deb,rpm或ipk)将用于汇总软件。在整个构建过程中都会运行不同的质量检查和健全性检查。创建二进制文件后,将生成二进制程序包提要,然后将其用于创建最终的根文件映像。生成文件系统映像。

使用 Yocto Project 构建自定义嵌入式 Linux 发行版

用于嵌入式
Linux 开发的专业级开源工具
https://developer.ibm.com/zh/tutorials/l-yocto-linux/

yocto tips

yocto的特点

在整个行业中被广泛采用:
存在半导体,操作系统,软件和服务供应商,其产品和服务采用并支持Yocto项目。不可知的体系结构: Yocto
Project支持Intel,ARM,MIPS,AMD,PPC和其他体系结构。大多数ODM,OSV和芯片供应商都会创建并提供支持其硬件的BSP。除了大量的体系结构支持之外,Yocto
Project还通过Quick EMUlator(QEMU)全面支持各种设备仿真。轻松进行图像和代码传输: Yocto
Project输出可以轻松地在体系结构之间移动,而无需迁移到新的开发环境。灵活性: 公司使用Yocto
Project的方式多种多样。通过定制和分层,项目组可以利用基础Linux发行版来创建适合其产品需求的发行版。受约束的嵌入式和IoT设备的理想选择:
与完整的Linux发行版不同,您可以使用Yocto
Project完全创建嵌入式设备所需的内容。全面的工具链功能:
支持的体系结构的工具链可满足大多数用例。也可以使用自定义该工具链和第三方工具链。策略上的机制规则:
关注机制而不是策略,可以确保您可以自由地根据设计需求设置策略,而不必采用某些系统软件提供商强制执行的决策。使用层模型: Yocto
Project层基础结构将相关功能分为单独的捆绑包。使用层来隔离和分组功能可以降低项目的复杂性和冗余度,使您可以轻松扩展系统,进行自定义并保持功能的组织性。支持部分构建: 您可以根据需要构建和重建单个软件包。根据严格的时间表发布: 主要发布周期为
六个月,分别是在十月和四月。个人和组织的丰富生态系统:
对于开源项目,社区的价值非常重要。支持论坛,专业知识和继续推动Yocto项目前进的活跃开发人员随时可用。二进制可重现性:
Yocto项目使您可以非常具体地描述依赖项,并实现很高百分比的二进制可重现性(例如的99.8%core-image-minimal)。许可证清单: Yocto项目提供了一个许可证清单,
以供需要跟踪开源许可证使用情况的人员(例如法律团队)进行审查。
推荐阅读
author-avatar
v05736708
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有