webhome < news < denx · 2017. 2. 28. · created date: 2/14/2017 3:34:48 pm
TRANSCRIPT
www.denx.de
https://sbabic.github.io/swupdate/SWUpdate https://github.com/sbabic/swupdate/
SWUpdateThe Software Updater
Kaum ein industrielles Embedded System kommt ohne
Software Updates aus: sei es, dass neue Leistungsmerk-
male nachgerüstet werden sollen, dass Fehler korrigiert
oder bekannt werdende Sicherheitslücken behoben wer-
den müssen. Die meist auf Paketmanagern beruhenden
Update-Mechanismen klassischer Linux-Distributionen
sind hierfür ungeeignet: sie können z. B. im Fehlerfall
weder ein Recovery noch ein Fall-Back auf die vorherige
Version garantieren, so dass z. B. „Over-the-Air“-Updates
ein unkalkulierbares Risiko wären.
SWUpdate beruht auf den Erfahrungen aus 18 Jahren
Embedded Linux Entwicklung und den Erkenntnissen
aus zahllosen Projekten für verschiedenste Kunden und
Einsatzgebiete. Inzwischen wird SWUpdate von einer
ständig wachsenden Community auch in zahlreichen
Projekten außerhalb von eingesetzt. Mit seinem
Fokus auf Robustheit, Zuverlässigkeit, Sicherheit und
Flexibilität hat es sich damit zu einem De-Facto-Indus-
triestandard entwickelt.
Hardly any industrial system can do without software
updates - be it that new features need to be added, bugs
be fixed or patches for security exploits need to be in-
stalled. The usually package manager based update tools
of the classic Linux distributions don‘t fit this purpose: for
example, in case of errors they cannot guarantee neither
a recovery nor a fall-back to the previous version, so that
for example „Over-the-Air“ updates would present unac-
ceptable risks.
SWUpdate is based on the experience of 18 years of
Embedded Linux development and accumulates the
knowledge of a very large number of projects for different
customers and use cases. In the meantime, a constantly
growing community has been using SWUpdate in many
projects outside Putting the focus on robustness,
reliability, security and flexibility, SWUpdate has become
a de facto industry standard.
Merkmale von SWUpdate: SWUpdate unterstützt verschiedene Update-
Strategien, insbesondere Recovery-System und Double-Copy.
Es können alle gängigen Speichermedien verwendet werden, z. B. NOR/SPI-NOR Flash, NAND Flash, eMMC, SDCard, ...
Das ganze Design ist darauf ausgelegt, bei allen Störungen (z. B. Stromausfall während des Updates) garantiert immer wieder in einen betriebsfähigen Zustand zu kommen.
Durch Mechanismen wie Hardware-Watchdog, Boot-counter usw. kann das auch garantiert werden, wenn z. B. die neu installierte Software funktionsunfähig ist.
Alle Updates erfolgen streng atomar und liefern ein präzise reproduzierbares Ergebnis.
SWUpdate kann Hardware-Kompatibilität prüfen, so dass ein gemeinsames SWUpdate-Image für ganze Produktfamilien verwendet werden kann.
Sicherheit ist ein wesentliches Design-Merkmal: SWUpdate-Images können kryptographisch signiert (Authentifizierung) und/oder mit symmetrischen Keys verschlüsselt werden.
SWUpdate-Images können im Streaming-Modus ohne Zwischenspeicherung auf dem Target installiert werden.
Es werden Pull- und Push-Verfahren unterstützt, d. h. das Embedded System sucht selbständig nach Updates, oder diese werden von einem externen Server auf die Targets verteilt.
SWUpdate ist bereits in Buildsysteme wie Yocto und Buildroot integriert.
Durch Pre- und Post-Install-Scripte (LUA, Shell) ist SWUpdate leicht an spezielle Anforderungen anpassbar.
SWUpdate bietet eine offene, gut dokumentierte Schnittstelle zu Back-Ends. Es wurde erfolgreich in industrielle Provisionierungssysteme wie hawkBit integriert.
SWUpdate ist vollständig Open Source (GPLv2).
SWUpdate Features: SWUpdate supports multiple update strategies, espe-
cially Recovery System and Double Copy.
All popular storage media can be used, e. g. NOR/SPI-NOR flash, NAND flash, eMMC, SDCard, ...
The design is focused on robustness so that in all cas-es (like for example power loss during an update) it is guaranteed to recover into an operational state.
Using features like hardware watchdog, boot counter etc. guarantee that even if for example the newly installed software does not work properly.
All updates are strictly atomic and lead to strictly reproducible results.
SWUpdate can check for hardware compatibility, so a common SWUpdate image can be used for whole product families.
Security is one of the key features of SWUpdate: im-ages can be cryptographically signed (authentication) and/or encrypted using symmetric keys.
SWUpdate supports a streaming mode so you can in-stall updates on the target without need for intermedi-ate storage.
Both pull and push modes are supported, i. e. the em-bedded system either actively searches for updates, or a remote server distributes these to the target systems.
SWUpdate is fully integrated into common build systems like Yocto and Buildroot.
It is scriptable (LUA, Shell) and supports pre- and post-install scripts so that it is easy to adjust to specific requirements.
SWUpdate provides an open, well documented inter-face to back ends. It has been successfully integrated into industrial provisioning systems like hawkBit.
SWUpdate is fully Open Source (GPLv2).
denx software engineering GmbH | Kirchenstraße 5 | 82194 Gröbenzell | Germany
Tel.: +49 (0) 81 42 6 69 89 - 0 | Fax: +49 (0) 81 42 6 69 89 - 80 | Email: [email protected] | Web: www.denx.de