How To Master Embedded Linux System Maintenance in 2024
How To Master Embedded Linux System Maintenance in 2024
by .
1
Dear reader,
Welcome to the synthesis of our 2023 study on embedded Linux system maintenance!
Embark on a journey with us as we delve into the ambitions, challenges, pains, and
perspectives of equipment manufacturers (OEMs) in their pursuit of developing and
maintaining industrial Linux-based devices.
This exploration has been driven by The Embedded Kit team with the desire to better
understand the experiences and hurdles faced by OEMs in the realm of embedded
Linux maintennce. These insights will serve as the bedrock for adapting our products
to bring more value to our users.
It took dozens of interviews with R&D managers, lead software engineers from com-
panies of all sizes, and hundreds of responses to quantitative surveys combined with
extensive online research to have a global overview, which we are excited to distill and
share with you through this synthesis.
Before we embark on our Linux journey, we’d like to thank, once again, all the people
who shared their precious experience and insights. And to those who haven’t had the
chance to share their perspectives on this topic, feel free to reach out!
2
Summary
PART 1 - State of embedded Linux system maintenance 4
- Where do your peers stand?
OTA update 7
Continuous integration 9
Automated testing 9
Automated testing tool comparison 11
Cybersecurity 12
DevSecOps platform 13
PART 3 - Perspectives 14
PART 4 - Conclusion 15
PART 1
State of embedded Linux system
maintenance - Where do your peers
stand?
Our study led us to gather experiences from various types of profiles, from embedded software developers to R&D managers,
via tech leads and software architects, all working in companies manufacturing equipments. Through these discussions, we’ve
identified three different levels of maturity when it comes to embedded Linux system development and maintenance.
4
Mature teams with one or more Linux-based products on the market
Even if their Linux systems are already in place, these teams still face challenges related to long-
term maintenance and cybersecurity.
This profile is mainly found in mid-sized enterprises and, in some cases, large corporations that
have been working with microprocessors for a considerable time and have a dedicated, small-sized
team.
Keeping your Linux teammates is a key success factor. Such profiles love tech, new developments
and may be bored by a pure maintenance period. To manage that properly, keep knowledge as
wide as possible, ramp up junior on maintenance activities, and keep high-value tasks for experts.
When you start building a range of products, thinking about platforming is a key topic.
OEMs are already used to build the hardware side. That’s, however, less common on the software
side, but it’s still as important to mutualize development efforts and anticipate maintenance ef-
forts. Products like Welma Yocto Linux can help you with platforming, as it has been designed for
this use case.
5
Embedded Linux experts
With large, well-trained teams capable of handling embedded Linux development and
maintenance in-house, this profile often corresponds to extensive teams within large corporations
or mid-sized enterprises with a strong Linux culture.
Managing a team comprised of multiple Linux experts poses challenges, as each expert holds their
unique perspectives on the system, quality standards, future-proof solutions, and personal habits.
To address this, it’s crucial to establish a well-structured organization that promotes shared respon-
sibilities and actively involves all team members.
Many large organizations utilize renowned software solutions that may result in a vendor lock-in
effect, leading to long-term costs. Consider the level of dependency and the associated risks when
engaging with a new supplier or adopting a new product.
6
PART 2
Solutions & best practices
1 OTA update
Remote software updates play a crucial role in maintaining and enhancing the security and
functionality of connected devices. By prioritizing reliability, implementing the A/B update
schema, and addressing potential challenges, we can ensure that these updates are seam-
less and robust, providing an improved experience for both users and equipment manufac-
turers.
Besides the established A/B update model, various update schemes, such as the golden im-
age and differential incremental update, exist. However, we won’t delve into those details
today.
How does OTA update work? The A/B update schema, a classical and proven approach
To achieve robustness in remote updates, we employ the A/B update schema. This ap-
proach involves having two copies of updateable software components: Part A and Part B,
which are crucial for maintaining system integrity during the update process.
When a device boots up, it
initially runs a bootloader
responsible for managing the
starting process. The boot-
loader’s role is to hand over
control to one of the partitions,
either Part A or Part B, typically
containing the kernel and Root
File System (Root FS). This be-
comes the active partition.
During an update, the new software version is This is why we have seamlessly incorporated them
installed on the inactive partition (usually Part as OTA update options within Welma, our Linux
B). If the update process is interrupted, the active distribution. This integration provides device man-
partition (Part A) remains unchanged, ensuring ufacturers with a ready-to-use, robust method to
continued functionality. A subsequent reboot di- keep their devices up to date.
rects execution to the updated partition, making it
the new active partition. This approach guarantees While we have focused on the embedded part of
that the device can roll back to a known, function- this solution, there is another aspect to consider:
ing state if the update on the inactive partition fails the update service and fleet management solu-
to validate correctly. tion that assists in managing and deploying these
updates remotely. Mender.io stands out as one of
A key feature of this update strategy is the ability the only solutions on the market that, in addition
to maintain two different versions of software on to the local update system, provides a cloud-based
each partition, ensuring the system can always device management platform for handling update
revert to a previous functional version in case the campaigns.
new one encounters errors. Initially, in version N of
the software, partition A is active while partition B
is inactive, running on version N-1. However, upon It’s evident that different strategies and technical
updating the system to version N+1, partition A solutions exist for updating embedded Linux sys-
becomes inactive with version N, while partition tems. It’s crucial to define the right strategy based
B takes over, becoming active with the brand-new on specific needs and the system environment.
version N+1. This cycle continues with subse- For example, a platform in a regulatory context
quent updates, with partition A becoming active may not be suitable for remote updates. On the
under version N+2 when updating to version N+2, other hand, a highly connected system with higher
while partition B remains inactive under version cybersecurity risks should allow for quick and ro-
N+1. This pattern repeats, ensuring a reliable and bust updates. More specific scenarios may require
smooth update process for end-users while main- a customized approach, such as in a constrained
taining service continuity. connectivity network where an incremental update
may be necessary to optimize the amount of data
If you need to implement an OTA update solution exchanged over the network.
on your system, the A/B update schema is a reli-
able mechanism to maintain system integrity.
While this way of working has become a standard in software development processes,
implementing such a continuous integration system in an embedded Linux context to build
a complete operating system remains complex to deploy properly.
3 Automated testing
9
• Unit testing: At the base of the pyramid lies unit testing. It involves the automated validation of
specific components, algorithms, or functions within the code. Unit tests evaluate individual parts of
the software with various parameters to ensure they function as expected.
• Component testing: Moving up the pyramid, we encounter component testing. This level involves
testing larger components or subsystems, such as an embedded system driver.
• Integration testing: Integration tests examine how different components behave when assembled.
This level of testing focuses on the interaction between various layers and services in an embedded
solution, such as OTA updates, which require coordination between cloud platforms, firmware
uploads, and data reporting.
• System testing: At the peak of the pyramid is system testing. This level employs end-to-end testing,
simulating user interactions with the complete IoT system. System tests validate all business features,
providing a holistic view of the system’s functionality.
• Behavioral testing: Automated testing covers standard behavioral tests, akin to what manual testing
accomplishes. This includes verifying that the software meets its expected functional requirements.
• Edge case management: Automated testing is capable of managing edge cases that can be difficult
and time-consuming to address manually. This ensures that the software is robust and reliable under
various conditions.
• Non-regression testing: While some non-regression testing can still be performed manually,
automated testing can handle a substantial portion of these tests, ensuring that new changes do not
break existing functionality.
• Endurance testing: This type of testing examines how the system performs over time under normal
usage. Automated testing is particularly valuable for such long-duration tests.
• Robustness testing: Testing the system’s robustness, especially in edge cases, is best achieved with
automated testing.
• Performance measurement: Automated testing allows for comprehensive performance
measurements, which are difficult to achieve manually. This includes assessing how well the system
performs under various conditions and loads.
10
Select the right automated testing tool for your system
In-house tool
development
Technical
capabilities for Perfectly adapted Feature-rich but Feature-rich but Feature-rich and
to your needs not for embedded only for embedded optimized for
embedded systems testing Linux embedded testing
Flexibility
High High High High
+ link to webinar
11
2 Cybersecurity
System security
Security measures at the system level are essential to protect against unauthorized
access or tampering. They include vulnerability monitoring, providing a device identity
using X.509 certificates, and using secure elements for pre-provisioned identities when
using cloud services based on robust certificate management.
OS security
Application security
Security practices should extend to the application layer to protect sensitive data and
functions. Use the principle of least privilege and restrict applications using tools like
SELinux, AppArmor, or containers to isolate them from the system.
12
5 DevSecOps platform
The maintenance process in software development is a dynamic and crucial phase that
extends beyond the initial release of a product. It involves a meticulous strategy to ensure
the ongoing stability, security, and performance of the software. Long-Term Support (LTS)
versions, periodic updates, and the management of Common Vulnerabilities and Exposures
(CVEs) are integral components of this process.
Why keeping your embedded Linux system healthy for the long run is important
As devices become more and more part of global systems—like high-end devices
connected directly or indirectly to IoT hubs, business apps, ERPs, and industrial tools—
it’s super important to make sure they don’t have any weak points. That’s why long-term
maintenance activities are crucial to prevent vulnerabilities and make sure your product
stays top-notch throughout its whole life.
With a holistic approach that encompasses development, analysis, and testing, our
reference DevOps platform serves as a robust foundation, empowering developers to
navigate the complexities of long-term maintenance with efficiency and precision.
13
PART 3
Perspectives
In the rapidly evolving landscape of embedded Linux system development and maintenance, several key
considerations shape our approach and outlook for the future.
Yocto Project: the best solution for tailor-made embedded Linux systems
We firmly believe that Yocto remains the optimal choice for equipment manufacturers’ embedded Linux
developments, offering unparalleled advantages in custom configuration, optimization, cybersecurity,
documentation, and strong community support. Nevertheless, it’s important to acknowledge that Yocto
can present complexity in its management and implementation. While the benefits are substantial, ad-
dressing the intricacies of Yocto may require dedicated expertise and resources to ensure a smooth and
successful integration into your projects.
Cybersecurity is a priority
We are convinced that the landscape of embedded Linux development and maintenance will soon un-
dergo a transformation due to newly published cybersecurity regulations. These new regulations, such
as the Radio Equipment Directive (RED) and the Cyber Resilience Act (CRA), make security restrictive
for embedded systems, depending on their level of criticism. As such, it’s important to start integrating
robust cybersecurity measures into embedded systems, safeguarding them against evolving threats and
regulatory compliance demands.
This exploration helped us identify how to simplify embedded Linux development &
maintenance challenges faced by equipment manufacturers.
That’s why we created The Embedded Kit, a comprehensive toolkit for embedded
systems. The Embedded Kit offers everything device-makers need to build,
connect, test, and secure a custom embedded Linux system. Its four off-the-shelf
products (Welma Yocto Linux, Kamea IoT, Pluma automated testing and CVE Scan)
were designed specifically for equipment manufacturers, to ease and accelerate their
product development while giving full source code control.
Want to see a demo? Or just share some feedback? We’ll be happy to chat with you :)
____________
This report is based on community contributions from all over the world. We would like
to thank, once again, the people who took part in our exploration, and the witekians
who have shared their knowledge, who have been working side by side with equipment
manufacturers for years to build, customize and maintain their connected solutions.
15
theembeddedkit.io