完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
【MYD-JX8MMA7】 (七)YOCTO介绍 简述: 在最近的接触,发现JX8MMA7的软件开发过程中有一些区别,与以往linuxRAM开发思路有很大差别,所以个人重点了解了下Yocto的基本常识和开发区别。 一、简介 1、百度百科介绍 Yocto ,是一个开源社区。它通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统,支持ARM, PPC, MIPS, x86 (32 & 64 bit)硬件体系架构。 [1] Yocto Project™是一个开源的协作软件,提供模板、工具和方法帮你创建定制的 Linux 系统和嵌入式产品,而无需关心硬件体系。适合嵌入式Linux开发人员使用。极大地简化你的开发过程,因为你不用再从头裁剪一个完整的Linux发布版本,后者通常包括许多你并不需要的软件。 Yocto项目通过Poky来构建一个系统,并提供了一个开放源码的开发环境,针对目标为ARM,MIPS,PowerPC和x86架构,而平台包括x86-64和模拟器。 你可以使用Yocto项目的组件来设计,开发,构建,调试,仿真和对使用了Linux, X windows系统, 基于移动设备的GNOME应用框架和Qt框架的完整的软件堆栈进行测试. Yocto兼容OpenEmbedded项目,你可以简单可靠地进行编译和开发.完全支持通过QEMU模拟器的广泛的硬件和设备的仿真. Yocto项目可以为多种设备生成映像. 通过Yocto项目开发出来的映像可以在一个QEMU模拟器中进行引导,开发环境可以作为一个开发嵌入式软件的良好的测试平台. 2、Yotco官方介绍 yocto项目。它不是嵌入式Linux发行版,而是为您创建一个自定义发行版。Yocto项目(YP)是一个开源协作项目,帮助开发人员创建自定义的基于linux的系统,而不考虑硬件架构。该项目提供了一套灵活的工具和空间,让全世界的嵌入式开发人员可以共享威廉希尔官方网站 和软件堆栈。配置,以及可用于为嵌入式和物联网设备或任何需要定制Linux操作系统的地方创建定制的Linux映像的最佳实践。 yocto项目。它不是嵌入式Linux发行版,而是为您创建一个自定义发行版。Yocto项目(YP)是一个开源协作项目,帮助开发人员创建自定义的基于linux的系统,而不考虑硬件架构。该项目提供了一套灵活的工具和空间,让全世界的嵌入式开发人员可以共享威廉希尔官方网站 和软件堆栈。配置,以及可用于为嵌入式和物联网设备或任何需要定制Linux操作系统的地方创建定制的Linux映像的最佳实践。 “Poky”是Yocto项目的参考发行版或参考操作系统工具包的名称。它包含构建系统(BitBake和OpenEmbedded Core)以及一组元数据,让你开始构建自己的发行版。要使用Yocto项目工具,您可以下载Poky并使用它引导您自己的发行版。请注意,Poky不包含二进制文件——它是一个如何从源代码构建自己的自定义Linux发行版的工作示例。 二、主要元件 Yocto 项目的主要元件(其他可用工具属于选用性),条列如下: BitBake OpenEmbedded-Core Poky BSP 层(meta-raspberry、meta-fsl-arm、meta-ti、meta-intel、meta-sunxi 等等) 下图列出将会介绍的所有层级,后续章节会透过各种各样的范例,逐一学习其中各项工具,让读者能充分掌握。 何谓 Poky? Poky 是 Yocto 项目官方提供的参考建置系统,包含一些 OpenEmbedded 的基本元件(称为建置系统),以及一组用来建立嵌入式发行版的后设资料,支持好几种目标架构。Poky 是独立的平台,使用 BitBake 工具(任务排程器)、OpenEmbedded-Core 与预设的后设资料组合来进行交叉编译,如下图所示。Poky 提供一整套机制,能构建并整合数以千计的开源软件包。 Poky 构建系统将会成为工业领域的参考标准,各大业界领袖,如 Win River、Intel、Montavista 和 Mentor Graphics 都已表态支持。 Angstrom 是另一套以 OpenEmbedded-Core 为基础所打造出来的系统,你可以把 Angstrom 和 Poky 想象成表兄弟,因为 Poky 也同样基于 OpenEmbedded-Core。 三、Yocto 三大关键组件 •BitBake ——实质上就是 Yocto 的构建系统引擎。它负责创建配方——构建特定系统所需的任务列表——以及解析元数据和执行配方。 对如何分解并加速BitBake构建进程感兴趣的开发者,可预约Incredibuild最新活动 •OpenEmbedded-Core ——元数据。它保存了创建系统所需的基本配方、相关文件和类。构建时设定为通用,以便适用于各种基于 OpenEmbedded 的系统。 •Poky ——包含一个基于 Linux 的全平台构建工具和各种其他威廉希尔官方网站 ,帮助各大团队以可靠的方式快速地开发新系统。Poky 基于各种架构生成文件系统镜像。其中的典型示例就是 QEMU全系统仿真,一种极其出色的嵌入式软件测试平台。 Yocto 构建工作流 Yocto 也支持其他关键组件(例如 QT、Chromium、LLVM 等)内置到嵌入式发行版中,这也是它极受欢迎的原因之一。 为什么选择 Yocto 尽管 Yocto 操作更复杂,但它也有很明显的优势。 用户群体广泛,开发社区活跃,由Linux基金会出资扶持。 可以实现曾层级,用于各种任务,高度定制化,可添加特殊功能,自定义浏览器等。 在同类项目中,可以兼容的设备最多,可以添加大量的 SDK、工具和功能。 正是有了这些要素,Yocto 实现了高度可定制,同时还拥有强劲的支持,对于希望定制构建嵌入式系统的开发人员来说非常友好。 Yocto的缺点 即便如此,Yocto 也有一些缺点。一方面,入门时的学习曲线稍微有点陡峭。对于时间有限的小型单个项目或小型团队来说,使用这个工具可能意义不大。另一方面,Yocto 的构建时间很长。这就降低了迭代频率,如用在时间紧迫的项目中,效果可能会不太理想,但借助类似 Incredibuild这样的加速工具可大幅提速开发进程。 四、openembedded,poky和yocto的关系 1.OpenEmbedded包含核心元数据层和BitBake构建工具 BitBake是任务执行程序和调度程序,它是OpenEmbedded构建系统的核心。 OpenEmbedded-Core(OE-Core)元数据,其中包括共享配置,全局变量定义,共享类,包装和配方。其中,类定义了构建逻辑的封装和继承。配方是要构建的软件和图像的逻辑单元。 2.Poky既是Yocto的构建示例也是一套构建工具,Poky是位于OE-Core之上的集成层。 meta-poky,这是特定于Poky的元数据。 meta-yocto-bsp,这是Yocto项目特定的basic支持包(BSP)。 五、BitBake 是什么 BitBake是一个通用的任务执行引擎,它允许Shell和Python任务在复杂的任务间相关性约束内工作时高效且并行地运行。BitBake的主要用户之一OpenEmbedded以此内核为基础,并使用面向任务的方法构建嵌入式Linux软件堆栈。从概念上讲,BitBake在某些方面类似于GNU Make,但有很大的区别: 1.BitBake根据提供的构成任务的元数据执行任务。 元数据存储在配方(.bb)和相关的配方“追加”(.bbappend)文件,配置(.conf)和基础包含(.inc)文件以及类(.bbclass)文件中。 2.元数据向BitBake提供有关要运行哪些任务以及这些任务之间的依赖关系的说明。 BitBake包含一个提取程序库,用于从各个地方(例如本地文件,源代码控制系统或网站)获取源代码。 3.每个要构建的单元的指令(例如,一个软件)被称为“配方”文件,其中包含有关该单元的所有信息(依赖项,源文件位置,校验和,描述等)。 4.BitBake包括客户端/服务器抽象,可以从命令行使用,也可以通过XML-RPC用作服务,并且具有多个不同的用户界面。 六、yocto的工作流程 了解Yocto Project工作流非常重要,因为它可以帮助您查明发生问题的位置以及构建的中断方式。工作流分为以下步骤: 1.开发人员指定架构,策略,补丁和配置详细信息。 2.构建系统从指定的位置获取并下载源代码。该项目支持标准方法(例如tarball)或源代码存储库系统(例如git)。 3.将源提取到本地工作区中,在该工作区中将应用补丁,并且将运行用于配置和编译软件的常见步骤。 4.将软件安装到临时暂存区域,在该区域中,您选择的二进制软件包格式(deb,rpm或ipk)将用于汇总软件。 5.在整个构建过程中都会运行不同的质量检查和健全性检查。 6.创建二进制文件后,将生成二进制程序包提要,然后将其用于创建最终的根文件映像。生成文件系统映像。 参考文献: https://blog.csdn.net/lu_embedded/article/details/116565933 https://blog.csdn.net/Ciellee/article/details/124503582 https://baike.baidu.com/item/YOCTO/6281227?fr=aladdin |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【米尔RK3576开发板评测】+项目名称米尔RK3576开发板人脸疲劳检测代码测试
499 浏览 0 评论
【米尔RK3576开发板评测】+项目名称值得购买的米尔RK3576开发板
471 浏览 0 评论
【米尔RK3576开发板评测】+项目名称2、基于gstreamer + mpp硬件编码 实现摄像头推流
1074 浏览 0 评论
【米尔-紫光MYB-J7A100T国产FPGA开发板试用】米尔-紫光PG2L100H国产FPGA开发板开箱评测
1156 浏览 0 评论
【米尔-紫光PG2L100H国产FPGA开发板试用】官方LED例程测试体验
7830 浏览 0 评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】基于ROS系统的三麦轮小车自主导航
3711浏览 2评论
【米尔NXP i.MX 93开发板试用评测】5、安装Debian和排除启动故障
830浏览 2评论
【米尔NXP i.MX 93开发板试用评测】2、异构通信环境搭建和源码编译
968浏览 2评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】Free RTOS应用开发环境部署
1497浏览 1评论
【米尔-芯驰D9开发板- 国产平台试用】- 03- 外设接口测试-U盘、485总线
6846浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 16:33 , Processed in 0.376285 second(s), Total 40, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号