Product Details
Building Embedded Linux Systems

Building Embedded Linux Systems
By Karim Yaghmour, Jon Masters, Gilad Ben-Yossef, Philippe Gerum

List Price: £38.50
Price: £21.85 & eligible for FREE Super Saver Delivery on orders over £5. Details

Availability: Usually dispatched within 24 hours
Dispatched from and sold by Amazon.co.uk

36 new or used available from £20.68

Average customer review:

Product Description

There's a great deal of excitement surrounding the use of Linux in embedded systems - for everything from cell phones to car ABS systems and water-filtration plants - but not a lot of practical information. "Building Embedded Linux Systems" offers an in-depth, hard-core guide to putting together embedded systems based on Linux. Updated for the latest version of the Linux kernel, this new edition gives you the basics of building embedded Linux systems, along with the configuration, setup, and use of more than 40 different open source and free software packages in common use. The book also looks at the strengths and weaknesses of using Linux in an embedded system, plus a discussion of licensing issues, and an introduction to real-time, with a discussion of real-time options for Linux.This indispensable book features arcane and previously undocumented procedures for: building your own GNU development toolchain; using an efficient embedded development framework; selecting, configuring, building, and installing a target-specific kernel; creating a complete target root filesystem; setting up, manipulating, and using solid-state storage devices; installing and configuring a bootloader for the target; cross-compiling a slew of utilities and packages; debugging your embedded system using a plethora of tools and techniques; and, using the uClibc, BusyBox, U-Boot, OpenSSH, thttpd, tftp, strace, and gdb packages. By presenting how to build the operating system components from pristine sources and how to find more documentation or help, "Building Embedded Linux Systems" greatly simplifies the task of keeping complete control over your embedded operating system.


Product Details

  • Amazon Sales Rank: #39492 in Books
  • Published on: 2008-08-26
  • Original language: English
  • Number of items: 1
  • Binding: Paperback
  • 462 pages

Editorial Reviews

From the Publisher
Building Embedded Linux Systems shows you how to design and build your own embedded systems using Linux® as the kernel and freely available open source tools as the framework. Written by an active member of the open source community, the book is structured to gradually introduce readers to the intricacies of embedded Linux, with detailed information and examples in each chapter that culminate in describing how Linux is actually put on an embedded device.

About the Author
Karim Yaghmour is the founder and president of Opersys, a company providing expertise and courses on the use of open source and free software in embedded systems, and Kryptiva, a a provider of email security services. Being himself an active member of the open source and free software community, Karim has firmly established Opersys's services around the core values of knowledge sharing and technical quality promoted by this community. As part of his community involvement, Karim is the maintainer of the Linux Trace Toolkit and the author of a series of white-papers that led to the implementation of the Adeos nanokernel, which allows multiple operating systems to exist side-by-side.

Karim's quest for understanding how things work started at a very young age when he took it upon himself to break open all the radios and cassette players he could lay his hands on in order to "fix" them. Very early, he developed a keen interest in operating system internals and embedded systems. He now holds a B.Eng. and an M.A.Sc. from the Ecole Polytechnique de Montreal. While everyone was hacking away at Linux, Karim even took a detour to write his own distributed micro-kernel in order to get to the bottom of operating system design and implementation. When not working on software, Karim indulges in his passion for history, philosophy, sociology, and humanities in general. He's especially addicted to essays and novels by Umberto Eco and Gerald Messadie.

Jonathan Masters works on the Linux kernel for Red Hat.

Gilad Ben-Yossef is the cofounder and CTO of Codefidence TD. and has been assisting OEMs make use of free and open source software in commercial products and services since 1998. He is also cofounder of Hamakor, an NPO devoted to the promotion of FOSS in Israel, and a founding organizer of "August Penguin," an Israeli community FOSS conference.

Gilad is a member of the Israeli chapter of Mensa, the Israeli Information Technology Association and the Israeli chapter of the Internet Society. He holds a B.A. in Computer Science from Tel-Aviv Jaffa Academic College.

When not trying to make FOSS software do something the authors never intended, Gilad likes to SCUBA dive, read science fiction and spend time with his wife Limor and his and two adorable girls, Almog and Yael.

Philippe Gerum is the founder and maintainer of the Adeos and Xenomai projects.

Excerpted from Building Embedded Linux Systems by Karim Yaghmour. Copyright © 2003. Reprinted by permission. All rights reserved.
Chapter 5 - Kernel Considerations

The kernel is the central software component of all Linux systems. Its capabilities very much dictate the capabilities of the entire system. If the kernel you use fails to support one of your target’s hardware components, for instance, this component will be useless as long as this specific kernel runs on your target.

Many books and online documentation already discuss the kernel’s internals, its programming, its setup, and its use in user systems at length. I will not, therefore, cover these issues here. If you are interested in such issues, have a look at Running Linux, Linux Device Drivers, and Understanding the Linux Kernel by O’Reilly.

These books cover the kernel’s setup and use, its programming, and its internals, respectively. You may also want to take a look at the Linux Kernel HOWTO available from the LDP.

Our discussion will be limited to issues about the preparation of a Linux kernel for use in an embedded system. Specifically, we will discuss kernel selection, configuration, compilation, and installation. Each step will get us closer to the goal of obtaining a functional kernel with its related modules for our target system. Our discussion will end with coverage of the aspects of the kernel’s operation that are specific to embedded systems.

Selecting a Kernel
Though there is only one main repository for the kernel, the versions available from that site aren’t always appropriate for all the architectures supported by Linux. In fact, these versions will often not even build for, much less run on, some of the most popular architectures in embedded Linux systems. This is primarily because the development of Linux for these architectures isn’t synchronized with the main kernel releases.

To have a working kernel for your target, you need to obtain one of the versions made available by the development team in charge of your target’s underlying processor architecture. Since each architecture is maintained by a different team, the site of choice for a kernel varies accordingly. Table 5-1 provides a list of locations where you will find the most appropriate kernel for your architecture, along with the means of download available from that site. As you can see, most of these sites are the same ones I recommended for each architecture in Chapter 3. That said, these are not the only kernel locations for each target.

Other locations may also provide versions for your target. To begin with, some of these sites have mirrors that provide the same content. Then there are the kernels provided by various individuals, companies, and organizations. Exercise caution if you intend to use the latter type of kernel, as these kernels may not be supported by the community* and you may be forced to rely on the provider’s support, if available, in case of problems.

Once you have found the download site that is most appropriate for you, you will need to select a kernel version from that site. This is a difficult decision, as some versions have broken features, even if the same features were fully functional in older versions. The best way to find this sort of information is to stay in touch with the community maintaining the kernel for your architecture. This doesn’t mean sending any emails or contacting anyone, but it involves subscribing to the appropriate mailing lists and keeping watch of the important notices on that list and on the port’s main web site.

Some of these sites, such as the ARM site, don’t necessarily distribute full kernels. Rather, they distribute patches to the official kernel. To obtain the appropriate kernel for your architecture, you must then download the kernel from the main repository and apply to it the appropriate patch provided by your port’s site.


Customer Reviews

Brilliant5
If you want to know everything about embedding Linux this is it!

I have been involved in Embedded Linux for the past three years, and often spent countless hours on the net, reading through vast amount of documents, done by the kind folks of the Linux commmunity.

Karim has done a splendid job, pulling together everything you need to know, to embed Linux on a varaiety of architectures, and walks you through in simple, easy to understand manner.

This book is a "must have" for anyone deploying Linux on embedded systems. Besides its a cracking read anyway, if you like to broaden your knowledge on Linux internals.

Excellent embedded linux starting point5
The book is an excellent embedded GNU/Linux starting point: Karim drives you through almost all aspects of embedded Linux system configuration and installation giving a lot of 'pointers' to software and documentation, saving many hours of 'googling'. At the end of the book I found myself with a perfectly configured and specifically taylored GNU/Linux embedded system cross/development framework and a running target board.
Congratulation Karim !

Superb5
The Linux operating system is fantastic, documentation and training aids on the subject are poor. This book is a great introduction to linux when used in an embedded context.

It covers the basics like how to setup terminal emulators on the host, and provides information on the host/target environment most suitable for your project. It demonstrates how to configure the tool chain and how to configure the kernel. It also deals with some deployment issues such as storage and the root file system and has a great section on bootloaders as well. The section on using performance analysis tools and measuring interrupt latency is very valuable as well.

If you know linux well this book will probably teach you very little, but if like me you know embedded systems but are new to linux you'll love it.

Complements Linux Device Drivers by Rubini & Corbet very well. I wish I'd had this book a year ago, I'd have more hair today.