真香!Yocto 铁杆用户转粉 PetaLinux 的三大理由

作者:Ken Sloat,DesignLinx Hardware Solutions 公司嵌入式软件工程师

介绍

在 DesignLinx 硬件解决方案公司,我们使用 PetaLinux 构建定制 Linux 镜像,为客户的定制产品提供支持。不得不承认,初一听闻 PetaLinux 时我是心存质疑的。我的职业背景是嵌入式 Linux,曾从事过大量项目,包括纯 Yocto/Bitbake/OE,以及在不同的 SoC 平台上集成 Linux。Yocto 是构建定制化嵌入式 Linux 发行版的实用方式。从可由源文件构建任意内容的特性到极富扩展性的接口,Yocto 允许用户针对自身产品构建定制化 Linux 发行版。

问题在于,Yocto 的使用难度较大。由于学习难度较高,采用 Yocto 开发将是一个艰深甚至是痛苦的过程。此外,如果没有快速构建设备,构建一个完整的镜像可能需要花费数个小时(取决于封装包的数量)。而当我终于首次开始尝试使用 PetaLinux 的时候,我感到十分惊讶:

因为 PetaLinux 拥有许多堪与 Yocto 媲美的优势,但学习过程却简单方便,且构建时间更短。

转粉 PetaLinux 的三大理由

PetaLinux 是一套直接构建在 Yocto 项目顶层的定制工具,用于实现与赛灵思平台的集成。因此,在某种意义上 PetaLinux 仍属于 Yocto。但赛灵思更进一步,通过提供一套额外的工具,简化了开发流程,使新手使用起来及其方便,在这方面网上已有大量的指南,本文我将不再深入复述一些具体细节,而是想借此机会,跟大家分享一下使用这款赛灵思工具为我带来三大关键优势。

1. 便于入门

正如前文所说,使用 PetaLinux 构建镜像非常方便。只需安装 PetaLinux 工具,您就可能在一小时之内完成镜像构建并启动镜像。在后台,它仍然使用 Yocto,所以在定制开发方面我们仍然有很大的灵活性,例如在项目创建过程中,PetaLinux 实际上是使用 Bitbake“配方”为您创建了一个 Yocto 层。虽然 PetaLinux 提供了创建简单“配方”的机制,但对于较高级的用户来说,还可以手动定制“配方”来实现非标配功能。

2. 加快构建时间

当我构建首个 PetaLinux 镜像时,我惊讶地发现根本不需要几个小时,而是只要几分钟。构建时间可能会随机器性能和互联网连接性能而有所改变,对此我将进行比较。我们公司有一台非常高端的构建服务器,我们将它用于 FPGA 综合、仿真等用途以及软件搭建。“Poky”镜像“core-image-minimal”的纯 Yocto 构建用时大约为 30 分钟(含下载),用于 ZCU104 板的 PetaLinxu 镜像仅用时 10 分钟。虽然这种比较不能算是直观准确的比较,core-image-minimal 也算一种相当紧凑的镜像,但它的用时显然更长。

我不禁在想:“他们是如何做到的?肯定是用了缓存 SSTATE 和下载。”显而易见,这正是他们采取的方法。如果您不知道 SSTATE 缓存,这是它的介绍:SSTATE 缓存是一种 Yocto 已构建“配方”的缓存,可以用在未来的构建工作中,帮助加快构建速度。此外,如果外部源头的“配方”下载也建立了缓存,构建时就无需重新下载。赛灵思就是这样做的,其在 PetaLinux 工具安装包中同时提供了这两项功能,这样用户就能重复使用通用组件,只需要重新构建真正不同的组件,从而显著加快了构建速度。

PetaLinux 安装包中的部分缓存下载

PetaLinux 安装包中的 SSTATE 缓存目录

PetaLinux 安装包中用于 aarch64 的 Yocto 层

3. 自持性以及可轻松实现 Git 集成

赛灵思预先添加了 Git 集成功能。使用 .gitignore 文件能够自动完成新项目的设置工作,以忽略不应属于版本控制的任何内容(构建工件等)。另外,由于PetaLinux 安装所需的大多数外部 Yocto 层都留存在 PetaLinux 安装包内部,这些项目都具有自持性,而您的整个项目的应用、驱动程序、器件树定制等都能够保留在单个项目/库内。

结 论

总之,使用 PetaLinux 的理由众多,我就不一一尽述了。所以,我不得不说,即使是 Yocto 的资深用户,我也鼓励您更深入地去了解 PetaLinux 工具。因为 PetaLinux 最终将为您节省大量时间,让您能够腾出更多时间用来编写软件,而不是学习 Yocto 的使用方法。

文章来源:Xilinx赛灵思官微

最新文章