SlideShare a Scribd company logo
1 of 31
Download to read offline
Mirza Krak
Embedded Linux Solutions Architect
Mender.io
NDC Techtown 2019
The ultimate guide to software updates on embedded Linux devices
Session Overview
● Introduction
● Embedded Linux overview and use-case
● Software update methods
● Existing solutions
Goal: Present an overview of software update techniques used
in embedded Linux and present existing solutions for software
updates
About Me
Mirza Krak
○ 8 years in embedded Linux
○ Background in automotive
○ Board Support Package development
○ Linux kernel contributor
Mender.io
○ Over-the-air update solution for embedded Linux
○ Open source (Apache 2.0 License)
○ Remote deployment management (server)
○ Under active development
Embedded Linux
Embedded Linux
Embedded Linux - areas of usage
● Transportation
○ Public transport
○ Fleet management
○ Tracking
○ Predictive maintenance
● Infrastructure
○ Power and water grids
○ Metropolitan areas
● Buildings
○ Monitoring
○ Energy optimization
○ Access control
○ Security
● Automotive
○ Infotainment
○ Telematics and connectivity
● “Things”
○ Appliances, Routers, TV’s...
Internet of Things (IoT)
The Internet of things (IoT) is the extension of
Internet connectivity into physical devices
and everyday objects. Embedded with
electronics, Internet connectivity, and other
forms of hardware (such as sensors), these
devices can communicate and interact with
others over the Internet, and they can be
remotely monitored and controlled
Source: WikipediaIt means taking all the things in the world and
connecting them to the internet
The embedded environment
● Remote
○ Expensive to reach physically
● Long expected lifetime
○ 5 - 10 years
● Unreliable power
○ Battery
○ Suddenly unplugged
● Unreliable network
○ Intermittent connectivity
○ Low bandwidth
○ Insecure
What can
go wrong?
Must be updatable
There will be bugs, vulnerabilities
… and new features
… after the device is deployed to the field
Cost savings by using open source platforms
Embedded System Stack
Cost
10%
30%
60%
Product
Differentiation
Use open source here to:
Lower layers are expensive and
provides no differentiation
HMI
Applications
Middleware
OTA update
Operating System
Board Support
Package
Hardware
● Lower cost on non-differentiating
components
● Shorten time-to-market
● Reallocate development to differentiation:
○ Applications and HMI
Software update on-site
● No connectivity
● Technician
○ USB flash drive
● Does not scale
Software update Over-The-Air (OTA)
● No easy access to the device
● Deployment management server
○ Traceability
○ Status reports
○ Current versions
○ Controlled roll-outs
Anatomy of embedded Linux
Bootloader: system initialization code starting with
the reset vector.
● Initialize and scrub RAM
● Setup power rails and clocks
● Load the “rest” of the system
Bootloader
Linux kernel
Device Tree (ARM)
Root filesystem
Kernel: core operating system functionality
● Resource management
● Process control
● Device drivers
Device Tree: hardware description (ARM)
Root filesystem: all files, executables, data, etc for the
system
Anatomy of embedded Linux (Image)
Linux kernel
Distribution
/
Applications
Update Client
Devicetree
File system image
Requirements (minimal)
● Able to update all components
○ Normally unsafe to update bootloader
● Never render the device unusable (brick)
○ Fail-safe / roll-back
● Atomic updates
○ No partial install
● Integrity check
● Signed images
○ Trusted images
● Compatibility check
Alternative approaches
● Image/block based updates
○ Easy to implement, test, verify and maintain
○ Can be complemented with binary delta
● Incremental atomic image upgrade mechanism
○ Complexity
● Containers
○ Run applications in containers on device
● Package managers (dpkg, dnf, opkg)
○ Not designed for embedded use-case
○ Not atomic
○ Hard to maintain
Asymmetric Image updates
● Android (pre N)
● Fail-safe
● Downsides
○ Downtime
○ Intermediate
storage
Bootloader
Persistent data
Device
OS A (active) Recovery OS
Main OS
Symmetric Image updates
● Android (post N)
● Seamless updates
● Fail-safe
● Roll-back
● Downside
○ Storage overhead
Bootloader
Persistent data
Device
OS A (active) OS B (inactive)OS A (active)
1. In-place (deb,
rpm)
2. Asymmetric 3. Symmetric 4. Containers
Atomic (for
rollback)
Consistent fleet
Workflow
integration
Bandwidth (*) (*)
Downtime
Comparison of installer strategies
(*) Can be mitigated with compression or with “binary delta” transfers
Ecosystem
Categories
● Frameworks
○ SWUpdate (client)
○ RAUC (client)
○ libostree (infrastructure)
○ Hawkbit (standalone server)
● OTA Solutions
○ Mender.io
○ Updatehub.io
● OTA Solutions (SWUpdate + Hawkbit)
○ FullMetalUpdate
○ Update Factory
● Full stack (includes OTA)
○ foundries.io (libostree and containers)
○ balena.io (former resin.io, containers)
○ Torizon (based on foundries.io)
○ ….
● Proprietary (Automotive)
○ ….
SWUpdate
“SWUpdate is a Linux Update agent with the goal to provide an efficient and safe
way to update an embedded system”
● http://sbabic.github.io/swupdate/
● C & GPLv2
● Update agent on device
○ Integration with Hawkbit
● Integrated web server for “local updates”
● Update types:
○ Symmetric/Asymmetric Image Updates (rdiff)
○ In-place (files, tar.gz etc..)
○ Proxy firmware
● Cryptographic signing and verification of updates
● Yocto & Buildroot integration
RAUC
“RAUC controls the update process on embedded Linux systems. It is both a target
application that runs as an update client and a host/target tool that allows you to
create, inspect and modify installation artifacts.”
● https://www.rauc.io/
● C & Python
● License: LGPL-2.1
● Update agent on device
○ Integration with Hawkbit
● Integrated web server for “local updates”
● Update types:
○ Symmetric/Asymmetric Image Updates (casync)
○ In-place (files, tar.gz etc..)
● Cryptographic signing and verification of updates
● Yocto, Buildroot and PTXDist Integration
Hawkbit
“Eclipse hawkBit™ is a domain independent back-end framework for rolling out
software updates to constrained edge devices as well as more powerful controllers and
gateways connected to IP based networking infrastructure.”
● https://www.eclipse.org/hawkbit/
● Java
● Eclipse Public License 1.0
● Standalone server
○ Client integrations are provided by users
○ SWUpdate & RAUC are example of clients
● Eclipse Foundation project
Hawkbit - features at glance
● A device and software repository.
● Artifact content delivery.
● Software update and roll out management.
● Reporting and monitoring.
● Interfaces:
○ for direct device control.
○ for IoT solutions or applications to manage the
repository and the roll outs.
○ for device management federation (i.e. indirect
device control)
○ and a user interface to operators to manage and
run the roll outs.
● More on features here
Torizon
“Torizon is a new Linux-based software platform that simplifies the process of developing and maintaining embedded
software. It allows you to configure the system for your use case quickly and easily, so you can focus on application
development instead of Linux builds.”
Mender
Mender’s prime directive: robust and secure OTA updates
● Apache 2.0 & Golang
● Asymmetric images updates (binary delta coming soon)
○ Can be extended using the Update Module
framework
● Integrity checks to avoid corruption
● Device groupings for controlled rollout management
● Secure TLS communication between server/device
● Signed images
● Yocto, Buildroot, Debian, Ubuntu, Raspbian, OpenWRT
Mender
● Singular complete solution:
○ Fully integrated on-target client and web-based management server
○ Ability to update both your kernel and applications in one mechanism
● Mender supports both managed OTA updates and standalone deployments.
● Interface to adapt the update flow to application-specific use cases, e.g. user confirmation
● Microservices API-based architecture allows simple adaptation to custom requirements.
● Low system overhead
Mender and the value of an OSS community
● Mender is the only end-to-end open source OTA manager (both management server and client)
○ No vendor lock-in
○ Permissive Apache 2.0 license
○ A healthy peer review mechanism with more eyes on the code to increase its security
● Less reliance on tribal knowledge; less expensive than a homegrown system
○ Homegrown systems have unpredictable scope, which leads to more cost and time
○ Reliance on tribal knowledge: if a key person leaves, could cause serious issues
● Mender Hub is the only online community dedicated to enable OTA on any device and OS
○ Get started quickly
○ 40+ board integrations
Mender Hub
A community-driven
repository to enable OTA
updates with Mender on
every board and OS!
Thank You!
Q&A
@KrakMirza
mirza.krak@northern.tech
https://www.linkedin.com/in/mirzakrak/
@mender_io
https://mender.io
https://docs.mender.io/2.0/getting-started
https://hub.mender.io

More Related Content

What's hot

JSR-82 Bluetooth tutorial
JSR-82 Bluetooth tutorialJSR-82 Bluetooth tutorial
JSR-82 Bluetooth tutorialSoham Sengupta
 
Rust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with EmbassyRust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with EmbassyJuraj Michálek
 
Tóm tắt lệnh Ubuntu
Tóm tắt lệnh UbuntuTóm tắt lệnh Ubuntu
Tóm tắt lệnh UbuntuQuang Ngoc
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdatelinuxlab_conf
 
Board support package_on_linux
Board support package_on_linuxBoard support package_on_linux
Board support package_on_linuxVandana Salve
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded buildsMender.io
 
Android Storage - Vold
Android Storage - VoldAndroid Storage - Vold
Android Storage - VoldWilliam Lee
 
Network Automation: Ansible 101
Network Automation: Ansible 101Network Automation: Ansible 101
Network Automation: Ansible 101APNIC
 
4. install and configure hyper v
4. install and configure hyper v4. install and configure hyper v
4. install and configure hyper vHameda Hurmat
 
Software update for IoT: the current state of play
Software update for IoT: the current state of playSoftware update for IoT: the current state of play
Software update for IoT: the current state of playChris Simmonds
 
mastering-kali-linux-for-advanced-penetration-testing-book-look2linux-com.pdf
mastering-kali-linux-for-advanced-penetration-testing-book-look2linux-com.pdfmastering-kali-linux-for-advanced-penetration-testing-book-look2linux-com.pdf
mastering-kali-linux-for-advanced-penetration-testing-book-look2linux-com.pdfManiacH1
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Thomas Petazzoni
 

What's hot (20)

JSR-82 Bluetooth tutorial
JSR-82 Bluetooth tutorialJSR-82 Bluetooth tutorial
JSR-82 Bluetooth tutorial
 
Rust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with EmbassyRust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with Embassy
 
Tóm tắt lệnh Ubuntu
Tóm tắt lệnh UbuntuTóm tắt lệnh Ubuntu
Tóm tắt lệnh Ubuntu
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
 
Board support package_on_linux
Board support package_on_linuxBoard support package_on_linux
Board support package_on_linux
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded builds
 
Android Storage - Vold
Android Storage - VoldAndroid Storage - Vold
Android Storage - Vold
 
Network Automation: Ansible 101
Network Automation: Ansible 101Network Automation: Ansible 101
Network Automation: Ansible 101
 
OpenWF 1.0 Reference Card
OpenWF 1.0 Reference CardOpenWF 1.0 Reference Card
OpenWF 1.0 Reference Card
 
Linux Audio Drivers. ALSA
Linux Audio Drivers. ALSALinux Audio Drivers. ALSA
Linux Audio Drivers. ALSA
 
4. install and configure hyper v
4. install and configure hyper v4. install and configure hyper v
4. install and configure hyper v
 
Linux Device Tree
Linux Device TreeLinux Device Tree
Linux Device Tree
 
Linux Usb overview
Linux Usb  overviewLinux Usb  overview
Linux Usb overview
 
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part IVEmbedded Android : System Development - Part IV
Embedded Android : System Development - Part IV
 
Software update for IoT: the current state of play
Software update for IoT: the current state of playSoftware update for IoT: the current state of play
Software update for IoT: the current state of play
 
Imaging on embedded GPUs
Imaging on embedded GPUsImaging on embedded GPUs
Imaging on embedded GPUs
 
Sw update elce2017
Sw update elce2017Sw update elce2017
Sw update elce2017
 
mastering-kali-linux-for-advanced-penetration-testing-book-look2linux-com.pdf
mastering-kali-linux-for-advanced-penetration-testing-book-look2linux-com.pdfmastering-kali-linux-for-advanced-penetration-testing-book-look2linux-com.pdf
mastering-kali-linux-for-advanced-penetration-testing-book-look2linux-com.pdf
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
 

Similar to The ultimate guide to software updates on embedded linux devices

Iot development from prototype to production
Iot development from prototype to productionIot development from prototype to production
Iot development from prototype to productionMender.io
 
Mender: The open-source software update solution
Mender: The open-source software update solutionMender: The open-source software update solution
Mender: The open-source software update solutionMender.io
 
IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to ProductionMender.io
 
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...Mender.io
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices Hendri Karisma
 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...ICS
 
Xpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case StudyXpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case StudyDenys Vasyliev
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesMender.io
 
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012Ryo Jin
 
Ubuntu phone engineering
Ubuntu phone engineeringUbuntu phone engineering
Ubuntu phone engineeringRex Tsai
 
WSO2 IoT Server - Product Overview
WSO2 IoT Server - Product OverviewWSO2 IoT Server - Product Overview
WSO2 IoT Server - Product OverviewWSO2
 
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYWhy Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYEnterprise Management Associates
 
Mender; the open-source software update solution
Mender; the open-source software update solutionMender; the open-source software update solution
Mender; the open-source software update solutionMender.io
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_GalloAndrea Gallo
 
Future of Microservices - Jakub Hadvig
Future of Microservices - Jakub HadvigFuture of Microservices - Jakub Hadvig
Future of Microservices - Jakub HadvigWEBtlak
 
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdfDesigning and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdfICS
 
LCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure UpdateLCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure UpdateLinaro
 

Similar to The ultimate guide to software updates on embedded linux devices (20)

Iot development from prototype to production
Iot development from prototype to productionIot development from prototype to production
Iot development from prototype to production
 
Mender: The open-source software update solution
Mender: The open-source software update solutionMender: The open-source software update solution
Mender: The open-source software update solution
 
IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to Production
 
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices
 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
Xpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case StudyXpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case Study
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
 
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
 
Ubuntu phone engineering
Ubuntu phone engineeringUbuntu phone engineering
Ubuntu phone engineering
 
WSO2 IoT Server - Product Overview
WSO2 IoT Server - Product OverviewWSO2 IoT Server - Product Overview
WSO2 IoT Server - Product Overview
 
Cloud Platform as a Service: Heroku
Cloud Platform as a Service: HerokuCloud Platform as a Service: Heroku
Cloud Platform as a Service: Heroku
 
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYWhy Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
 
Mender; the open-source software update solution
Mender; the open-source software update solutionMender; the open-source software update solution
Mender; the open-source software update solution
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_Gallo
 
Future of Microservices - Jakub Hadvig
Future of Microservices - Jakub HadvigFuture of Microservices - Jakub Hadvig
Future of Microservices - Jakub Hadvig
 
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdfDesigning and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdf
 
LCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure UpdateLCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure Update
 

More from Mender.io

A million ways to provision embedded linux devices
A million ways to provision embedded linux devicesA million ways to provision embedded linux devices
A million ways to provision embedded linux devicesMender.io
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems Mender.io
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianMender.io
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Mender.io
 
Strategies for developing and deploying your embedded applications and images
Strategies for developing and deploying your embedded applications and imagesStrategies for developing and deploying your embedded applications and images
Strategies for developing and deploying your embedded applications and imagesMender.io
 
Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018Mender.io
 
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018Mender.io
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Mender.io
 
Linux IoT Botnet Wars - ESC Boston 2018
Linux IoT Botnet Wars - ESC Boston 2018Linux IoT Botnet Wars - ESC Boston 2018
Linux IoT Botnet Wars - ESC Boston 2018Mender.io
 
Securing the Connected Car - SCaLE 2018
Securing the Connected Car - SCaLE 2018Securing the Connected Car - SCaLE 2018
Securing the Connected Car - SCaLE 2018Mender.io
 
Mender.io | Securing the Connected Car
Mender.io | Securing the Connected CarMender.io | Securing the Connected Car
Mender.io | Securing the Connected CarMender.io
 
Linux IoT Botnet Wars and the lack of basic security hardening
Linux IoT Botnet Wars and the lack of basic security hardeningLinux IoT Botnet Wars and the lack of basic security hardening
Linux IoT Botnet Wars and the lack of basic security hardeningMender.io
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io
 

More from Mender.io (13)

A million ways to provision embedded linux devices
A million ways to provision embedded linux devicesA million ways to provision embedded linux devices
A million ways to provision embedded linux devices
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and Debian
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018
 
Strategies for developing and deploying your embedded applications and images
Strategies for developing and deploying your embedded applications and imagesStrategies for developing and deploying your embedded applications and images
Strategies for developing and deploying your embedded applications and images
 
Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018
 
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
 
Linux IoT Botnet Wars - ESC Boston 2018
Linux IoT Botnet Wars - ESC Boston 2018Linux IoT Botnet Wars - ESC Boston 2018
Linux IoT Botnet Wars - ESC Boston 2018
 
Securing the Connected Car - SCaLE 2018
Securing the Connected Car - SCaLE 2018Securing the Connected Car - SCaLE 2018
Securing the Connected Car - SCaLE 2018
 
Mender.io | Securing the Connected Car
Mender.io | Securing the Connected CarMender.io | Securing the Connected Car
Mender.io | Securing the Connected Car
 
Linux IoT Botnet Wars and the lack of basic security hardening
Linux IoT Botnet Wars and the lack of basic security hardeningLinux IoT Botnet Wars and the lack of basic security hardening
Linux IoT Botnet Wars and the lack of basic security hardening
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and Golang
 

Recently uploaded

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

The ultimate guide to software updates on embedded linux devices

  • 1. Mirza Krak Embedded Linux Solutions Architect Mender.io NDC Techtown 2019 The ultimate guide to software updates on embedded Linux devices
  • 2. Session Overview ● Introduction ● Embedded Linux overview and use-case ● Software update methods ● Existing solutions Goal: Present an overview of software update techniques used in embedded Linux and present existing solutions for software updates
  • 3. About Me Mirza Krak ○ 8 years in embedded Linux ○ Background in automotive ○ Board Support Package development ○ Linux kernel contributor Mender.io ○ Over-the-air update solution for embedded Linux ○ Open source (Apache 2.0 License) ○ Remote deployment management (server) ○ Under active development
  • 6. Embedded Linux - areas of usage ● Transportation ○ Public transport ○ Fleet management ○ Tracking ○ Predictive maintenance ● Infrastructure ○ Power and water grids ○ Metropolitan areas ● Buildings ○ Monitoring ○ Energy optimization ○ Access control ○ Security ● Automotive ○ Infotainment ○ Telematics and connectivity ● “Things” ○ Appliances, Routers, TV’s...
  • 7. Internet of Things (IoT) The Internet of things (IoT) is the extension of Internet connectivity into physical devices and everyday objects. Embedded with electronics, Internet connectivity, and other forms of hardware (such as sensors), these devices can communicate and interact with others over the Internet, and they can be remotely monitored and controlled Source: WikipediaIt means taking all the things in the world and connecting them to the internet
  • 8. The embedded environment ● Remote ○ Expensive to reach physically ● Long expected lifetime ○ 5 - 10 years ● Unreliable power ○ Battery ○ Suddenly unplugged ● Unreliable network ○ Intermittent connectivity ○ Low bandwidth ○ Insecure What can go wrong?
  • 9. Must be updatable There will be bugs, vulnerabilities … and new features … after the device is deployed to the field
  • 10. Cost savings by using open source platforms Embedded System Stack Cost 10% 30% 60% Product Differentiation Use open source here to: Lower layers are expensive and provides no differentiation HMI Applications Middleware OTA update Operating System Board Support Package Hardware ● Lower cost on non-differentiating components ● Shorten time-to-market ● Reallocate development to differentiation: ○ Applications and HMI
  • 11. Software update on-site ● No connectivity ● Technician ○ USB flash drive ● Does not scale
  • 12. Software update Over-The-Air (OTA) ● No easy access to the device ● Deployment management server ○ Traceability ○ Status reports ○ Current versions ○ Controlled roll-outs
  • 13. Anatomy of embedded Linux Bootloader: system initialization code starting with the reset vector. ● Initialize and scrub RAM ● Setup power rails and clocks ● Load the “rest” of the system Bootloader Linux kernel Device Tree (ARM) Root filesystem Kernel: core operating system functionality ● Resource management ● Process control ● Device drivers Device Tree: hardware description (ARM) Root filesystem: all files, executables, data, etc for the system
  • 14. Anatomy of embedded Linux (Image) Linux kernel Distribution / Applications Update Client Devicetree File system image
  • 15. Requirements (minimal) ● Able to update all components ○ Normally unsafe to update bootloader ● Never render the device unusable (brick) ○ Fail-safe / roll-back ● Atomic updates ○ No partial install ● Integrity check ● Signed images ○ Trusted images ● Compatibility check
  • 16. Alternative approaches ● Image/block based updates ○ Easy to implement, test, verify and maintain ○ Can be complemented with binary delta ● Incremental atomic image upgrade mechanism ○ Complexity ● Containers ○ Run applications in containers on device ● Package managers (dpkg, dnf, opkg) ○ Not designed for embedded use-case ○ Not atomic ○ Hard to maintain
  • 17. Asymmetric Image updates ● Android (pre N) ● Fail-safe ● Downsides ○ Downtime ○ Intermediate storage Bootloader Persistent data Device OS A (active) Recovery OS Main OS
  • 18. Symmetric Image updates ● Android (post N) ● Seamless updates ● Fail-safe ● Roll-back ● Downside ○ Storage overhead Bootloader Persistent data Device OS A (active) OS B (inactive)OS A (active)
  • 19. 1. In-place (deb, rpm) 2. Asymmetric 3. Symmetric 4. Containers Atomic (for rollback) Consistent fleet Workflow integration Bandwidth (*) (*) Downtime Comparison of installer strategies (*) Can be mitigated with compression or with “binary delta” transfers
  • 21. Categories ● Frameworks ○ SWUpdate (client) ○ RAUC (client) ○ libostree (infrastructure) ○ Hawkbit (standalone server) ● OTA Solutions ○ Mender.io ○ Updatehub.io ● OTA Solutions (SWUpdate + Hawkbit) ○ FullMetalUpdate ○ Update Factory ● Full stack (includes OTA) ○ foundries.io (libostree and containers) ○ balena.io (former resin.io, containers) ○ Torizon (based on foundries.io) ○ …. ● Proprietary (Automotive) ○ ….
  • 22. SWUpdate “SWUpdate is a Linux Update agent with the goal to provide an efficient and safe way to update an embedded system” ● http://sbabic.github.io/swupdate/ ● C & GPLv2 ● Update agent on device ○ Integration with Hawkbit ● Integrated web server for “local updates” ● Update types: ○ Symmetric/Asymmetric Image Updates (rdiff) ○ In-place (files, tar.gz etc..) ○ Proxy firmware ● Cryptographic signing and verification of updates ● Yocto & Buildroot integration
  • 23. RAUC “RAUC controls the update process on embedded Linux systems. It is both a target application that runs as an update client and a host/target tool that allows you to create, inspect and modify installation artifacts.” ● https://www.rauc.io/ ● C & Python ● License: LGPL-2.1 ● Update agent on device ○ Integration with Hawkbit ● Integrated web server for “local updates” ● Update types: ○ Symmetric/Asymmetric Image Updates (casync) ○ In-place (files, tar.gz etc..) ● Cryptographic signing and verification of updates ● Yocto, Buildroot and PTXDist Integration
  • 24. Hawkbit “Eclipse hawkBit™ is a domain independent back-end framework for rolling out software updates to constrained edge devices as well as more powerful controllers and gateways connected to IP based networking infrastructure.” ● https://www.eclipse.org/hawkbit/ ● Java ● Eclipse Public License 1.0 ● Standalone server ○ Client integrations are provided by users ○ SWUpdate & RAUC are example of clients ● Eclipse Foundation project
  • 25. Hawkbit - features at glance ● A device and software repository. ● Artifact content delivery. ● Software update and roll out management. ● Reporting and monitoring. ● Interfaces: ○ for direct device control. ○ for IoT solutions or applications to manage the repository and the roll outs. ○ for device management federation (i.e. indirect device control) ○ and a user interface to operators to manage and run the roll outs. ● More on features here
  • 26. Torizon “Torizon is a new Linux-based software platform that simplifies the process of developing and maintaining embedded software. It allows you to configure the system for your use case quickly and easily, so you can focus on application development instead of Linux builds.”
  • 27. Mender Mender’s prime directive: robust and secure OTA updates ● Apache 2.0 & Golang ● Asymmetric images updates (binary delta coming soon) ○ Can be extended using the Update Module framework ● Integrity checks to avoid corruption ● Device groupings for controlled rollout management ● Secure TLS communication between server/device ● Signed images ● Yocto, Buildroot, Debian, Ubuntu, Raspbian, OpenWRT
  • 28. Mender ● Singular complete solution: ○ Fully integrated on-target client and web-based management server ○ Ability to update both your kernel and applications in one mechanism ● Mender supports both managed OTA updates and standalone deployments. ● Interface to adapt the update flow to application-specific use cases, e.g. user confirmation ● Microservices API-based architecture allows simple adaptation to custom requirements. ● Low system overhead
  • 29. Mender and the value of an OSS community ● Mender is the only end-to-end open source OTA manager (both management server and client) ○ No vendor lock-in ○ Permissive Apache 2.0 license ○ A healthy peer review mechanism with more eyes on the code to increase its security ● Less reliance on tribal knowledge; less expensive than a homegrown system ○ Homegrown systems have unpredictable scope, which leads to more cost and time ○ Reliance on tribal knowledge: if a key person leaves, could cause serious issues ● Mender Hub is the only online community dedicated to enable OTA on any device and OS ○ Get started quickly ○ 40+ board integrations
  • 30. Mender Hub A community-driven repository to enable OTA updates with Mender on every board and OS!