Overcoming the challenges of embedded Linux product development
| By |
|
Linux’s popularity has grown exponentially since its inception 18 years ago. In addition to its widespread use in enterprise systems, Linux has become the Operating System (OS) of choice for many embedded products. However, as with any software, developers have encountered a number of challenges in adopting Linux. Maciej explains why using the latest code can resolve the issues that arise when building Linux-based platforms.

Within the first years of its use in the embedded space, Linux presented developers with several issues, most notably problems involving Linux kernel stability. To adapt Linux to a specific embedded application, the Linux kernel required a great deal of engineering effort and expertise, such as knowing how to add a new device driver without affecting the kernel’s overall performance. In addition to demanding this level of engineering investment, companies faced high Linux maintenance costs and a limited selection of matching device drivers available to engineers.
Increased adoption of the Linux kernel and interest in using Linux in a variety of products/applications have resulted in an accelerated pace of Linux kernel development. Open source community and commercial vendors are working in tandem to add new device drivers, enhance Linux kernel code, and improve the process for reviewing and releasing new code.
The Linux kernel, however, is only one of the software components that make up an embedded product. In addition to the Linux kernel, Linux product development requires two other major components: the cross-tool chain and the Root File System (RFS).
The first component, the cross-tool chain, runs on a host system (PC or workstation), compiles code for the target processor architecture, and creates efficient, optimized code for the end product. For new products to take full advantage of new features, the tool chain code has to keep up with semiconductor vendors’ schedules for new processor subarchitectures. A good example of this is the NEON instruction set support in the latest Cortex-A8 core from ARM.
Building the second component, the RFS, is considered to be the most time-consuming piece of Linux development. The RFS is simply a set of libraries, utilities, and other scripts installed by packages that provide certain functionality. For example, the openssh package provides libraries and utilities needed to establish ssh connection. While a minimal RFS can be assembled with a few software packages, most RFSs require 20-plus packages to provide features used by customer-facing embedded applications.
Although the increased engineering capability provided by Linux is beneficial to developers, it creates numerous challenges. Each new open source project not only results in another feature option, but also another set of cross-dependencies to consider. With more than 40,000 available open source projects, identifying resources and resolving hidden dependencies can be difficult and risky, especially for companies and developers who are new to Linux.
The expectation of quality in today’s embedded products brings another challenge. Thanks to products such as Apple’s iPhone and Nokia’s N810 Internet tablet, the end-user’s expectations for an embedded device are high. The graphics stacks implemented by embedded devices and the inclusion of value-added features that address customers’ needs are what differentiate embedded devices.
Getting a product to market quickly is important because it drives brand recognition and market share. Companies don’t want to expend engineering resources on building a Linux-based platform; they would rather focus on building value-adding features for products that command premium prices and result in high market share.
Using the latest code
As proven by many recently released devices such as Sony’s Mylo 2 handheld communicator, open source is being widely adopted. Today, innovation and differentiation often require features and performance standards that only the recent versions of Linux components can offer. Continually improved Linux code (including the kernel) and the availability of hundreds of software packages make it possible for companies to take advantage of new hardware features as they develop new products. When combined with expert Linux support, updates on code changes, and tools that work, the latest open source code available to Linux developers enables them to create Linux platforms with the required libraries and software in a fraction of the time and with much lower risk and cost than in the past.
The challenges of today’s embedded Linux projects, some of which are outlined in this article, can be minimized using tools such as LinuxLink from Timesys (see Figure 1). By providing the latest code as well as powerful Web-based and desktop build environments, LinuxLink reduces risks and enables companies to quickly and inexpensively build complete Linux platforms for custom hardware.
|
Figure 1: Developers can save time and money by creating a custom Linux platform with LinuxLink. (click graphic to zoom by 1.9x) |
The optimal approach
Linux is the OS of choice for an increasing number of embedded devices. Markets for devices such as home automation systems and health monitoring, which previously did not require an OS, are now adopting Linux as a way to provide enhanced product features at low cost.
Today, the optimal approach to Linux development typically involves open source alignment first, and when it is needed, commercial offering alignment second. Tools such as LinuxLink enable engineering teams to take this approach, allowing them to be successful at deploying open source Linux in their products.
Timesys 412-325-6313 maciej.halasz@timesys.com https://linuxlink.timesys.com





