用OpenSTLinux帮助决定合适的嵌入式Linux发行版
2024-02-21 来源:elecfans
OpenSTLinux是用于STM32 微处理器的开源 Linux 发行版。该操作系统可帮助工程团队更快地进行原型设计并缩短产品上市时间。因此,它可以作为一种独特的支持工具,同时也为开源社区做出贡献。 很多时候,团队将 Tux 视为可以解决所有软件需求的灵丹妙药。然而,从概念到大众市场需要的不仅仅是内核,尤其是在嵌入式系统上。因此,选择正确的发行版和平台至关重要。为了帮助面临这一挑战的专业人士,我们列出了在开始项目之前需要回答的七个基本问题。这些询问还将帮助决策者评估他们的需求并决定哪种嵌入式 Linux 发行版适合他们。实际上,它们代表了旨在减少开发过程中重大摩擦的开发人员的指导方针。
正如我们在今年早些时候发布的使用 MPU 的十诫中看到的那样,使用微处理器和嵌入式 Linux 会变得异常复杂。为了帮助处理这种复杂性,我们提出了 OpenSTLinux,这是一个主流的开源发行版。它包括板级支持包 (BSP)、内核、驱动程序、安全引导链、安全操作系统和应用程序框架。无论是来自 MCU 领域还是熟悉 MPU,开发人员面临的挑战是找出最适合他们项目的解决方案。因此,以下问题可作为团队评估其需求的预备调查。
OpenSTLinux 及其贡献
一、嵌入式Linux发行版给开发者带来了什么?
按照惯例,OpenSTLinux 为 STM32MP1 微处理器提供板级支持包和应用程序框架。BSP 包括带有低级驱动程序的内核空间。它还拥有 TF-A 和 U-Boot 引导链、用于安全系统的 OP-TEE 安全操作系统以及用于非安全环境的 Linux 内核。传统上,许多业内人士只是停留在 BSP 上。发生这种情况时,开发人员必须花费大量时间寻找合适的中间件。ST采用了不同的理念。为了帮助工程师更快地编写应用程序,OpenSTLinux 还在用户空间中提供了软件包。它位于内核空间之上,为电源管理或特定网络协议等提供中间件。我们决定超越内核空间,以确保开发人员可以更快地选择驱动程序并从软件优化中受益。
2. 嵌入式 Linux 发行版为项目带来了什么?
嵌入式 Linux 在许多方面都是独一无二的,其中之一就是需要创建自定义发行版。与 PC 上的 Linux 不同,推出通用发行版是不可能的。主流的 OpenSTLinux 发行版是嵌入式系统定制发行版的基础。但是,获得专用发行版是开发过程中最复杂的阶段之一。为了确保开发人员能够尽快完成最佳工作,我们与Yocto 项目合作。Yocto 是工业环境中用于定制嵌入式 Linux 发行版的事实上的创建工具。因此,与 Yocto 项目密切合作可以确保团队获得项目所需的支持和资源。
ST 合作伙伴计划的成员也提供了宝贵的帮助。例如,Bootlin可以为从事 Yocto Project 或 Buildroot 的团队提供培训服务。当项目要求不像工业应用程序那样严格时,许多开发人员通常更喜欢后者。无论哪种方式,Bootlin 都可以帮助工程师快速入门。同样,Pengutronix、TimeSys和Witekio负责引导加载程序、内核、用户空间等,因此团队可以专注于他们的功能。因此,OpenSTLinux 不仅仅是一个简单的操作系统。它是一个庞大的生态系统的一部分,将一个项目带到了终点线。
查找更多 ST 授权合作伙伴
3. 嵌入式 Linux 发行版为开源社区带来了什么?
在所有发布嵌入式 Linux 软件包的公司中,许多公司不愿与开源社区广泛合作,这可能会导致各种问题。例如,它可以限制对硬件的支持,或者它可能意味着安全漏洞仍然未被注意到。结果,它增加了维护成本并降低了代码质量。硬件供应商可以做出的一个真正重要的贡献是上游他们的驱动程序。这是制造商上传其开源驱动程序以使其成为主要 Linux 代码库的一部分的过程。但是,社区可能需要几个月甚至一年的时间才能批准其中的一些。公司可能还必须修改其提交的重要部分或进行优化。
上游是如此重要,而且往往如此不受欢迎,以至于 Linux 基金会试图解决这个问题。Linux.com上的一篇博文展示了如何让管理人员相信,上游化符合他们的“最大利益”。ST 致力于与开源社区密切合作,在过去三年中,我们尽可能多地向上游推广了我们的驱动程序。我们还创建了业内最大的内部 Linux 开发团队之一。今天,大约 95% 的 STM32MP1 驱动程序位于主要的 Linux 代码库中。与社区合作还可以确保我们继续改进我们的解决方案。与传统驱动程序相比,应用程序将在更长的时间内获得更大的支持。同样,开发人员可以利用标准化的 API,而用户可以更快地收到安全补丁。因此,由于我们对 Linux 社区的承诺,ST 可以保证更高水平的质量。
OpenSTLinux 及其支持
4. 嵌入式 Linux 发行版是否有来自其供应商和专门社区的强大支持系统?
选择嵌入式 Linux 发行版的公司必须考虑支持操作。传统上,供应商维护当前的 LTS 内核,这意味着他们添加功能并发布错误修复。因此,当新内核出现时,制造商可能不支持先前版本的最新驱动程序。因此,工程师必须使用第三方来继续支持在其应用程序中使用的旧内核。
如果这是非常标准的做法,它可能会变得很麻烦。嵌入式开发人员通常在以前的 LTS 内核版本上启动项目,这与倾向于支持最新版本的 PC 开发人员不同。如果嵌入式系统使用先前的内核意味着工程师可以重用过去的工作,它甚至可能是有利的。不幸的是,如果供应商不再支持以前的 LTS 内核版本,团队可能不得不在最新版本上开始一个项目。因此,程序员必须编写更多的代码,从而进一步延迟它们的上市时间。
ST 通过系统地支持当前和以前的 LTS 内核解决了这个问题。因此,团队具有更大的灵活性。开发人员可能更有信心在较早的内核上启动项目以加速开发。此外,STM32 MPU 社区是询问有关 OpenSTLinux 问题的好地方。举个例子,这个 ST 社区成员在构建其 Linux 内核时遇到了问题。几个小时后,一名 ST 员工回复了一些提示,另一位社区成员也提出了其他建议。我们还提供了一个广泛的 Wiki,可帮助开发人员入门。我们还提供研讨会和其他网络研讨会来协助工程师。
5. 嵌入式 Linux 发行版的供应商是否提供安全功能?
保护嵌入式系统的安全既复杂又至关重要。工程师们知道,黑客可能会损害他们的品牌、伤害用户并可能窃取重要的知识产权。但是,如果没有负责嵌入式 Linux 发行版的制造商的支持,开发人员必须自己做所有事情。因此,它可能导致延误和大量投资。
为确保团队不必经历这些,我们提供了一系列安全解决方案。例如,STM32Trust提供了帮助开发人员实现安全固件更新或安全启动的工具。我们还提供软件包以利用安全固件和安全模块安装。两者都可以保护公司在生产过程中免受知识产权盗窃。最后,OpenSTLinux 依赖于 STM32MP1 中的硬件单元,例如那些加速 AES 256 加密和解密操作的单元。
OpenSTLinux 和 STM32MP1 还意味着开发人员可以快速使用基于Arm 可信固件 (TF-A)的安全启动链。然后,他们可以启动一个开放式可移植可信执行环境 (OP-TEE)。OP-TEE 对 ST 来说是特殊的,因为我们最初编写了 Secure OS 并将其反向移植到 Arm v7,然后将其交给ST 合作伙伴计划的成员Linaro 。最终,我们的重点是保护嵌入式系统的所有级别。
6. 嵌入式 Linux 发行版的供应商是否提供软件来扩展功能?
刚接触嵌入式 Linux 的工程师可能会低估编写应用程序的工作量。不管发行版如何,就是这样,在开发人员发布工作程序之前还有很长的路要走。因此,我们提供扩展包来帮助团队让他们的概念验证更快地工作。例如,X-LINUX-AI包含用于计算机视觉演示的框架和应用示例。同样,X-LINUX-PREDMNT将启动预测性维护和状态监测应用。后一个包包括 AWS IoT Greengrass Edge Computing 服务并使用 STM32MP1 设置网关。该软件还适用于WireST-SDK和EdgeST-SDK以促进边缘计算系统的创建。
ST 将使其合作伙伴和客户能够提供他们的扩展包。与 Yocto recipes 类似,这些软件工具将帮助希望快速发布应用程序的开发人员。
要了解开发人员如何使用我们的 STM32MP1 作为 AWS 云服务的网关,请查看状态监控和预测性维护:更快发送您的第一个传感器数据的解决方案。
我们在 XR 日会议期间展示了 X-LINUX-AI 的演示。要了解有关我们使用的硬件的更多信息,请查看:XR Day Live!关注塑造我们头上穿什么的活动。
7. 嵌入式 Linux 发行版的供应商是否提供用于快速原型制作的软件包?
OpenSTLinux 提供了三个包。STM32MP1Starter是启动演示和试用我们的开发板的最快方式。它包括多个固件示例和工具来安装我们的 Linux 映像。一旦开发人员希望开始编写概念验证或原型设计,他们就可以转向STM32MP1Dev,其中包括一个软件开发套件。最后,STM32MP1Distrib提供 OpenSTLinux 板级支持包 (BSP)。它使团队能够创建类似于 Starter 或 Developers Package 的自定义分发。
查看我们在线发布的培训课程:视频:STM32MP1 研讨会或如何欣赏 MPU 设计的复杂性。
现在怎么办?
对于许多工程师来说,下一步通常是最困难的:开始实际项目。一旦团队评估了他们的需求并回答了这七个问题,规划路线图可能会令人生畏。这就是我们确保 OpenSTLinux 成为 ST 生态系统不可或缺的一部分的原因。我们努力使操作系统成为工程师和开源社区的重要贡献者。它还具有丰富的功能,可简化开发、保护产品并缩短上市时间。然而,因为它存在于 ST 产品组合中,所以 OpenSTLinux 不仅仅是其各个部分的总和。
熟悉 STM32 MCU 的开发人员可以移植 MCU 代码并在 STM32MP1 的 Cortex-M4 上使用 RTOS。希望构建界面的团队可以依赖Qt和Crank是 ST 合作伙伴计划的成员这一事实。工程师可以添加屏蔽层来试验传感器,尝试亚千兆赫协议,或者只是添加新功能,使其与竞争对手区分开来。我们还提供软件工具来促进定制 PCB 的创建。最终,OpenSTLinux 和 ST 生态系统的其余部分提供了一种整体方法,力求揭开开发的神秘面纱,因此工程师不会问他们如何提出设计,而是他们可以为客户做些什么。