CDN$ 72.99
Temporarily out of stock.
Order now and we'll deliver when available. We'll e-mail you with an estimated delivery date as soon as we have more information. Your account will only be charged when we ship the item.
Ships from and sold by Gift-wrap available.
Embedded Linux: Hardware,... has been added to your Cart
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

Embedded Linux: Hardware, Software, and Interfacing Paperback – Mar 7 2002

4 out of 5 stars 11 customer reviews

See all 3 formats and editions Hide other formats and editions
Amazon Price
New from Used from
"Please retry"
CDN$ 72.99
CDN$ 36.78 CDN$ 6.72

Save an Additional 10% on Textbooks When you Join Amazon Student

Special Offers and Product Promotions

No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your e-mail address or mobile phone number.

Product Details

  • Paperback: 432 pages
  • Publisher: Addison-Wesley Professional; 1 edition (March 7 2002)
  • Language: English
  • ISBN-10: 0672322269
  • ISBN-13: 978-0672322266
  • Product Dimensions: 18.5 x 2.5 x 22.9 cm
  • Shipping Weight: 703 g
  • Average Customer Review: 4.0 out of 5 stars 11 customer reviews
  • Amazon Bestsellers Rank: #643,132 in Books (See Top 100 in Books)
  •  Would you like to update product info, give feedback on images, or tell us about a lower price?

  • See Complete Table of Contents

Product Description

From the Inside Flap

This is an exciting time. The proliferation of Internet technology has transformed our concept of information. 24 hours per day, people rely on network devices for business and personal use. Over time, this dependence will grow further. Today's network devices, such as servers, routers, and desktop computers, form the Internet's infrastructure. Tomorrow's devices will control your home's temperature, maintain inventory levels at your business, and monitor automobile traffic patterns. Only a handful of the billions of processors produced each year go into desktop or server computers. The remaining processors monitor and control other facets of the world.

Individuals and businesses want smart, network-connected, devices to improve their lives, their efficiency, and their bottom dollar. These devices must be simple to operate, reliable, and inexpensive. This is where Linux comes in. Advances in technology accompanied by competitive pricing allow Linux to move from the desktop and server environment to embedded devices. Linux offers reliability, features, open-source code, and a proven track record; these features make it perfectly suited for embedded system designs. In this book, you will find information to create an embedded Linux foundation. You can then extend this foundation in your own designs.

Benefits of This Book

When I first started researching material for this book, I assumed that online embedded Linux information was like other Linux information--plentiful and well documented. I quickly discovered that my assumption was wrong. I found embedded Linux documentation to be sparse, scattered, incomplete, and sometimes dated. This was discouraging and invigorating at the same time. Although I worried about being able to find adequate information, I was further convinced of the need for this book. People are designing embedded products with Linux, so the information and knowledge are out there; it just hasn't all been in one place until now.

As an instructor, I have determined that students best understand and retain theoretical concepts and ideas when accompanied by examples. When students see a concept in action--whether it is a robotic arm movement, a voltmeter reading, or an oscilloscope waveform--they're most likely to later apply that concept to solve their own problems. That's why this book is full of step-by-step examples. You will learn through the example and be able to apply that knowledge to your own designs.

What This Book Covers

This book includes a complete series of real-world interfacing examples designed to introduce embedded Linux from hardware and software perspectives. After you create an embedded Linux development environment, you will step through hardware and software interfacing examples, using asynchronous serial communication, the PC parallel port, USB, memory I/O, synchronous serial communication, and interrupts. All interfacing examples are then tied together using system integration. All this material is presented by using a winter resort automation project called Project Trailblazer.

Chapter 1, "Introducing Embedded Linux," describes the brief history of Linux as an embedded operating system and the implications of using open-source software in product design.

Chapter 2, "System Architecture," introduces a winter resort automation project called Project Trailblazer and develops a series of project requirements. Project Trailblazer and its requirements form the basis for the book's interfacing examples.

Chapter 3, "Selecting a Platform and Installing Tool Sets," describes the process of platform selection. Four target boards--which use x86, StrongARM, and PowerPC processors--are selected for Project Trailblazer. This chapter then describes the creation of an embedded Linux development workstation called tbdev1. All the development tools are either installed or compiled, including the cross-compiled tool chain for the StrongARM and PowerPC processors.

Chapter 4, "Booting Linux," describes the Linux boot process, from power-on to the bash prompt. Using a minimum root filesystem, each target board is booted using Linux version 2.4.

Chapter 5, "Debugging," configures gdb and gdbserver for target board debugging over the Ethernet network. A cross-compiled version of helloworld is remotely executed and debugged.

Chapter 6, "Asynchronous Serial Communication Interfacing," describes the Linux serial port device driver for control of port signals and buffers. An RFID tag reader, an LCD display, and control circuitry are interfaced to the Linux serial port.

Chapter 7, "Parallel Port Interfacing," describes interfacing AC circuits to an x86 target board's parallel printer port. A custom device driver called helloworld_proc_module that uses a /proc directory entry is introduced.

Chapter 8, "USB Interfacing," describes connecting a camera and speakers for visual input and audio output to a target board's USB port.

Chapter 9, "Memory I/O Interfacing," describes interfacing AC circuits to the StrongARM and PowerPC target boards' CPU buses.

Chapter 10, "Synchronous Serial Communication Interfacing," describes SPI and I2C connections and communications. A low-cost SPI temperature sensor and I2C LED display driver are interfaced to the target boards.

Chapter 11, "Using Interrupts for Timing," describes Linux timing sources and the measurement of each target board's average interrupt latency. An event timer with 1ms accuracy is developed to measure race times.

Chapter 12, "System Integration," describes the creation of the Project Trailblazer database. Target and server bash scripts are developed, using this database for collection and distribution of temperature, image, and authentication data.

Chapter 13, "Final Thoughts," summarizes the interfacing projects and discusses embedded Linux topics that are not addressed elsewhere in the book.

Who This Book Is For

If you are a hardware engineer, software developer, system integrator, or product manager who's begun exploring embedded Linux for interfacing applications, then this book is for you. The book's comprehensive interfacing examples are simple, requiring only a basic understanding of digital logic design, C and bash programming, and Linux system administration.

Conventions Used in This Book

This book uses several common conventions to help teach embedded Linux.

The typographical conventions used in this book include the following:

  • Commands and computer output appear in a monospaced computer font.
  • Commands you type appear in a boldfaced computer font.
  • Italics are used to introduce you to new terms.

In addition to typographical conventions, this book includes tips, which look like this:

Information that offers shortcuts and solutions to common problems is highlighted as a tip.


From the Back Cover

Embedded Linux covers the development and implementation of interfacing applications on an embedded Linux platform. It includes a comprehensive discussion of platform selection, crosscompilation, kernel compilation, root filesystem creation, booting, remote debugging, real-world interfacing, application control, data collection, archiving, and presentation.

This book includes serial, parallel, memory I/O, USB, and interrupt-driven hardware designs using x86-, StrongARM®-, and PowerPC®-based target boards. In addition, you will find simple device driver module code that connects external devices to the kernel, and network integration code that connects embedded Linux field devices to a centralized control center. Examples teach hardware developers how to store and activate field bits and deliver process information using open source software. If you are a hardware developer, software developer, system integrator, or product manager who's begun exploring embedded Linux for interfacing applications, this book is for you.

  • Select an embedded Linux platform (x86, StrongARM®, and PowerPC® architectures are covered)
  • Create a cross-compiling and debugging development environment
  • Build a custom Linux kernel for each architecture
  • Create a minimum root filesystem
  • Boot the custom Linux kernel on three target boards with x86, SA-1110, and MPC860 microprocessors
  • Remote debug programs running on a target board across an ethernet network using GNU tools
  • Connect data acquisition and control electronics/peripherals using the microprocessor's serial, parallel, memory I/O, and USB interfaces
  • Measure average interrupt latencies for the x86, SA-1110, and MPC860 microprocessors and design an interrupt-driven process timer with 1mS accuracy
  • Interface the peripherals to the kernel and applications using device driver modules
  • Collect, control, store, and present data via open source protocols and applications
  • Analyze embedded Linux vendor product offerings


See all Product Description

Customer Reviews

4.0 out of 5 stars
Share your thoughts with other customers

Top Customer Reviews

Format: Paperback
As of 4/2004, the book relies on a free distribution of Hard Hat linux that is no longer available on Montavista's site (as they charge $25K for a single seat, I guess they felt they were giving too much away ;-) HOWEVER: Hollanaugh has copies of them with all of his scripts on his site, so look for them there. His scripts are also now modified to point to the new locations. Though even this distribution is somewhat out of date, this book does a pretty reasonable job of getting you through it all. I found finding free (useful, current) distributions of embedded linux very hard to find but eventually did.. Check out [...] and for current multiplatform distributions. The denx distribution ELDK appears to have morphed from the original Hard Hat distibution as many of the utilities still exist, I used this and was able to "generally" follow along. It's a more recent distribution and supports more platforms (at least for the PPC). I would definately repurchase this book again..
His site is:
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse
Format: Paperback
This is the best Embedded Linux book I have read so far. The Author has an excellent approach on the subject. He takes a real life application and proposes real solutions. Another strong point about this book is that the Author use of 4 different uP platforms as example (i.e. PowerPC, StrongARM, x86, COTS x86). This provides the reader with a wide view of the extraordinary possibilities of embedded Linux. The Chapter on setting-up a reference development platform is very useful. This is maybe obvious for many engineer out there but unfortunately I have seen to many time that is not a universal approach. Maybe some of the scripts listing should have been left to an include floppy disk.
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse
Format: Paperback
Dr. Hollabaugh has certainly shed useful light on the concept of embedded linux. He intelligently sets the stage and walk you through real steps for deploying a fully embedded linux control and monitoring system. The diagram, table, and code examples will leave you with a very clear understanding of the subject matter (providing you have some background with linux development). Personally, I was totally captivated and found myself extremely happy that I have chosen this book to help thrust foward my own intelligence of embedded linux. This book and website....has become a primary reference for future embedded linux application.
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse
Format: Paperback
Part I ('Getting Started') is a head start for newbie, but the emphasis is more on setting up a development and
debugging environment for an embedded linux project and not on the process of porting linux for an embedded system.
None of the issues related to the porting of kernel loader or porting of the actual kernel for any of the reference target
boards are addressed.Not enough information for a newbie trying to port linux for a custom board.
After getting past these issues (with help from resources on web) and having a working kernel on the board, Part II ('Interfacing')
of the book is quite useful.
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse
Format: Paperback
Embedded Linux: Hardware, Software, And Interfacing by Linux computer expert Craig Hollabuagh is a straightforward, comprehensive guide to the development and use of interfacing applications on Linux. Individual chapters address how to boot Linux, debugging with gdb, parallel port interfacing, USB interfacing, memory I/O interfacing, synchronous serial communication interfacing, system integration and much more. Tips, tricks, techniques, tables and selections of code round out this useful, complete, highly recommended reference for serious Linux programmers.
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse
By A Customer on April 26 2002
Format: Paperback
With over 200 of the 400 pages dedicated to interfacing, it seems the emphasis of the title should have reflected this. A more appropriate title would be "Interfacing in an example embedded Linux application". There are many pages of entire listings which could have been made available for download instead.
Although the hardware diagrams are appreciated, they are not specific to Linux. Overall, you may find the examples useful, but you will need to dig deeper to understand the real issues.
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse