Synopses & Reviews
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
- 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.
Synopsis
This work is an in-depth guide to putting together an embedded system based on the Linux kernal. It features procedures for selecting, configuring, building, and installing a target-specific kernel; creating a complete target root file system; cross-compiling utilities; and more.
Synopsis
Building Embedded Linux Systems has been a stand-by of the embedded market for four years. Linux is a fast-growing segment of the embedded systems market, and this book provides previously undocumented guidelines for making Linux work in an embedded system. Installation, cross-compiling, and debugging are among the topics covered in detail. The new edition, thoroughly updated, includes several chapters on real-time solutions.
About the Author
Yaghmour is the founder and president of Opersys Inc. He now holds a B.Eng. and an M.A.Sc. from the Ecole Polytechnique de Montreal.Jon Masters is a 25-year-old British-born Linux kernel engineer, embedded systems specialist, and author who lives and works in the United States for Red Hat. Jon made UK history by becoming one of the youngest University students the country had ever seen, at the tender age of just 13. Having been through college twice by the time his peers were completing their first time around, and having been published over 100 times in a wide range of technical magazines, journals and books, Jon went on to work for a variety of multinational technology companies. He has worked extensively in the field of Embedded Systems, Enterprise Linux and Scientific instrumentation and has helped design anything and everything from Set Top Boxes to future NMR (MRI) imaging platforms.
When not working on Enterprise Linux software for Red Hat, Jon likes to drink tea on Boston Common and read the collective works of Thomas Paine and other great American Revolutionaries of a bygone age. He dreams of a time when the world was driven not by electrons, but by wooden sailing ships and a universal struggle for the birth of modern nations. He plays the violin, and occasionally sings in choral ensembles, for which he has won several awards. For relaxation, Jon enjoys engaging in a little rock climbing. He lives in Cambridge, Massachusetts, just across the river Charles from historic Boston, and enjoys every minute of it.
Jon has extensive experience in speaking about and training people to use a wide variety of Linux technologies and enjoys actively participating in many Linux User Groups the world over.
Richard Blum has worked for over 18 years for a large U.S. government organization as a network andsystems administrator. During this time he has had plenty of opportunities to work with Microsoft, Novell, and of course, UNIX and Linux servers. He has written applications and utilities using C, C++, Java, C#, Visual Basic, and shell script.
Rich has a Bachelors of Science degree in Electrical Engineering, and a Masters of Science degree in Management, specializing in Management Information Systems, from Purdue University. He is the author of several books, including ""sendmail for Linux"" (2000, Sams publishing), ""Running qmail"" (2000, Sams publishing), ""Postfix"" (2001, Sams Publishing), ""Open Source E-mail Security"" (2001, Sams Publishing), ""C# Network Programming"" (2002, Sybex), ""Network Performance Open Source Toolkit"" (2003, John Wiley and Sons), and ""Professional Assembly Language Programming"" (2005, Wrox).
Table of Contents
Preface; Focus on Self-Sufficiency; Audience for This Book; Scope and Background Information; Organization of the Material; Hardware Used in This Book; Software Versions; Typographical Conventions; Using Code Examples; Contact Information; Safari® Books Online; Acknowledgments for the First Edition; Acknowledgments for the Second Edition; Chapter 1: Introduction; 1.1 Definitions; 1.2 Real Life and Embedded Linux Systems; 1.3 Design and Implementation Methodology; Chapter 2: Basic Concepts; 2.1 Types of Hosts; 2.2 Types of Host/Target Development Setups; 2.3 Types of Host/Target Debug Setups; 2.4 Generic Architecture of an Embedded Linux System; 2.5 System Startup; 2.6 Types of Boot Configurations; 2.7 System Memory Layout; Chapter 3: Hardware Support; 3.1 Processor Architectures; 3.2 Buses and Interfaces; 3.3 I/O; 3.4 Storage; 3.5 General-Purpose Networking; 3.6 Industrial-Grade Networking; 3.7 System Monitoring; Chapter 4: Development Tools; 4.1 A Practical Project Workspace; 4.2 GNU Cross-Platform Development Toolchain; 4.3 C Library Alternatives; 4.4 Java; 4.5 Perl; 4.6 Python; 4.7 Other Programming Languages; 4.8 Eclipse: An Integrated Development Environment; 4.9 Terminal Emulators; Chapter 5: Kernel Considerations; 5.1 Selecting a Kernel; 5.2 Configuring the Kernel; 5.3 Compiling the Kernel; 5.4 Installing the Kernel; 5.5 In the Field; Chapter 6: Root Filesystem Content; 6.1 Basic Root Filesystem Structure; 6.2 Libraries; 6.3 Kernel Modules; 6.4 Kernel Images; 6.5 Device Files; 6.6 Main System Applications; 6.7 Custom Applications; 6.8 System Initialization; Chapter 7: Storage Device Manipulation; 7.1 MTD-Supported Devices; 7.2 Disk Devices; 7.3 To Swap or Not To Swap; Chapter 8: Root Filesystem Setup; 8.1 Filesystem Types for Embedded Devices; 8.2 Writing a Filesystem Image to Flash Using an NFS-Mounted Root Filesystem; 8.3 Placing a Disk Filesystem on a RAM Disk; 8.4 Rootfs and Initramfs; 8.5 Choosing a Filesystem's Type and Layout; 8.6 Handling Software Upgrades; Chapter 9: Setting Up the Bootloader; 9.1 Embedded Bootloaders; 9.2 Server Setup for Network Boot; 9.3 Using the U-Boot Bootloader; Chapter 10: Setting Up Networking Services; 10.1 Network Settings; 10.2 Busybox; 10.3 Dynamic Configuration Through DHCP; 10.4 The Internet Super-Server; 10.5 Remote Administration with SNMP; 10.6 Network Login Through Telnet; 10.7 Secure Communication with SSH; 10.8 Serving Web Content Through HTTP; 10.9 Provisioning; Chapter 11: Debugging Tools; 11.1 Eclipse; 11.2 Debugging Applications with gdb; 11.3 Tracing; 11.4 Performance Analysis; 11.5 Memory Debugging; 11.6 A Word on Hardware Tools; Chapter 12: Introduction to Real-Time Linux; 12.1 What Is Real-Time Processing?; 12.2 Should Your Linux Be Real-Time?; 12.3 Common Real-Time Kernel Requirements; 12.4 Some Typical Users of Real-Time Computing Technology; 12.5 The Linux Paths to Real-Time; Chapter 13: The Xenomai Real-Time System; 13.1 Porting Traditional RTOS Applications to Linux; 13.2 The Xenomai Architecture; 13.3 How Xenomai Works; 13.4 The Real-Time Driver Model; 13.5 Xenomai, Chameleon by Design; Chapter 14: The RT Patch; 14.1 Interrupts As Threads; 14.2 Priority Inheritance; 14.3 Configuring the Kernel with the RT Patch; 14.4 High-Resolution Timers; 14.5 The Latency Tracer; 14.6 Conclusion; Colophon;