Home > Store

Embedded Linux: Hardware, Software, and Interfacing

Register your product to gain access to bonus material or receive a coupon.

Embedded Linux: Hardware, Software, and Interfacing


  • Sorry, this book is no longer in print.
Not for Sale


  • Copyright 2002
  • Dimensions: 7-3/8" x 9-1/8"
  • Pages: 432
  • Edition: 1st
  • Book
  • ISBN-10: 0-672-32226-9
  • ISBN-13: 978-0-672-32226-6

Embedded Linux will help the user: select an Embedded Linux platform based on hardware requirements; build and boot a custom Linux kernel for the platform; remote debug programs running on the platform using GNU tools; connect data acquisition and control electronics/peripherals using the platform's serial, parallel, USB, I/O port and I2C interfaces; interface the peripherals to the kernel and applications using modules; collect, control, store and present data via open source protocols and applications; and analyze Embedded Linux vendor product offerings.



The scripts for the examples developed in the book - 42 kb -- scripts.tar.gz


Related Article

Cross-Compile Your C++ Apps with XMingwin

Author's Site

Click below for Web Resources related to this title:
Author Web Site

Sample Content

Online Sample Chapters

Selecting a Platform and Installing Tool Sets

Selecting a Platform and Installing Tool Sets for Embedded Linux

Table of Contents



1. Introducing Embedded Linux.

Why Linux, Why Now?

What Is an Embedded System?

What Does Real-Time Mean?

Implications of Open Source.


Additional Reading.

2. System Architecture.

Introducing Project Trailblazer.

The Silverjack Resort Layout.

Project Trailblazer Requirements.

Safety Requirements.

Operations Requirements.

Supplier Requirements.

The Project Trailblazer System Architecture.


3. Selecting a Platform and Installing Tool Sets.

Sources of Information.

The Project Trailblazer Strategic Direction.

Building tbdev1, the Embedded Linux Development Workstation.

Getting Started.

Installing the Linux Operating System.

Installing the Native GNU Tool Chain and Other Applications.

Building the GNU Tool Chain for Cross-Compiling.


Additional Reading.

4. Booting Linux.

The Target PBRs.

The Linux Boot Process.

The Linux root Filesystem.

Required Files for init.

Required Files for bash.

The root Filesystem Binary Files: Compile or Download?

Creating the root Filesystem.

Deciding Which Package to Use.

The Process for Building the root Filesystem.

Running buildrootfilesystem.

Installing the TFTP Server.

Installing minicom.

Booting the Embedded Planet RPX-CLLF.

Embedded Planet RPX-CLLF Target PBR Review.

Booting the Brightstar Engineering MediaEngine.

Brightstar Engineering MediaEngine Target PBR Review.

Booting the Tri-M MZ104 and the COTS PC with a Flash IDE Drive.

Flash IDE Technology.

Preparing the Tri-M MZ104 and the COTS PC.

Booting the Tri-M MZ104 Target.

Tri-M MZ104 Target Platform Boot Requirements Review.

Boot Comparison.


Additional Reading.

5. Debugging.

Introducing gdb.

Local Debugging.

Remote Debugging.

Network-Mounting the root Filesystem.

Configuring the NFS Server.

Configuring the Target Kernels.


Additional Reading.


6. Asynchronous Serial Communication Interfacing.

The Project Trailblazer Asynchronous Serial Hardware Development Environment.

Target EIA/TIA-232-E Compliance.

Linux Serial Communications.

Setting the Serial Port Control Signals with setSerialSignal.

Reading the Serial Port Control Signals with getSerialSignal.

Providing Serial Communication for bash Scripts, Using querySerial.


Additional Reading.

7. Parallel Port Interfacing.

Control Using the Parallel Port.

Standard Parallel Port Control with Port I/O.

Monitoring Lift Operation Using Port I/O.

Snow-Making Control Using Port I/O.

Standard Parallel Port Control Using ppdev.

Developing a Custom Device Driver.

Understanding helloworld_proc_module.

Compiling, Inserting, and Testing helloworld_proc_module on the MediaEngine.

Standard Parallel Port Control Using the Custom Device Driver liftmon_snowcon.

Enhancements to helloworld_proc_module to Create liftmon_snowcon.

Compiling, Inserting, and Testing liftmon_snowcon on the MZ104.


Additional Reading.

8. USB Interfacing.

Learning About USB.

Project Trailblazer USB Hardware.

USB Audio: Yamaha YST-MS35D USB Speakers.

USB Image Capture: Kensington VideoCAM Super-VGA PC Camera.

USB Mass Storage: SanDisk USB SmartMedia Card Reader.


Additional Reading.

9. Memory I/O Interfacing.

The Hardware Design Process.

Developing Lift Monitoring and Snow-Making Control for the MediaEngine.

Designing the External Interface Hardware for the MediaEngine.

Finding Space in the Memory Map for the MediaEngine.

Finding the Register Base Address for the MediaEngine.

Configuring the Memory Controller for the MediaEngine.

Assigning the Output Module Enable Signal for the MediaEngine.

Configuring the I/O Port Controller for the MediaEngine.

Writing the helloworldbit Testing Device Driver for the MediaEngine.

Writing the liftmon_snowcon Device Driver for the MediaEngine.

Developing Lift Monitoring and Snow-Making Control for the RPX-CLLF.

Designing the External Interface Hardware for the RPX-CLLF.

Finding Space in the Memory Map for the RPX-CLLF.

Finding the Register Base Address for the RPX-CLLF.

Configuring the Memory Controller for the RPX-CLLF.

Assigning the Output Module Enable Signal for the RPX-CLLF.

Configuring the I/O Port Controller for the RPX-CLLF.

Writing the helloworldbit Testing Device Driver for the RPX-CLLF.

Writing the liftmon_snowcon Device Driver for the RPX-CLLF.


Additional Reading.

10. Synchronous Serial Communication Interfacing.

Temperature Sensing and Display.

SPI Communication and the LM70.

Connecting the LM70 to the x86 Parallel Printer Port.

Connecting the LM70 to the MediaEngine.

I2C Communication with the Philips Semiconductor SAA1064.

Connecting the SAA1064 to the x86 Parallel Printer Port.

Connecting the SAA1064 to the RPX-CLLF.


Additional Reading.

11. Using Interrupts For Timing.

Linux Timing Sources.

Measuring Interrupt Latency.

Measuring Interrupt Latency on the MZ104.

Measuring Interrupt Latency on the MediaEngine.

Measuring Interrupt Latency on the RPX-CLLF.

Interrupt Latency Test Summary.

Implementing the Race Timer.

Race Timer Interrupt Processing Using Tasklets.

Race Timer Status Display Using System Timers.


Additional Reading.

12. System Integration.

Integration Overview.

Installing the System Integration Applications.

Creating and Testing the Project Trailblazer Database.

Developing the Target and CGI Integration Scripts.

Collecting and Distributing Temperature Data.

Collecting and Distributing Image Data.

Collecting Guest Pass Identification and Allowing Lift Access.


Additional Reading.

13. Final Thoughts.

GUI Development.

Real-time Capabilities.

The Embedded Linux Vendor Offerings.

Project Trailblazer Hardware.


Additional Reading.

Index. 0672322269T03282002


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. You can find the book's source code and scripts at www.embeddedlinuxinterfacing.com.

The following text briefly summarizes each chapter.

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.



Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020