News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

A developer’s review of the leading Embedded Linux toolkits

Sep 10, 2001 — by Rick Lehrbaum — from the LinuxDevices Archive — 2 views

Foreword: 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.
Interestingly, in the context of embedded system development, factors that impact ease-of-use can sometimes be at odds. For example, few Linux newbies would find the standard kernel configuration and build process intuitive and easy, so there is a strong incentive for a commercial distributor to implement an alternative system with a greater emphasis on usability. On the other hand, the rapid changes in Linux itself make it difficult for any one distributor to maintain an alternative build system, as nearly every kernel release would require maintenance work.

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
We approached a handful of embedded computer companies with this list of specifications and requested loaners for use in this series. After receiving an immediate and positive response from everyone, we settled on these three particular EBX SBCs, which all meet the above list of specs, for our lab platforms . . .

Ampro Little Board/P5x — this EBX SBC is also based on a 266 MHz Tillamook Pentium, supports up to 256 MB of onboard SDRAM, has an Award BIOS, and its key I/O controllers are a PC-compatible super I/O controller, AMD PCnet-FAST+ (AM79C972) Ethernet controller, and Intel 69000 series video controller. The standard Linux kernel offers the option of “AMD PCnet32 PCI” and the 69000 is widely used under Linux, so again no problems are anticipated.

JUMPtec Adastra VNS-786L — this EBX SBC is based on a 266 MHz Tillamook Pentium with up to 512 MB of onboard SDRAM, has a Phoenix BIOS, and its key I/O controllers are a PC-compatible super I/O controller, Davicom DM9102A Ethernet controller, and ATI Rage Mobility video controller. The Davicom Ethernet controller is supported by the 'dmfe' driver provided in the standard Linux kernel and the ATI video controller is widely used with Linux, so no problems are anticipated.

WinSystems EBC-TXPlus — this EBX SBC supports any of several Socket 7 CPUs, provides up to 256 MB of RAM, and comes with an Award BIOS. WinSystems supplied the board I am using with a 266 MHz Tillamook Pentium, so that it matches the others that are being evaluated. Its key I/O controllers are a PC-compatible super I/O controller, Intel 82559 Ethernet controller, and 69000-compatible video controller. The standard Linux kernel offers the option of “EtherExpressPro/100” and again the 69000 is widely used under Linux, so again no problems are anticipated.

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 . . .



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.



Comments are closed.