All Projects → sbabic → Swupdate

sbabic / Swupdate

Licence: gpl-2.0
Software Update for Embedded Systems

Programming Languages

c
50402 projects - #5 most used programming language
lua
6591 projects

Projects that are alternatives of or similar to Swupdate

Szl
A lightweight, embeddable scripting language
Stars: ✭ 134 (-81.15%)
Mutual labels:  embedded-systems, iot, embedded
Rauc
Safe and secure software updates for embedded Linux
Stars: ✭ 360 (-49.37%)
Mutual labels:  iot, ota, embedded
kocherga
Robust platform-agnostic Cyphal/DroneCAN bootloader for deeply embedded systems
Stars: ✭ 21 (-97.05%)
Mutual labels:  embedded, ota, embedded-systems
Printf
Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.
Stars: ✭ 1,157 (+62.73%)
Mutual labels:  embedded-systems, iot, embedded
Blynk Library
Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc.
Stars: ✭ 3,305 (+364.84%)
Mutual labels:  iot, ota, embedded
Platformio Vscode Ide
PlatformIO IDE for VSCode: The next generation integrated development environment for IoT
Stars: ✭ 676 (-4.92%)
Mutual labels:  iot, embedded
Nnom
A higher-level Neural Network library for microcontrollers.
Stars: ✭ 382 (-46.27%)
Mutual labels:  iot, embedded
Zephyr
Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
Stars: ✭ 5,335 (+650.35%)
Mutual labels:  iot, embedded
Guilite
✔️The smallest header-only GUI library(4 KLOC) for all platforms
Stars: ✭ 5,841 (+721.52%)
Mutual labels:  iot, embedded
Awesome Circuitpython
A curated list of awesome CircuitPython guides, videos, libraries, frameworks, software and resources.
Stars: ✭ 360 (-49.37%)
Mutual labels:  iot, embedded
Platformio Atom Ide
PlatformIO IDE for Atom: The next generation integrated development environment for IoT
Stars: ✭ 475 (-33.19%)
Mutual labels:  iot, embedded
Embedded Notes
嵌入式linux软件开发、嵌入式linux驱动开发、c语言、单片机开发、IOT开发等面试要点记录
Stars: ✭ 487 (-31.5%)
Mutual labels:  iot, embedded
Flashdb
An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库
Stars: ✭ 378 (-46.84%)
Mutual labels:  iot, embedded
Azure Iot Sdk C
A C99 SDK for connecting devices to Microsoft Azure IoT services
Stars: ✭ 412 (-42.05%)
Mutual labels:  iot, embedded
Embedded Resources
Embedded Artistry Templates, Documents, and Source Code
Stars: ✭ 360 (-49.37%)
Mutual labels:  embedded-systems, embedded
Attifyos
Attify OS - Distro for pentesting IoT devices
Stars: ✭ 615 (-13.5%)
Mutual labels:  iot, embedded
Platformio Core
PlatformIO is a professional collaborative platform for embedded development 👽 A place where Developers and Teams have true Freedom! No more vendor lock-in!
Stars: ✭ 5,539 (+679.04%)
Mutual labels:  iot, embedded
Renode
Renode - Antmicro's virtual development framework for complex embedded systems
Stars: ✭ 525 (-26.16%)
Mutual labels:  embedded-systems, iot
Arduinojson
📟 JSON library for Arduino and embedded C++. Simple and efficient.
Stars: ✭ 5,456 (+667.37%)
Mutual labels:  iot, embedded
Rt Thread
RT-Thread is an open source IoT operating system.
Stars: ✭ 6,466 (+809.42%)
Mutual labels:  embedded-systems, iot

SWUpdate - Software Update for Embedded Linux Devices

Build Status Coverity Scan Build Status License

SWUpdate is a Linux Update agent with the goal to provide an efficient and safe way to update an embedded Linux system in field. SWUpdate supports local and OTA updates, multiple update strategies and it is designed with security in mind.

Getting started

To start with SWUpdate, it is suggested you look at the documentation and build for one evaluation board (or you run SWUpdate on your host for 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 access to the Online Documentation.

Building

SWUpdate is well integrated in the Yocto build system by adding the 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 in meta-swupdate-boards layer.

License

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

Community support

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

[email protected]

The Mailing List is open without need to be registered.

Contributing to the project

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

Please read the contributing chapter in the documentation how to contribute to the project.

Patches are collected by Patchwork

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].