A developer’s review of the leading Embedded Linux toolkits
Sep 10, 2001 — by Rick Lehrbaum — from the LinuxDevices Archive — 2 viewsForeword: This article introduces LinuxDevices.com's new series of reviews, by software developer Jerry Epplin, of the most prominent Embedded Linux toolkits. In this kickoff to the series, Epplin provides some background on the Embedded Linux toolkit market, considers the relative advantages of commercial vs. noncommercial toolkits, establishes a set of criteria against which each toolkit will be measured, and describes his lab setup.
Emergence of the Embedded Linux Toolkit market
Despite the stampede of investor money first into, and then out of, Linux companies, interest in Linux among embedded system developers continues to show strong, steady growth. Developers' realization that they need full featured, network connected, GUI-based operating systems for their future devices has led many to look to Linux as a convenient and low-cost way to solve their problems.
Linux provides the features required in a modern operating system without the high initial investment and royalty expense of commercial real-time OSes. In addition, Linux provides the advantages of an open source distribution model, so anyone can examine it and modify it at will.
But along with the many advantages of Linux come the usual drawbacks of an open source project. Whereas embedded system developers want their operating environment to just work so they can get to work right away on developing the actual application, taking advantage of an open source project can often entail a substantial investment in time to configure, build, and start using it.
For this reason, and especially in light of the ballooning interest in Linux among embedded system developers, a growing number of vendors are now offering toolkits that claim to simplify the task of embedding Linux.
Commercial or non-commercial?
It should be noted, however, that using a commercial toolkit is not the only option — nor is it necessarily the best.
Several open source toolkits, such as Transmeta's Midori Linux, provide a simple way to configure and build a minimal Linux system suitable for embedded systems. And because the non-commercial systems typically make use of the standard Linux methods for configuring and building a system, they may be more appropriate for users already familiar with Linux. It can also be argued that such an approach is the best in the long run, because making the effort to become familiar with the standard Linux development process allows a developer to keep up with changes in Linux over time without relying on support provided by commercial embedded Linux distributors.
However, for those wishing to configure a system quickly, a commercial toolkit is certainly an attractive option. Plus, when a commercial toolkit is used, the toolkit's vendor generally provides direct support if needed. LinuxDevices.com's surveys have consistently indicated that most developers are quite willing to pay for Embedded Linux toolkits and support, though not for per-unit royalties.
Evaluating Embedded Linux toolkits
The primary emphasis of this series will be to explore such factors as . . .
- Overall ease of use. Developers want to focus on their application, not the development environment. It should be easy to make changes to the environment without requiring in depth knowledge of Linux, or consulting a manual to make simple adjustments.
- Learning curve (time and effort) for getting up to speed on using each package. The feasibility of a project can depend on how long it takes the developer to begin producing results.
- Ease of maintaining a target build over changes in Linux and other software components. Linux itself changes rapidly, so it is important to be able to update your target system when new versions of Linux or other components become available.
- Quality and usability of documentation (e.g., completeness, clarity, accuracy, etc.). Again, the toolkit should not waste the developer's time; it should be easy to determine how to accomplish necessary tasks.
- The extent to which the tools provided are open source. I won't rehash the reasons why open source software is preferred to proprietary software; if you are reading this I assume you already know them.
- Which processor families are supported. Note that I will not attempt to judge how many specific target platforms are supported, or even the number of specific processors; these are much more slippery metrics than that of processor families supported. In many cases, if a processor family is supported, the toolkit can be adapted to the user's platform.
Thus, Embedded Linux vendors have a strong motivation to use the standard Linux kernel configuration and build system despite its poor usability. Reconciling these conflicting motivations is one of the main challenges for an embedded Linux distributor. An obvious solution is to implement an alternative configuration system, then provide that system only for selected versions of the kernel. A developer would simply be out of luck (or would have to perform the maintenance manually) if some other kernel version is required — obviously not a very inspired solution to the problem.
Lab setup
In an effort to understand and evaluate the process of configuring and building realistic embedded systems using several different embedded Linux toolkits, three x86-based single-board computers will be used as standard reference platforms for this series. As our goal in this series is to judge factors such as ease-of-use, documentation, architecture, and maintainability — rather than more problematic factors such as the ability to work with unusual or small-footprint hardware — we settled on a set of fairly high-end SBC standards that we knew would be available from multiple SBC vendors . . .
- PC compatible architecture
- An Intel Tillamook (mobile Pentium) CPU
- 16MB minimum DRAM
- Flash memory expansion with DiskOnChip or CompactFlash
- Standard SVGA video
- Ethernet port
- At least one serial and one parallel port
- Industry standard EBX form-factor
Getting started
Although the key specs of the three platforms are basically identical, their peripheral hardware components are quite disparate, providing a good test of the Embedded Linux toolkits' abilities.
To develop a sense of how practical it would be for developers to configure systems using each of the Embedded Linux toolkits that will be reviewed, we will build Embedded Linux OS images around each of these boards, and then (at a minimum) get the systems booted and the Ethernet interfaces running. In that process, many aspects of each toolkit will naturally be exercised.
Join us as we step through the leading Embedded Linux toolkits. Note that the efforts will be restricted to offerings that primarily target “embedded Linux” applications, and will not include the substantially more complex task of installing, testing, and comparing “real-time Linux” toolkits.
Be sure to read all the articles in this series . . .
- A developer's review of the leading Embedded Linux toolkits
- A developer's review of Lineo's Embedix SDK
- A developer's review of MontaVista's Hard Hat Linux SDK
- A developer's review of Red Hat's Embedded Linux Developer Suite
- A developer's review of LynuxWorks' BlueCat Linux SDK
- A developer's review of REDSonic's RED-Builder Embedded Linux toolkit
About the author: Jerry Epplin has written embedded software for the past fifteen years, primarily for medical devices. He can be reached at [email protected]
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.