Use Mender to Provide Over-the-air Software Updates for Embedded Linux Devices

Brief: Mender is an open source tool for updating your embedded devices safely and reliably, over the air. This helps to solve the problem of updating embedded and connected devices.

Mender brings OTA software updates to Embedded Linux devices

Internet of Things and connected devices are everywhere. And though they solve a number of specific problems, these Internet of Things devices can easily be converted into the Internet of Threats if they are not patched for security vulnerabilities.

If you manage connected devices, you should already be aware of the challenges it throws in terms of updates. If you have a fleet of such devices, it will become a nightmare to timely update the software on them. The complexity increases if your devices are located over a wide area or in locations difficult to reach.

But this cannot be an excuse to delay the critical updates and make the devices vulnerable to hacking. Remember, in 2016, hacked IoT devices caused internet outage across half the globe?

You don’t want to be in a situation like that but then, as we already saw, updating the embedded devices is no easy task. And this is the problem that Mender tries to address.

Easily provide OTA updates to connected devices with Mender

Meet Mender. An open source tool for updating your embedded devices over the air. This means that you can provide automatic updates to the remote devices without the need of physical access.

Licensed under Apache 2.0, Mender is a client-server application, where the client is installed on the embedded devices running Linux. The Mender client regularly checks with the Mender server to see if it has an image update available for deployment, and deploys it if there is. The deployment is done securely using HTTPS.

Mender architecture

Mender also provides a fallback option to revert to the previous version in the event of an incomplete or corrupted deployment installations.

To summarize its features:

  • Image-based updates using a dual A/B rootfs partition layout with rollback support
  • Manage and see reports of deployments with the GUI or use the REST APIs
  • Completely open source with Apache 2.0 open source license
  • Intuitive UI
  • Group your devices for controlled rollout management
  • Secure TLS communication between client/server
  • Support for state scripts (pre/post install scripting)
  • Raw flash support
  • User management features

In short, Mender removes the vast effort of building and maintaining a homegrown solution or struggling through an assortment of tools so that you can focus on your product and/or devices. If you have more questions about Mender, you can refer to their FAQ page.

If you want to give it a try, they have pretty good documentation to get you started. You can also visit their GitHub repository to get the source code.

You can also opt for their professional software support. At present, there are few devices that are supported out of the box such as BeagleBone. Other devices may require tinkering of their own and to save the trouble, there is a premium board support available as well. 

Mender also has a beta program called ‘Hosted Mender’ that allows you to you use scalable Mender server infrastructure instead of maintaining your own server infrastructure. You can find more information on their website:

Mender

About the author
Abhishek Prakash

Abhishek Prakash

Created It's FOSS 11 years ago to share my Linux adventures. Have a Master's degree in Engineering and years of IT industry experience. Huge fan of Agatha Christie detective mysteries 🕵️‍♂️

Become a Better Linux User

With the FOSS Weekly Newsletter, you learn useful Linux tips, discover applications, explore new distros and stay updated with the latest from Linux world

It's FOSS

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.