Recompiling an embedded Linux kernel
In the embedded world, the need to recompile a Linux kernel is relatively common; however, this operation is complex and must be entrusted to specialists.
In this article, we will begin by giving an estimate of the market share of Linux in the embedded world. We will then present the 3 possible levels of intervention in the field of embedded software. After returning to the notion of kernel, we will explain why it is sometimes necessary to recompile an embedded Linux one and give an example. Finally, we will conclude by presenting the missions and strengths of ADVANS Linux Embassy, the ELSYS Design / ADVANS Group’s center of expertise in Linux kernel.
Embedded Linux: increasing importance in the industry
Since the early 90’s, Aspencore has been conducting a study of the international embedded markets. In its 2017 edition, it estimates to 67% the number of projects in the embedded world that use an OS / RTOS. Projects using an open source OS account for 41% (in continuous growth since 2012), and 22% those using an embedded Linux.
Thus, more than 1 project out of 5 in the embedded world uses an embedded Linux.
Embedded Linux: the 3 levels of intervention
User space
When you are an embedded linux software engineer, you can first operate in the user space, for example, to develop applications that run on an embedded Linux. To do this, you only need to know how to code in C and to be able to use the associated compilation tools.
Drivers
Second, if you want to add components that will communicate with the kernel, you will need to develop drivers. In addition to the software development skills, it is necessary to have specific knowledge of embedded operating systems as well as in the field of hardware.
Kernel
Thirdly, you may have to work at the kernel level, we also speak of recompiling the kernel.
As a reminder, within an operating system, the kernel is the optimized software layer responsible for ensuring communication between hardware and software. This includes the management of software tasks (e.g. launching programs, scheduling) as well as the management of the hardware (memories, processors, peripherals, etc.).
Why recompile an embedded Linux kernel?
Embedded systems, by their nature, have limited resources that we will constantly seek to optimize in order to obtain the best possible performance. This need is even more increased for real-time embedded systems, some of their tasks must be performed strictly within the allotted time, otherwise, the consequences may be critical or even fatal.
This implies to work on the kernel, which is always difficult, even for specialists.
Recompiling an embedded Linux kernel: example.
Let’s imagine that a client of ELSYS Design is preparing the new version of its connected object. The latter is based on an electronic board of the manufacturer F incorporating the L.x version of the Linux kernel. This version is dated and no longer meets its latest requirements. The ELSYS Design client is, therefore, asking to develop a new driver based on the L.x + 2 version of the kernel while ensuring backward compatibility with the existing driver and offering new features (e.g. power management).
For their developments, the ELSYS Design embedded Linux engineers will have to work at different levels taking into account:
- The change of API (the source code of the application) between the L.x and L.x + 2 versions.
An update of the code will be necessary, making sure that the new Linux kernel will be able to support it. - The proprietary / public developments of the manufacturer F;
- The ELSYS Design client developments for the previous version of its connected object;
- Once this existing part is taken into account, the ELSYS Design software engineers will have to develop the new power management features (e.g. put the CPU in a Low-Power mode, etc.) and integrate them into the new backlog (the software which will be delivered to the client).
- Finally, in agreement with the client, they will be able to offer the new driver to the Linux community so that it is integrated into the next release of the kernel and that they ensure the upward compatibility.
An embedded Linux expert at ELSYS Design summarizes the situation: “The global problem is the portability and maintainability of one version of Linux to another. All the while taking into account the needs of the various stakeholders, and their willingness to share developments in part or completely with the Linux community.”
Thus, we have seen that embedded Linux is increasingly used.
However, it appears that this operating system is complex, developed in an unconventional way by a very active community and that, while it is relatively easy to develop a knowledge of development at the level of the user space, knowledge of the mechanisms of kernel and driver development for this operating system requires very specific skills that many companies have trouble to find.
With this in mind, as well as with the desire to bring even more value to its customers, the ADVANS Group has decided to develop a center of expertise on Linux systems for the embedded world by creating the ALE team (ADVANS Linux Embassy).
About the ADVANS Linux Embassy
The ALE team is made up of passionate experts working inside the ADVANS Group design centers. Its missions are both internal and external:
- Centralize and develop the ADVANS Group skills on Linux: technological watch, internal training, support for projects and bidding answers, the sharing of experience and feedback, supervision of internal projects and internships.
- Contribute to the Linux community.
- Assist the ADVANS Group customers: training and awareness, proofs of concept, support and consulting, feasibility studies, debugging support.
Placed under the responsibility of the ELSYS Design technical department, the ALE team is fully integrated into the ADVANS Group’s global offering. It has the capacity to assist customers not only in design/development but also in support/expertise/training.
ADVANS Linux Embassy : key strengths
Technical footprint
Thanks to the ALE team, the ADVANS Group is able to offer strong expertise on Linux.
However, mastering the embedded software also requires the ability to address topics related to hardware/software interfaces, processor architectures, network protocols, real-time management, the operation of applications, cybersecurity, and many other topics.
The ADVANS Group’s expertise covers the entire development of digital systems and solutions and thus covers all key topics.
Capacity, geographical footprint, and organization
The ADVANS Group has offices in the most dynamic French regions in the areas of electronic and software development, as well as in Serbia and in the Silicon Valley.
Its centralized technical department, its design centers with fixed staff (project managers, technical mentors, experts, etc.), and its identification of key skills make it possible to mobilize the engineering resources of the ADVANS Group in an optimized way.
Thus, thanks to its global organization and local presence, the ADVANS Group can provide its customers with the capacity, added-value and responsiveness they need.
Mastery of operations in support centers
Since its creation, the ADVANS Group has developed skills, staff, tools and methods to guarantee its commitment to customers.
The operations based on a support center mode require expertise and responsiveness. It has been in place for many years, initially at the request of customers which needed it for their software development or DevOps activities. The ADVANS Group experience on this mode of operation is important and allows a great deal of control of operations, associated with the use of adapted management tools (dashboards, key performance indicators, ticketing…).
Are you looking for a partner for your project around an embedded Linux operating system? Please contact us to discuss it in more details!