更新嵌入式Linux设备的最佳方法

如果它是树莓派,Nvidia Jetson Nano/Xavier, Variscite的SOMs, BeagleBone或任何其他基于物联网的嵌入式Linux设备,这篇文章将带你了解部署OTA更新的最佳方法,目的是保持远程产品的更新,稳定和安全。

阅读时间:

10

分钟

在深入研究物联网(IoT) Linux设备的无线(OTA)更新之前,有必要了解这些设备之间的差异。为了确保Linux设备得到正确更新,您需要使用可用于更新嵌入式Linux设备的最佳方法。

这正是我们将在这篇综合指南中介绍的内容。

了解物联网设备(以及任何其他设备)上OTA更新之间的差异

无论您的联网设备用于哪个行业,都需要进行OTA更新,而不仅仅是针对您的物联网设备。

什么是OTA更新?使用设备示例更容易解释这些。你的智能手机一直在接收OTA更新。服务器可以通过OTA机制进行维护,包括远程支持的机制。不管设备是什么,每个设备接收OTA更新的方式都是一样的。因此,如果一台服务器以某种方式接收到OTA更新,其他服务器也会完全相同地接收到这些更新。

相比之下,当你看到物联网领域时,情况就完全不同了。设备的行为和工作方式不同,这意味着OTA更新需要足够通用以处理任何情况。

为了帮助确定OTA更新的方法,当涉及到您的物联网产品时,这些问题应该有所帮助:hth华体会最新官方网站

  • 产品是打算供最终用户使用还是自主工作?
  • 产品是否全天候运行?
  • 产品的主要电源是电池吗?
  • 产品有稳定的网络连接吗?它连接的是移动电话提供商还是有线电话提供商?

一旦你回答了这些问题,你就可以确定如何在你的物联网产品上实现OTA更新的机制。

使用物联网设备要记住的一件事是,没有人“在手边”重新启动设备或呼叫支持中心。相比之下,服务器和移动应用程序是不同的,可以重新启动。因此,如果更新失败,如何更新物联网设备?

通常情况下,你甚至无法足够接近现场的物联网设备,这可能会导致潜在的损害。物联网设备的停机时间确实会造成真正的伤害。如果一个工厂不能继续生产,因为一个卡住的装配线关闭,由于软件更新失败?

这就是为什么使用最好的方法以正确的方式更新嵌入式Linux设备是很重要的。

OTA更新物联网和连接设备的方法

OTA更新物联网和连接设备的方法

因此,虽然发送OTA更新存在风险,但每个提供智能产品的物联网制造商都知道他们需要定期提供OTA更新。

实现这一目标的主要方法有两种:

利用“老方法”-在互联网连接稳定或可用之前,更新嵌入式产品最常见的方式是通过将设备用电缆连接到计算机上进行物理更新,然后将新软件更新“刻录”到其内存中。hth华体会最新官方网站

显然,这种方法既复杂又耗时,成本也很高,而且部署的更新很少。在某些情况下,某些产品在其生命周期内永远不会收到hth华体会最新官方网站任何类型的软件更新。这绝对是一种快速过时的方式。

一旦互联网出现,这些产品可以立即访问互联网,许多公司就可以轻松地部署OTA更新hth华体会最新官方网站,每次更新都用新的操作系统替换整个操作系统。

虽然这似乎是一个好主意,但这种方法唯一的好处是没有惊喜。旧操作系统和新操作系统中存在的东西将在设备上运行……只要更新没有问题就行。

这种方法有一些缺点:

  • 更新的大小。因为整个操作系统都要发送,所以每次更新的大小可以达到数百兆字节,有时甚至是多个gb。它可能会阻碍部署时间,但最大的问题是它将使用大量的互联网数据。大多数物联网设备通过蜂窝网络连接到互联网,并且可能具有较低的数据计划。因此,部署替换整个操作系统的更新是没有意义的。
  • 数据连接问题。如果在更新过程中出现问题,则存在设备无法再上电的风险。这通常被称为“砖”装置。由于这种风险,一些用户可能会选择不安装OTA更新。
  • 更新需要重新启动。重新启动设备会导致不受欢迎的停机时间,有时会由于停机而导致收入损失(就像上面的工厂示例一样)。

因此,尽管互联网可能加快了OTA更新的可访问性和交付速度,但由于上述挑战,使用这种方法发送的更新数量仍然很低。

什么是“新”方法-这似乎是显而易见的,但这种方法只关注于为需要更改的部分操作系统发送更新。这方面的一个例子是向应用程序的二进制文件发送更新或更新应用程序使用的模块。与旧方法相比,这种方法的缺点最小。唯一真正的问题是,如果更新没有按日期(或其他明确的标识符)组织,就很难知道哪个更新被发送到哪个设备。

使用这种方法有很多优点:

  • 更新大小减小。在大多数情况下,OTA更新的大小将非常小。因为你只发送了需要更新的部分操作系统,所以更新是很小的。因此,网络数据计划有限的设备可以很容易地更新软件,而不用担心数据耗尽。
  • 不需要重新启动。在某些情况下,应用程序甚至不需要在实现更新时停止运行。这可以防止不必要的停机时间和给用户带来的不便。
  • 没有砖块设备。99%的情况下,如果OTA更新出了问题,设备不会被阻塞。智能OTA更新方法可以识别更新过程中出现的故障,并将恢复到以前的稳定软件版本。
  • 更好的安全性。由于可以根据需要经常部署更新,因此可以维护安全协议,从而减少了发生在著名的Mirai机器人上的违规事件的可能性。

实现OTA更新机制

虽然部署OTA更新的最佳方法完全取决于企业,但对于那些选择在Linux设备上使用旧方法的人来说,在修改引导加载程序和Linux内核本身等组件时,将需要进行一些低级编程。

有一个开源项目叫做swupdate,为该问题提供了部分解决方案。您会注意到,当您使用swupdate时,您仍然需要集成它并创建功能来满足您的需求。如果你打算使用更流行的方法,有两种方法可以有效地做到这一点:

1 .内部OTA更新机制

你和你的团队可以在内部创建自己的OTA更新机制。但如果你决定这样做,你需要考虑以下几点:

  • 您需要开发客户端和服务器端。服务器应该运行在云服务器上,比如AWS或者谷歌云。客户端应该在您的设备上运行。
  • 大多数物联网设备都是在NAT后运行的。这意味着它们在网络上没有全局IP地址,这意味着你不能直接联系它们。服务器与设备通信的唯一方式是当它们第一次开始对话时。因此,需要设置这样一种机制,即只有客户端向服务器发送第一个数据包,而不是相反。
  • 您需要实现一个回滚系统。你的物联网设备上的OTA更新很可能会在某个时候失败。这就是为什么您需要开发一个智能回滚系统,该系统旨在识别故障并在更新之前切换回旧软件。对于回滚系统,您需要考虑许多边缘情况。例如,如果更新在包升级的过程中停止,则回滚系统将需要检查旧版本的包是否仍在安装和工作,如果不是,则重新安装该版本。

2 .使用现成的商业平台

这种类型的平台提供了一种快速、稳定和安全的解决方案,并具有上面概述的大多数您需要的功能。一个潜在的商业平台是JFrog Connect(前身为Upswift)。JFrog Connect的平台为物联网和连接设备提供了一个管理仪表板。

2022世界杯南美区预选赛 提供OTA软件更新,支持快速部署和远程轻量级软件更新(使用上述新方法)。

智能回滚引擎将自动识别故障并将设备恢复到以前的软件版本。

JFrog Connect平台还提供了帮助管理和支持物联网产品的工具,让用户可以选择通过安全连接远程连接到任何产品,以提供技术支持。hth华体会最新官方网站注册到JFrog Connect是完全免费的,甚至包括一个示例设备,让你玩的平台。

JFrog Connect(以前的Upswift)的另一个巨大优势是与任何基于linux的设备进行超级简单和快速的集成,耗时不超过1分钟,并且可以与已经部署的产品一起完成。hth华体会最新官方网站

如何使用JFrog Connect(以前的Upswift)部署远程软件更新?

现在您已经了解了更新嵌入式Linux设备的最佳方法,在JFrog Connect(以前的Upswift)上有两个工具可以轻松快速地远程部署OTA软件更新。

JFrog连接微更新工具

如果你正在寻找一个一体化的智能系统,这个更新工具可以轻松地部署和管理OTA软件更新。旨在支持远程嵌入式基于linux的产品在任何环境和规模。hth华体会最新官方网站
它可以用于机器人、kiosk屏幕、网关、机器、城市摄像头等等。
它易于使用,可用于在几秒钟内部署文件、目录和包。它带有以下内置机制:

  1. 聪明的回滚。正如本指南中概述的那样,智能回滚对于任何OTA更新工具都很重要。如果在现场的Linux设备上部署更新失败,回滚系统负责恢复部署,并确保设备安全稳定,可以自动使用。
  2. 聪明的替换.微更新工具会自动替换相同路径下具有相似文件名的已部署文件和目录。这是一个很好的功能,如果你想升级你当前的产品软件应用程序,而不必首先删除它。
  3. 部署设计。为了确保微更新工具提供一个安全稳定的环境,我们进行了大量的思考和谨慎。这是通过填充部署的配方来实现的,确保你的应用在升级过程中不会被损坏。
  4. 安全。微更新工具有一个勤奋的架构。它的构建和设计符合医疗保健和企业合规性:基于aws架构的端到端ASE256加密。

JFrog连接容器更新工具

这是一个一体化系统,允许您在基于linux的远程嵌入式产品上部署和管理OTA容器更新,无论它们处于何种环境和规模。hth华体会最新官方网站它是敏捷软件解决方案的理想选择。
容器更新工具的理想用例是那些在Docker容器中运行产品软件应用程序的人。
以下是其中的一些机制:

  1. Docker Hub & AWS ECR集成。JFrog Connect容器更新与Docker Hub和AWS ECR无缝集成。这确保了顺利、易于使用和安全的部署。容器驻留在DockerHub上,并直接从存储库部署到边缘设备。
  2. 聪明的回滚。就像微更新工具一样,容器更新工具中有一个回滚特性,如果出现任何故障,它将恢复部署并使旧容器恢复工作。
  3. Scale & Fit。JFrog Connect容器工具附带了Docker构建的所有选项。它可以直接从Upswift远程部署具有不同标志和选项的容器多次。

你会发现世界各地都在使用JFrog Connect更新工具。今天就加入我们的生态系统,确保顺利轻松的生产季节。

注册、连接设备并开始部署远程更新需要60秒。

注册- >https://connect.jfrog.io/register/