Embedded Linux


Embedded Linux provides the reader the information needed to design, develop, and debug an embedded Linux appliance. It explores why Linux is a great choice for an embedded application and what to look for when choosing hardware.

Embedded Linux provides the reader the information needed to design, develop, and debug an embedded Linux appliance. It explores why Linux is a great choice for an embedded application and what to look for...

See more details below
Other sellers (Paperback)
  • All (8) from $1.99   
  • New (3) from $28.60   
  • Used (5) from $1.99   
Sending request ...


Embedded Linux provides the reader the information needed to design, develop, and debug an embedded Linux appliance. It explores why Linux is a great choice for an embedded application and what to look for when choosing hardware.

Embedded Linux provides the reader the information needed to design, develop, and debug an embedded Linux appliance. It explores why Linux is a great choice for an embedded application and what to look for when choosing hardware.

Read More Show Less

Editorial Reviews

From The Critics
Embedded applications differ from regular computer applications in that there are not the regular keyboard and mouse user interface and the mission of the application is extremely limited. This handbook explains the hardware and software needed for creating embedded applications using the open source operating system Linux. Appropriate to the topic of embedded systems, the author stresses building the smallest possible systems, both in terms of the physical size of the hardware and the size of programs. Annotation c. Book News, Inc., Portland, OR (booknews.com)
Read More Show Less

Product Details

  • ISBN-13: 9780735709980
  • Publisher: Sams
  • Publication date: 7/28/2001
  • Series: Landmark Series
  • Pages: 192
  • Product dimensions: 6.90 (w) x 9.00 (h) x 0.70 (d)

Meet the Author

John Lombardo has been working with Linux since the "0.9" days. His ShareTheNet software product enables a novice user to easily create a highly functional router out of an old x86 computer using Linux. Lately, John has been working on several embedded Linux projects, including easy-to-use IPSEC routers, ARM7-based NAT routers, and this book. John has a BS in Computer Science.

Read More Show Less

Read an Excerpt

Chapter 1: Software Considerations

You know you want to build an embedded application, and you know you want to use Linux as the operating system. Where do you start?

With the hardware.

The hardware choices you make—processor, memory, flash, and so on—drive what you will do with the software. Because no software license cost is associated with Linux, most of your cost will be in the hardware itself. The more units you sell, the more true that is. Therefore, in any high-volume application, it's important to get the hardware right before you ever worry about the software. Linux has been adapted to many different microprocessors and microcontrollers, and more are supported all the time. Chances are that Linux already supports the processor you'll choose in some way. If not, and you have the time and expertise, you can support it yourself.

After you select the hardware you want to use, it's time to see how well Linux supports that hardware. So fire up your browser and search the Internet for Web sites devoted to Linux + your hardware device. Here are some good places:

  • www.google.com
  • www.LinuxDevices.com
  • www.LinuxHardware.net
  • www.LinHardware.com
After you've finally decided on your hardware platform, it's time to nail down exactly what you want the software to do. This chapter presents several software-related issues you'll need to consider.

Note: If you want to support a soft modem (also known as winmodems), you can write the driver for Linux and install it as a module at boot time. Linus doesn't like this, but admits that it doesn't violate the GPL.

Embedded Linux Toolkits

Porting Linux to a new hardware platform can be a daunting task. Fortunately, several embedded Linux toolkits are designed to simplify the job of building the binary that runs your device. Some toolkits, such as Lineo's Embedix and Monte Vista's Hard Hat Linux, are broadly focused, and are able to work on many processors for lots of different applications. Others are from smaller companies and focus on narrower processor sets and more limited application ranges. Still others, such as PeeWeeLinux, are not products distributed by companies, but rather projects built by a set of like-minded hackers in the traditional Open Source model.

Here are a few things to consider when you're looking for an embedded Linux toolkit:

  • Hardware support. Does the Linux toolkit include support for the processor you want to use? If the toolkit doesn't already support that processor, does the toolkit vendor have the ability to develop that support quickly enough for your purposes? If so, how much will it cost? Does it fit in your budget?
  • Documentation. Is the toolkit well documented? Are all of the programs involved documented? Does the documentation cover both high-level concepts such as architecture white papers and low-level documentation such as how to build binaries, how to add your software to the code base, and reference manuals to the build and runtime software?
  • Adaptability. How adaptable is the embedded Linux toolkit to the particular application you're going to use? If it's a very narrow toolkit and you'll use it for several projects, how much work will be involved in changing the toolkit to the projects for which it's not as well suited?
  • Developer support. What kind of developer support does the toolkit company offer, and how expensive is it? If you need a bug fixed, a question answered, or a device driver written, how quickly can you get a response from the company? Is a listserv available for the users of the product? If one is available, how active is it? Is anyone from the company answering questions on the list?
  • Field upgradeability. Are facilities available in the toolkit for upgrading the software in the field? Does the toolkit company offer any means for delivering those upgrades, or is that left to you?
  • User interface. If your application requires some sort of user interface, what are your options? Does the embedded Linux toolkit offer some sort of embedded video interface? If so, how much room does it take? If not, is there some sort of Web-based interface available for configuration? Note that the toolkit itself may not have any support for a graphical interface. Several Open Source projects and several commercial products are aimed at building small-footprint graphical user interfaces. For more information, see http://www.linuxdevices.com/articles/AT9202043619.html.
  • Track record. Does the toolkit vendor have any examples of customers who have created a similar product out in the field? How successful was that vendor with the toolkit?

Kernel Features

The Linux kernel runs on a vast array of hardware architectures—everything from handhelds to mainframes. To support this sort of scalability, the kernel is highly configurable.

There are several ways of configuring the kernel (note that I'm using the word configure quite loosely here):

  • Typing make config , make menuconfig , or make xconfig in the root of the kernel source runs the standard kernel configure routines.You can turn options on or off or sometimes compile them as modules so they can be loaded at runtime.
  • There are hundreds—perhaps even thousands—of kernel patches floating around the Internet. Some are very small—enough to fix a small bug in one file. Medium-size patches may affect a half-dozen files and add support for a particular hardware device. Some large patches add or affect many dozens of files and add support for new architectures. Often applying a patch adds new questions or entire screens to the kernel-configuration screens previously described.
  • The One True Method of really "configuring" the kernel to do exactly what you want is to hack on it yourself. Until recently, this was an exercise only for those who have lots of time and patience—the Linux kernel source code is well structured but somewhat obtuse. Linus doesn't believe in cluttering up the source with comments for the uninitiated (see Chapter 5 of Documentation/Coding Style in the Linux source tree).
Fortunately, times have changed and there are now several good overviews of the Linux kernel. Perhaps the most lucid is Understanding the Linux Kernel by Daniel Pierre Bovet and Marco Cesati (O'Reilly, 2000).

Networking, Filesystems, and Executable Formats

Some embedded Linux applications have no use for the networking code. Be sure to configure the kernel so that the networking code is skipped if you don't need it; it takes up a lot of space. Also, make sure that your kernel supports only the one or two filesystem types you actually need. Finally, you probably need only one executable format, ELF (Executable and Linking Format), for your embedded application, so be sure to turn off all the rest. For details on the ELF file format, consult the following documents....
Read More Show Less

Table of Contents


Why Linux?

Open Source

When Is Linux Inappropriate?

The Embedded Linux Workshop

Conventions Used in This Book

Part I: Software

Chapter 1. Software Considerations

Embedded Linux Toolkits

Kernel Features

Creating or Acquiring a Development Environment

Booting the Kernel

Software Size

Upgrading the Software in Place

Chapter 2. Minimal Linux

Stripping Distributions Versus Building Your Own

Static Versus Dynamic Application

Software Subsystems

C Compiler


Chapter 3. Software Configuration

Be Selective About Software

Dealing with Software Expectations


Chapter 4. Booting Your Embedded Linux Device

Understanding the Boot Process

Sample BIOS and Boot Loader


Part II: Hardware

Chapter 5. Hardware Considerations

Determining the Design Goal

Buy or Build?

Processor Choices

Storage Choices and Memory Requirements




Part III: Implementing an Embedded Linux Application

Chapter 6. Embedded Linux Toolkits

What Constitutes an "Embedded Linux Toolkit"?


BlueCat Linux from LynuxWorks (www.LynuxWorks.com)

PeeWeeLinux (www.peeweelinux.org)


Chapter 7. The Embedded Linux Workshop

General Goals

A Bit of History




Debugging Your Application

Installing the Embedded Linux Workshop

Your First Embedded Linux Workshop Project

A Tour of the Embedded Linux Workshop

The Project Directory

The Build Process


Chapter 8. Static Application Example: Minicom



Chapter 9. Testing and Debugging

Test on Your Host Computer as Much as Possible

Debugging Tools

Chapter 10. Embedded Linux Success Stories

TiVo (www.tivo.com)

Diamond Riocar (www.riohome.com)

Axis Network Camera (www.axis.com)


Part IV: Appendixes

Chapter A. GNU General Public License



How to Apply These Terms to Your New Programs

Chapter B. GNU Lesser General Public License




How to Apply These Terms to Your New Libraries

Chapter C. Booting from Flash Memory

Building the DiskOnChip Files


Installing the Image or Files onto the DiskOnChip


Chapter D. Embedded Linux Resources

This Book's Web Site: www.EmbeddedLinuxBook.com

Web Sites Devoted to Embedded Linux

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)