swupdate

Software Update for Embedded Systems
授权协议 GPL-2.0 License
开发语言 C/C++
所属分类 其他开源、 嵌入式操作系统
软件类型 开源软件
地区 不详
投 递 者 空慈
操作系统 嵌入式
开源组织
适用人群 未知
 软件概览

SWUpdate - Software Update for Embedded Linux Devices

SWUpdate is a Linux Update agent with the goal toprovide an efficient and safe way to updatean embedded Linux system in field. SWUpdate supports local and OTAupdates, multiple update strategies and it is designed with securityin mind.

Getting started

To start with SWUpdate, it is suggested you look at the documentationand build for one evaluation board (or you run SWUpdate on your hostfor a first overview).

Features

SWUpdate is a framework with a lot of configurable options:

  • Update of all components of device (rootfs, kernel, bootloader, microcontroller FW)
  • Install on embedded media (eMMC, SD, Raw NAND, UBIFS, NOR and SPI-NOR flashes)
  • Partitioner for GPT and MBR partition table
  • Allow single image delivery on multiple devices
  • Streaming mode without temporary copies of artifacts
  • Multiple interfaces (local and OTA) for getting software
    • local storage (USB, etc.)
    • integrated web server
    • integrated REST client connector to hawkBit for fleet updates.
    • remote server download
  • Software delivered as images, gzipped tarball, etc.
  • Allow custom handlers for installing FPGA firmware, microcontroller firmware via custom protocols.
  • Delta updates based on librsync.
  • Fail safe and atomic update
  • Lua interpreter to extend the update rules on your needs
  • Hardware / Software compatibility.
  • Small footprint to generate a rescue system to restore the device.
  • Cryptographic sign and verification of updates
    • support for OpenSSL
    • support for mbedTLS
    • support for WolfSSL
  • Encryption of artifacts via symmetric AES key.
  • pre and post update scripts
  • small resources required.
  • controllable via library
  • progress interface to report update status to an application / HMI.
  • ...and many others.

Take a look at features.

Technical documentation

Documentation is part of the project and can be generated, or you accessto the Online Documentation.

Building

SWUpdate is well integrated in the Yocto build system by addingthe meta-swupdate layer.It is also integrated in Buildroot.Debian (and Debian-like distributions) has merged a package.

Examples using meta-swupdate with evaluation boards (Beaglebone, RPI3) are provided inmeta-swupdate-boards layer.

License

SWUpdate is released under GPLv2. A library to control SWUpdate is part of theproject and it is released under LGPLv2.1.License information for any file is either explicitly statedor defaults to GPL version 2.0. Extension written in Lua are subjected toLua license (MIT).

Community support

A community support takes place on the SWUpdate's Mailing List:

swupdate@googlegroups.com

The Mailing List is open without need to be registered.

Contributing to the project

Contributions are welcome ! You can submit your patches (or post questionsregarding the project) to the Mailing List.

Please read the contributingchapter in the documentation how to contribute to the project.

Patches are collected by Patchwork

  • 1. OTA更新方案简介 OTA系统更新 = OTA下载 + 系统更新 OTA下载:比较容易,也比较灵活,ftp,http, web,samba 下载都可以,也可以接入第三方OTA 下载程序。 系统更新:这个比较有难度,当前来看系统更新的方案有recovery 更新,和 A/B系统方案。两者各有优缺点,根据实际需求选择。 2. 基于swupdate 的recovery 实现 swupdate 是一

  • 2.配置选项:m menuconfig/m ota_menuconfig 2.1选上swupdate包,主系统和recovery系统均需要 Allwinner     <*> swupdate 一般默认即可,特殊调整,比如剪裁网络部分 2.2都需要选上 wifimanager-demo,主系统和recovery系统都需要 Allwinner      > wifimanager         [

  • SWUpdate:使用默认解析器的语法和标记 介绍 SWUpdate使用库“libconfig”作为镜像描述的默认解析器。 但是,可以扩展SWUpdate并添加一个自己的解析器, 以支持不同于libconfig的语法和语言。 在examples目录中,有一个用Lua编写的,支持解析XML形式 描述文件的解析器。 使用默认解析器,则sw-description遵循libconfig手册中描述的语法规

  • 最近调试嵌入式升级swupdate开源工具。 添加了在swupdate/handlers中添加了yaffs_handle.c 原工程文件在flash_erase和flash_write_image函数中没有详细关于nand flash oob区域的管理操作。需要加上这一部分的处理。 yaffs_handle.c代码如下: /* * (C) Copyright 2014-2016 * Stefa

  • 从可信的来源更新镜像 现在越来越重要的是,设备不仅要能安全地进行更新操作, 而且要能够验证发送的图像是否来自一个已知的源, 并且没有嵌入恶意软件。 为了实现这个目标,SWUpdate必须验证传入的镜像。 有几种方法可以做到这一点。 这里有一些问题,完整的复合镜像需要签名吗?还是只是它的某些部分需要? 不同做法的优缺点将在下一章中描述。 对复合镜像进行签名 一个直接了当的做法是对整个复合镜像进行签名

  • 许可证 SWUpdate是免费软件。它的版权属于Stefano Babic和其他许多贡献代码的人(详情请参阅实际源代码和git提交信息)。 您可以根据自由软件基金会发布的GNU通用公共许可证第2版的条款重新分发SWUpdate和/或修改它。 它的大部分还可以根据您的选择,在GNU通用公共许可证的任何后续版本下发布——有关例外情况,请参阅个别文件。 为了更容易地表示许可证,源文件中的许可证头将被替换

  • 官方源码:https://github.com/sbabic/swupdate 官方文档:http://sbabic.github.io/swupdate/ 非官方翻译的中文文档:https://zqb-all.github.io/swupdate/ 源码自带文档:解压 tina/dl/swupdate-xxx.tar.xz ,解压后的 doc 目录下即为此版本源码附带的文档。 社区论坛:http

相关阅读

相关文章

相关问答

相关文档