1
完善资料让更多小伙伴认识你,还能领取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 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【米尔-紫光MYB-J7A100T国产FPGA开发板试用】米尔-紫光PG2L100H国产FPGA开发板开箱评测
1025 浏览 0 评论
【米尔-紫光PG2L100H国产FPGA开发板试用】官方LED例程测试体验
5012 浏览 0 评论
【米尔-紫光PG2L100H国产FPGA开发板试用】上电测试报告
4657 浏览 0 评论
【米尔-紫光PG2L100H国产FPGA开发板试用】开箱评测!米尔电子PG2L100H开发板深度体验报告
992 浏览 0 评论
【米尔-Xilinx XC7A100T FPGA开发板试用】+04.SFP之Aurora测试(zmj)
817 浏览 0 评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】基于ROS系统的三麦轮小车自主导航
3654浏览 2评论
【米尔NXP i.MX 93开发板试用评测】5、安装Debian和排除启动故障
724浏览 2评论
【米尔NXP i.MX 93开发板试用评测】2、异构通信环境搭建和源码编译
865浏览 2评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】Free RTOS应用开发环境部署
1459浏览 1评论
【米尔-芯驰D9开发板- 国产平台试用】- 03- 外设接口测试-U盘、485总线
6817浏览 1评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 01:17 , Processed in 0.735173 second(s), Total 65, Slave 49 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号