|
|
Log in / Subscribe / Register

Distributions

News and Editorials

Tools and distributions for embedded Linux development

April 27, 2010

This article was contributed by Tom Parkin

The deployment of Linux on the desktop and in the server room is well served by the general-purpose distribution. In the embedded world things are very different: although Linux is used widely, the concept of the general-purpose distribution is much less in evidence. Many vendors rely on forked board support packages or home-grown builds to create their systems, effectively creating their own customized distribution in the process. While embedded platforms represent a challenge to the traditional Linux distribution, there is no shortage of community projects to support the development of embedded Linux systems.

What makes embedded systems different?

The primary challenge presented by embedded systems is their diversity. Embedded device hardware tends to vary both in terms of design and capability. Even between generations of the same product, it is not unusual for a major system component such as the CPU to change completely. In addition, most embedded devices contain a fair amount of custom, closed-source software which is not packaged by a distribution. The combined effect of this hardware and software diversity is that most embedded devices are unique in one way or another, meaning it is difficult to design an embedded distribution which is simultaneously general enough to be useful and targeted enough to be efficient across a range of embedded platforms.

To make matters worse, embedded Linux development often takes place behind closed doors. In some cases this is due to a lack of hardware to support wider community involvement, since development platforms for many embedded devices will only exist within the labs of the companies manufacturing them. In other cases, manufacturers of embedded Linux devices rely on keeping their designs as secret as possible in order to keep ahead of the competition. This secrecy tends to stifle the community engagement that helps fuel the development of many desktop and server distributions.

In addition to the closed nature of many embedded projects, embedded Linux distributions face a challenge of a lack of perceived utility within developer communities. Given the heavily customized nature of much of the software within a given device, developers tend to view any external software as a starting point rather than a completed product. Rather than a distribution being a central provider, it is simply another component in a larger project.

Meeting the challenge

Despite the challenges of the embedded Linux ecosystem, embedded Linux tools and distributions can offer real value to developers working within that space. Various approaches are being developed by a number of embedded Linux projects, generating a suite of tools which may be brought to bear on a particular project according to its needs.

Dispensing with tools: the DIY approach

If complete control over configuration is important to an embedded developer, then the most efficacious approach is to build the whole system manually. This would typically involve hand-crafting a cross-compilation toolchain targeting the embedded device, then downloading and building the individual packages required to make up the software stack. Although a somewhat arduous process, the DIY approach to embedded Linux offers several key benefits, including the ability to fine-tune packages to requirements, an enforced understanding of the precise contents of the embedded root file system, and the ability to pick and choose system components in order to meet project goals.

The basics of putting together a DIY embedded Linux system are illustrated in Karim Yaghmour's book Building Embedded Linux Systems. In addition, the Cross Linux From Scratch guide covers the creation a completely DIY cross-compiled Linux installation in greater detail.

Meta-distributions and configurable build architectures

The DIY approach to an embedded distribution offers the greatest control and flexibility, but it does require a large investment of time and no small amount of expertise to get a basic system up and running. To help mitigate this, a number of configurable build tools exist which simplify the process. This approach combines the flexibility of selecting, configuring, and building sources by hand with the convenience of a framework which hides much of that detail until a developer needs it. At the time of this writing, several different build architectures are in active development.

Buildroot is perhaps the simplest of the build framework projects. Buildroot provides a menu-driven configuration similar to that used by the Linux kernel, and an automated build based around makefiles. It can be used to build anything from a cross-compilation toolchain right up to a complete root filesystem for the device. It also provides a simple mechanism for developers to patch software packages as they are built. Since its initial release in 2005, Buildroot has achieved considerable popularity in a range of applications, which can include anything from chip manufacturer board support packages to embedded firmware for rugged displays.

OpenEmbedded is a more complex system which utilizes a custom build tool, Bitbake, to provide information on how to build individual packages. Bitbake is derived from Gentoo's portage system, and many of the concepts utilized in Bitbake will be familiar to Gentoo users. OpenEmbedded provides Bitbake build recipes for many packages, from cross-compilation tools to the Qt framework and X. It is used as the build tool for a number of Linux distributions, including Ångström and Openmoko, and is also used by Gumstix to create firmware for their devices.

In contrast, Scratchbox takes a different approach from both OpenEmbedded and Buildroot. Rather than providing build instructions for the cross-compilation of packages, Scratchbox provides a chrooted environment in which the default build tools produce cross-compiled code. In this environment, packages may be built as though they were being built natively, thereby avoiding much of the hassle of configuring packages for cross-compilation. In addition to providing a compilation environment, Scratchbox also integrates Qemu to provide an emulated platform for running cross-compiled code. This could be a useful feature early in the development of a new embedded device when the actual hardware is not yet available. Scratchbox has been used by the Maemo project, which is used in Nokia's Internet Tablet products—and the N900 phone.

Finally, Firmware Linux marries the simplicity of Buildroot to the native compilation approach of Scratchbox. Starting life in 2001 as a means of automating a Linux From Scratch build, Firmware Linux has developed into a general set of scripts for the creation of a native development environment for the target hardware. Similar to Scratchbox, Firmware Linux supports the use of Qemu as an emulation environment for running target binaries and compiling code.

Miniature desktop distributions

Automated build environments allow developers to build complete embedded systems from source. At the same time, a number of projects are developing distributions which approach embedded software from the opposite direction, by slimming down general-purpose distributions to fit the embedded space.

Emdebian aims to make Debian suitable for embedded devices. So far, this effort has taken two complementary paths. Firstly, Emdebian Crush provides a heavily modified set of packages based around a Busybox root filesystem to provide the smallest possible installation of Debian. At the time of this writing, Crush supports ARM platforms only. Parallel to working on Crush, the Emdebian team has been developing Emdebian Grip, a low-fat install which tracks the development of the forthcoming stable release of Debian. Emdebian Grip has been used in Toby Churchill's SL40 Lightwriter, and some of Digi's ARM-based embedded modules, as well as various silicon provider board support packages.

Similar to Emdebian, Gentoo Embedded (aka Embedded Gentoo) works to make the Gentoo distribution more suitable for embedded devices. This brings Gentoo's portage package management tool to bear on the embedded space, and also provides a handbook which guides users through the process of putting together a Gentoo Embedded system; a process which will be generally familiar to users of the Gentoo handbook for desktop and server systems. Readers may be familiar with Gentoo Embedded through its use in Google's Chromium OS project, where it has been employed as a cross-compilation tool to build AMD64 binaries on an x86 host.

Commercial offerings

Alongside freely available open source embedded Linux tools and distributions, there are a number of commercial embedded Linux distributions available. Just as with desktop Linux, a commercial agreement with a vendor may offer various incentives to reassure pointy-haired bosses: guaranteed integration support, a quicker time-to-market, enhanced development tools, etc. MontaVista Linux is one of the most prominent offerings in this space, however a number of other commercial embedded distributions exist including Wind River Linux and BlueCat Linux.

Complete software stacks

Recent initiatives have seen the development of complete, application-specific software stacks for embedded platforms. Examples include Google's Android and Nokia's Maemo project, which are geared toward mobile phones and internet tablets; or one of the many network router firmware projects (e.g. FreeWRT, Tomato, or OpenWrt). These projects can offer a complete solution for certain developments, although it is more likely that they are employed as a foundation to build upon. For example, Android is in use in the Archos 5 internet tablet and Barnes and Noble's "nook" e-book reader, and Maemo has been merged with Intel's Moblin to form MeeGo.

Many paths to enlightenment

Although the nature of embedded devices makes a general-purpose Linux distribution difficult to develop there are nonetheless a range of projects which support embedded Linux development at every level. The Cross Linux From Scratch project provides a simple guide to hand-crafting a system, the various build frameworks and slimline versions of desktop distributions provide a sliding scale of automation for the creation of a distribution, and the complete stacks provided by the likes of Android and MeeGo provide an integrated foundation for further development.

Of the range of embedded Linux tools, the projects generating the most press are the likes of Android and MeeGo. This is partially due to the large corporate sponsors behind these projects, but it may also be because they are starting to change the face of embedded Linux by commoditizing the software stack for subsets of embedded devices. In so doing, Android and MeeGo may suggest a possible future development path for embedded Linux as a whole: for many applications, an off-the-shelf stack could deliver an enticingly short time-to-market along with the added incentive of high community involvement in the wider project. Whether or not this model can support enough diversity to make it appropriate across the embedded ecosystem is not clear, but the potential benefits to manufacturers and end users may make it an attractive way to deliver Linux in a range of other embedded markets.

Comments (20 posted)

New Releases

Release candidate for Ubuntu 10.04 LTS now available

The release candidate for Ubuntu 10.04 LTS (Lucid Lynx) is now available. See the release notes for "instructions and caveats" before installing. "The Ubuntu team is pleased to announce the Release Candidate for Ubuntu 10.04 LTS (Long-Term Support) Desktop and Server Editions and Ubuntu 10.04 LTS Server for Ubuntu Enterprise Cloud (UEC) and Amazon's EC2, as well as Ubuntu 10.04 Netbook Edition. Codenamed 'Lucid Lynx', 10.04 LTS continues Ubuntu's proud tradition of integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution. [...] We consider this release candidate to be complete, stable, and suitable for testing by any user." Click below for the full announcement.

Full Story (comments: 27)

Distribution News

Debian GNU/Linux

DPL delegations

Debian Project Leader Stefano Zacchiroli has announced delegations for the Debian System Administration team and for the Debian auditor. Luca Filipozzi, Martin Zobel-Helas, Peter Palfrader and Stephen Gran have been appointed to the DSA team, and Luk Claes has been appointed as the Debian auditor.

Comments (none posted)

Bits from the 3nd Debian Groupware Meeting

Click below for a few bits from the Debian Groupware Meeting. Topics include getting Icedove 3 (Thunderbird), Iceowl (Sunbird) and Evolution ready for squeeze.

Full Story (comments: none)

Welcome to our 2010 Debian Google Summer of Code students!

Debian welcomes the students selected for this year's Summer of Code. Click below to see who the students are and what they are working on.

Full Story (comments: none)

Fedora

Fedora 13 Spotlight Features

The Fedora Team has started a series of blog posts highlighting features in Fedora 13. The first post looks at NetworkManager. "NetworkManager started in 2005 as the brainchild of Red Hat developer Dan Williams, as his answer to the challenge of making networking in Linux simple and painless for users. NetworkManager rapidly grew from primarily being a wireless helper into a full-featured solution that was still simple and elegant enough to meet the needs of desktop users."

The second post in the series explores new features for Python developers. "This second post dives into several new and innovative features planned for Fedora 13 that we believe will be useful to Python developers of all levels. Early in the development cycle, Fedora engineering team member and contributor David Malcolm started working on more intelligent tracing and debugging features that solve some common difficulties. This work serves as an example of how Fedora leads by solving technical problems through the power of open source."

Comments (none posted)

Quick heads-up: Ubuntu memory leak issue

Adam Williamson reports that a memory leak in the Ubuntu 10.04 GLX package is not present in Fedora. "Hey everyone, just a quick heads-up. Some of you may have read about a memory leak that cropped up very late in Ubuntu 10.04 development process. They kindly put this phrase in their explanation of the bug: "One possible solution is to roll back the GLX 1.4 enablement patches, and the patch which caused the memory leak to appear. These GLX patches were produced by RedHat and incorporated into Debian, they were not brought in due to Ubuntu-specific requirements" which can obviously create the impression that the patches in question actually come from Red Hat Enterprise Linux, or from Fedora."

Full Story (comments: none)

Fedora Elections: Nominations open Sat 2010-04-24

Nominations are open for seats on the Fedora Advisory Board and the Fedora Engineering Steering Committee (FESCo). "You can nominate yourself, or someone else. It's recommended if you intend to nominate someone else that you consult with that person first." Nominations are open until May 2, 2010.

Full Story (comments: none)

Upcoming Fedora IRC Classroom Sessions

Click below for a list of Fedora IRC Classroom Sessions from April 27 - May 10, 2010.

Full Story (comments: none)

Fedora 11 EOL

Fedora 13 is scheduled for release on May 18, 2010. Therefore the end-of-life (EOL) for Fedora 11 will be June 18, 2010. "When Fedora 11 reaches EOL at that time, bugs open for Fedora 11 will be closed as previously described."

Full Story (comments: none)

Mandriva Linux

New mailing list : mandriva-kde

Mandriva has a new mailing list for KDE related discussions, problems and issues.

Full Story (comments: none)

SUSE Linux and openSUSE

Advance discontinuation notice for openSUSE 11.0

SUSE Security has announced that support for openSUSE 11.0 will be discontinued on June 30, 2010. "As a consequence, the openSUSE 11.0 distribution directory on our server download.opensuse.org will be removed from /distribution/11.0/ to free space on our mirror sites. The 11.0 directory in the update tree /update/11.0 will follow, as soon as all updates have been published. Also the openSUSE buildservice repositories building openSUSE 11.0 will be removed."

Full Story (comments: none)

Ubuntu family

Shuttleworth: A global menu for Ubuntu 10.10 Netbook Edition

Mark Shuttleworth describes a global menu for the 10.10 Netbook Edition. "In the netbook edition for 10.10, we're going to have a single menu bar for all applications, in the panel. Our focus on netbooks has driven much of the desktop design work at Canonical. There are a number of constraints and challenges that are particular to netbooks, and often constraints can be a source of insight and inspiration. In this case, wanting to make the most of vertical space has driven the decision to embrace the single menu approach."

Comments (29 posted)

Regional Membership Board nominations

Mark Shuttleworth has announced that nominations are open for the Regional Membership Board. "We're seeking nominations to all three Regional Membership Boards. Ideal candidates have a track record good judgment - and a willingness to support positive contributions matched only by their willingness NOT to be drawn into supporting factions, personalities and cabals. In any community of scale (and Ubuntu is at a larger scale than most) there will always be people making fascinating and unexpected (and hard to evaluate) contributions, as well as people who want to further their own ambitions at the expense of others. Being able to tell the difference, and recognizing those who are going to continue to raise the bar for Ubuntu, is a skill."

Comments (none posted)

Distribution Newsletters

DistroWatch Weekly, Issue 351

The DistroWatch Weekly for April 26, 2010 is out. "It's the Ubuntu release week, but before we get a chance to swarm the download mirrors with our insatiable desire for new releases, there is still time to cover some of the lesser-known distributions. This week we'll take a look at Scientific Linux, a surprisingly popular Linux option - and not just for sever rooms of high-tech research rooms and leading laboratories. In the news section, Red Hat announces the first public beta of a Xen-less Red Hat Enterprise Linux 6, Fedora continues its strong march towards version 13 with a plethora of (mostly invisible) features, Edubuntu prepares for a launch of a much improved Ubuntu flavour for schools, and MEPIS releases a set of USB images with extra applications and language support. Also in this issue, a look at the current state of affairs at Xandros and an explanation about motives behind 6-month release cycles which many popular distributions adopted in recent years. All this and more in this week's issue of DistroWatch Weekly - happy reading!"

Comments (none posted)

Fedora Weekly News 222

The Fedora Weekly News for April 21, 2010 is out. "In project-wide announcements, we have news of a time extension on the Fedora Summer Coding project, a request for comments on a new Fedora contributor agreement to replace the CLA, and the start of the always-exciting naming process for the next Fedora release. From Planet Fedora we hear of a new IcedTea (Java) release, a PyGTK hackfest, some suggestions for sticking more closely to the release schedule, and an interesting essay from Dan Williams on CDMA 3G data adapters. QA tells us all about the recent Graphics Test Week, and some results of Fedora 13 Beta testing. From the Translation team we hear about the start of Fedora 13 User Guide translation and an improvement in the arrangements for updating the Translation Quick Start Guide (TQSG). Finally, the design team lets us know about an update to the Fedora 13 wallpaper. Enjoy FWN 222!"

Full Story (comments: none)

openSUSE Weekly News/120

The openSUSE Weekly News for April 24, 2010 is available. "Now the sixteenth Week has come to a close, and we are pleased to announce our new issue. Last Week started the openSUSE Kernel Review, and we're pleased to announce our new report from the testing Team. We wish you much enjoyment in reading it..."

Comments (none posted)

Ubuntu Weekly Newsletter #190

The Ubuntu Weekly Newsletter for April 24, 2010 is out. "In this issue we cover Announcing the Release Candidate for Ubuntu 10.04 LTS, Call for UDS Plenaries and Lightning Talks, Ubuntu Launchpad Single-Sign-On Now Open Source, Mark Shuttleworth promotes Ubuntu Party of Paris, Farewell to the notification area, New Ubuntu Members, Lo``Co Council Meeting, Ubuntu's success at Anime Boston 2010!, LoCo Stories: the Asturian team drives the Asturian Language Academy migration to Ubuntu, Ubuntu Turkey LoCo Team Interviews Canonical CTO, Matt Zimmerman, Ubuntu-NY Lucid release party, Launchpad in the second half of 2010, Full Circle Magazine Podcast Episode 5: Manual Dexterity, Ubuntu Lucid Lynx 10.04 RC released on time, OMG Interviews Elizabeth Krumbach, Ubuntu women, learning team, beginners team all star, Ubuntu Women World Play Day Competition - Win a new netbook!, Ubuntu Manual Project To Release Quickstart Booklets For Ubuntu 10.10, Ubuntu: How to Measure Canonical's Business Progress and much, much more!"

Full Story (comments: none)

Interviews

Keeping 1000 devs focused: new Debian leader speaks (ITWire)

ITWire has an interview with newly elected Debian Project Leader Stefano Zacchiroli. "Zacchiroli, a post-doctoral fellow at a university in Paris, thus has a fairly tough task ahead as he begins his term. He took some time out to speak to iTWire about his plans for the year."

Comments (none posted)

Distribution reviews

EasyPeasy and the Challenges of Linux Netbook Design (Datamation)

Bruce Byfield reviews EasyPeasy, an Ubuntu based distribution for netbooks. "Netbook desktops in free and open source software (FOSS) are in a state of rapid development. Should a netbook be treated as more as a mobile device than as a laptop? Should developers assume that netbooks are used for light computing such as social networking, rather than for productivity? These are just two of the questions whose answers affect the design of any netbook desktop. However, you would have to search long and hard to find any distribution that answers such questions as openly as the EasyPeasy distribution does in its 1.6 release candidate (RC)."

Comments (none posted)

Page editor: Rebecca Sobol
Next page: Development>>


Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds