- 我的征尘是星辰大海。。。
- The dirt and dust from my pilgrimage forms oceans of stars.
- What is purpose of all this?
- chronicles:
- These are lists of all files in this web hosting:
- Here is the shortcuts of most updated weblogs
- Here are some resources I am hosting here.
- You may send me whatever comment you like. However, I should warn you that your communication with me might be published without your notice, even though your privacy would be protected by using all alias instead of your true identity. Here we GO my email: nickhuang99 (at) hotmail (dot) com
- Building Embedded Linux Systems
- Book description
- Publisher resources
- Table of contents
- Product information
我的征尘是星辰大海。。。
The dirt and dust from my pilgrimage forms oceans of stars.
What is purpose of all this?
chronicles:
- when my heart is young: Air-Talk
- when my heart is even younger: Human-Talk
- when my brain is still young:DownloadList
- when my mind is still young: OldPortal
- my little git collections of various open source projects: MyProjects
- when my idea is naive: AmazonS3Backup (Probably you should never need to use this as it is just an alias of current AWS S3 WebHosting. The reason it exists is because it was created before moving web hosting to S3 long time ago.)
These are lists of all files in this web hosting:
- All Files in Tree Style(generated by program) (This is recommanded way as it gives you ability to browse directory structure.)
- AllFileList(Now it is a doubly-link list of files, with size of 10000 files in one page) (This is only useful when you know the file name starting alphebetics, still no index for pages, maybe next project?)
- WARNING!DO NOT CLICK!AllFileVector(extremely large file. similar as AllFileList except using vector) ( unless you want to wait for very long to download an extremely large file which contains full file list.)
Here is the shortcuts of most updated weblogs
Here are some resources I am hosting here.
- I am using my own version of «wget» with these options: -nd -p —clobber —convert-links -r
- This is my c++ reference mirror which I use my own little version of wget downloaded(pirated) from official web size: www.cplusplus.com/reference. One big «good» excuse of doing so is because my static web hosting must be very cheap and fast so that I can use it myself as the official website sometimes is quite slow. (bull*it)
- This is the Linux Man Page which I pirated from http://man7.org/linux/man-pages/
- This is the w3c school which I pirated from https://www.w3schools.com/
- For some reason I download a snapshot of Chinese national defense equipment bidding web site:全军武器装备采购信息网这个是新的入口,我不敢想象的是居然证书被报警,不知道是怎么回事?
- This is the most astonishingly complete wiki of my most favorite game—HOMM3. I feel very reluctant to publish my clone because this might be infringement of the owner of this website. However, I love this game so much and want to make a mirror of this wiki just in case the original website might be closed some day.
You may send me whatever comment you like. However, I should warn you that your communication with me might be published without your notice, even though your privacy would be protected by using all alias instead of your true identity. Here we GO my email: nickhuang99 (at) hotmail (dot) com
Donate by Paypal?
Building Embedded Linux Systems
Read it now on the O’Reilly learning platform with a 10-day free trial.
O’Reilly members get unlimited access to books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.
Book description
Linux® is being adopted by an increasing number of embedded systems developers, who have been won over by its sophisticated scheduling and networking, its cost-free license, its open development model, and the support offered by rich and powerful programming tools. While there is a great deal of hype surrounding the use of Linux in embedded systems, there is not a lot of practical information. Building Embedded Linux Systems is the first in-depth, hard-core guide to putting together an embedded system based on the Linux kernel. 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
Publisher resources
Table of contents
- Dedication
- Preface
- Audience of This Book
- Scope and Background Information
- Organization of the Material
- Hardware Used in This Book
- Software Versions
- Book Web Site
- Typographical Conventions
- Contact Information
- Acknowledgments
- 1.1. Definitions
- 1.1.1. What Is Linux?
- 1.1.2. What Is Embedded Linux?
- 1.1.3. What Is Real-Time Linux?
- 1.2.1. Types of Embedded Linux Systems
- 1.2.1.1. Size
- 1.2.1.2. Time constraints
- 1.2.1.3. Networkability
- 1.2.1.4. User interaction
- 1.2.2.1. Accelerator control
- 1.2.2.2. Computer-aided training system
- 1.2.2.3. Ericsson “blip”
- 1.2.2.4. SCADA protocol converter
- 1.2.2.5. Sharp Zaurus
- 1.2.2.6. Space vehicle control
- 1.2.4.1. Quality and reliability of code
- 1.2.4.2. Availability of code
- 1.2.4.3. Hardware support
- 1.2.4.4. Communication protocol and software standards
- 1.2.4.5. Available tools
- 1.2.4.6. Community support
- 1.2.4.7. Licensing
- 1.2.4.8. Vendor independence
- 1.2.4.9. Cost
- 1.2.5.1. Free software and open source community
- 1.2.5.2. Industry
- 1.2.5.3. Organizations
- 1.2.5.4. Resources
- 1.2.6.1. Textbook GPL
- 1.2.6.2. Pending issues
- 1.2.6.3. RTLinux patent
- 1.2.7.1. To use or not to use
- 1.2.7.2. How to choose a distribution
- 1.2.7.3. What to avoid doing with a distribution
- 1.3.1. General Architecture
- 1.3.2. Requirements of Each Component
- 1.3.2.1. Data acquisition module
- 1.3.2.2. Control module
- 1.3.2.3. System management module
- 1.3.2.4. User interface modules
- 1.4.1. Creating a Target Linux System
- 1.4.2. Setting Up and Using Development Tools
- 1.4.3. Developing for the Embedded
- 1.4.4. Networking
- 2.1. Types of Hosts
- 2.1.1. Linux Workstation
- 2.1.2. Unix Workstation
- 2.1.3. Windows (2000, NT, 98, etc.) Workstation
- 2.2.1. Linked Setup
- 2.2.2. Removable Storage Setup
- 2.2.3. Standalone Setup
- 2.6.1. Solid State Storage Media
- 2.6.2. Disk
- 2.6.3. Network
- 3.1. Processor Architectures
- 3.1.1. x86
- 3.1.2. ARM
- 3.1.3. IBM/Motorola PowerPC
- 3.1.4. MIPS
- 3.1.5. Hitachi SuperH
- 3.1.6. Motorola 68000
- 3.2.1. ISA
- 3.2.2. PCI
- 3.2.3. PCMCIA
- 3.2.4. PC/104
- 3.2.5. VME
- 3.2.6. CompactPCI
- 3.2.7. Parallel Port
- 3.2.8. SCSI
- 3.2.9. USB
- 3.2.10. IEEE1394 (FireWire)
- 3.2.11. GPIB
- 3.2.12. I2C
- 3.3.1. Serial Port
- 3.3.2. Parallel Port
- 3.3.3. Modem
- 3.3.4. Data Acquisition
- 3.3.5. Process Control
- 3.3.6. Home Automation
- 3.3.7. Keyboard
- 3.3.8. Mouse
- 3.3.9. Display
- 3.3.10. Sound
- 3.3.11. Printer
- 3.4.1. Memory Technology Devices
- 3.4.2. ATA-ATAPI (IDE)
- 3.4.3. SCSI
- 3.5.1. Ethernet
- 3.5.2. IrDA
- 3.5.3. IEEE 802.11 (Wireless)
- 3.5.4. Bluetooth
- 3.6.1. CAN
- 3.6.2. ARCnet
- 3.6.3. Modbus
- 3.6.4. A Word on the Other Industrial Networks
- 4.1. Using a Practical Project Workspace
- 4.2. GNU Cross-Platform Development Toolchain
- 4.2.1. GNU Toolchain Basics
- 4.2.1.1. Component versions
- 4.2.1.2. Build requirements
- 4.2.1.3. Build overview
- 4.2.1.4. Workspace setup
- 4.2.1.5. Preparing the build-tools directory
- 4.2.1.6. Resources
- 4.2.1.7. A word on prebuilt cross-platform toolchains
- 4.3.1. uClibc
- 4.3.1.1. Library setup
- 4.3.1.2. Usage
- 4.3.2.1. Library setup
- 4.3.2.2. Usage
- 4.4.1. The Blackdown Project
- 4.4.2. Open Source Virtual Machines
- 4.4.3. The GNU Java Compiler
- 4.5.1. Microperl
- 4.5.2. Miniperl
- 4.10.1. Accessing the Serial Port
- 4.10.2. Minicom
- 4.10.3. UUCP cu
- 4.10.4. C-Kermit
- 5.1. Selecting a Kernel
- 5.2. Configuring the Kernel
- 5.2.1. Configuration Options
- 5.2.2. Configuration Methods
- 5.2.3. Managing Multiple Configurations
- 5.2.4. Using the EXTRAVERSION Variable
- 5.3.1. Building Dependencies
- 5.3.2. Building the Kernel
- 5.3.3. Building the Modules
- 5.4.1. Managing Multiple Kernel Images
- 5.4.2. Installing Kernel Modules
- 5.5.1. Dealing with Kernel Failure
- 6.1. Basic Root Filesystem Structure
- 6.2. Libraries
- 6.2.1. glibc
- 6.2.2. uClibc
- 6.6.1. Complete Standard Applications
- 6.6.2. BusyBox
- 6.6.2.1. Setup
- 6.6.2.2. Usage
- 6.6.3.1. Setup
- 6.6.3.2. Usage
- 6.6.4.1. Setup
- 6.6.4.2. Usage
- 6.8.1. Standard System V init
- 6.8.2. BusyBox init
- 6.8.3. Minit
- 7.1. MTD-Supported Devices
- 7.1.1. MTD Usage Basics
- 7.1.1.1. MTD /dev entries
- 7.1.1.2. Configuring the kernel
- 7.1.1.3. The MTD utilities
- 7.1.1.4. Installing the MTD utilities for the host
- 7.1.1.5. Installing the MTD utilities for the target
- 7.1.2.1. Kernel configuration
- 7.1.2.2. Partitioning
- 7.1.2.3. Required /dev entries
- 7.1.2.4. Erasing
- 7.1.2.5. Writing and reading
- 7.1.3.1. Preliminary manipulations
- 7.1.3.2. Kernel configuration
- 7.1.3.3. Required /dev entries
- 7.1.3.4. Erasing
- 7.1.3.5. Installing bootloader image
- 7.1.3.6. NFTL formatting
- 7.1.3.7. Partitioning
- 7.2.1. CompactFlash
- 7.2.2. Floppy Disk
- 7.2.3. Hard Disk
- 8.1. Selecting a Filesystem
- 8.1.1. Characterizing Filesystems
- 8.1.2. Guidelines for Filesystem Selection
- 8.1.3. Filesystems for Disk Devices
- 8.8.1. The rsync Utility
- 8.8.2. Package Management Tools
- 8.8.3. Ad Hoc Scripts
- 8.8.3.1. Installing the patch utility
- 8.8.3.2. Scripts for performing updates
- 9.1. Bootloaders Galore
- 9.1.1. LILO
- 9.1.2. GRUB
- 9.1.3. ROLO
- 9.1.4. loadlin
- 9.1.5. EtherBoot
- 9.1.6. LinuxBIOS
- 9.1.7. Compaq’s bootldr
- 9.1.8. blob
- 9.1.9. PMON
- 9.1.10. sh-Boot
- 9.1.11. U-Boot
- 9.1.12. RedBoot
- 9.2.1. Setting Up the DHCP Daemon
- 9.2.2. Setting Up the TFTP Daemon
- 9.2.3. Mounting a Root Filesystem on an NFS Server
- 9.4.1. Configuring and Building GRUB for the DOC
- 9.4.2. Installing GRUB on a DOC
- 9.4.3. Configuring GRUB to Boot from a DOC
- 9.5.1. Compiling and Installing
- 9.5.2. Booting with U-Boot
- 9.5.3. Using U-Boot’s Environment Variables
- 9.5.4. Creating Boot Scripts
- 9.5.5. Preparing Binary Images
- 9.5.6. Booting Using BOOTP/DHCP, TFTP, and NFS
- 9.5.7. Downloading Binary Images to Flash
- 9.5.8. Booting Using a RAM Disk
- 9.5.9. Booting from CompactFlash Devices
- 9.5.10. Updating U-Boot
- 10.1. The Internet Super-Server
- 10.1.1. inetd
- 10.1.2. xinetd
- 10.3.1. netkit-telnetd
- 10.3.2. utelnetd
- 10.4.1. OpenSSH
- 10.4.2. A Word on Other SSH Implementations
- 10.5.1. Boa
- 10.5.2. thttpd
- 10.5.3. A Word on Apache
- 11.1. Debugging Applications with gdb
- 11.1.1. Building and Installing gdb Components
- 11.1.2. Using the gdb Components to Debug Target Applications
- 11.1.3. Interfacing with a Graphical Frontend
- 11.2.1. Single Process Tracing
- 11.2.2. System Tracing
- 11.2.2.1. Preliminary manipulations
- 11.2.2.2. Patching the kernel
- 11.2.2.3. Building the trace daemon
- 11.2.2.4. Installing the visualization tool
- 11.2.2.5. Tracing the target and visualizing its behavior
- 11.3.1. Process Profiling
- 11.3.2. Code Coverage
- 11.3.3. System Profiling
- 11.3.3.1. Basic /proc figures
- 11.3.3.2. Complete profile using LTT
- 11.4.1. Electric Fence
- 11.4.2. MEMWATCH
- A.1. Project Identification
- A.2. Hardware Summary
- A.3. Development Tools
- A.4. Kernel
- A.5. Root filesystem
- A.6. Storage Device Organization
- A.7. Bootloader Configuration and Use
- A.8. Networking services
- A.9. Custom Project Software
- A.10. Debug Notes
- A.11. Additional Notes
- A.12. Embedded Linux Systems Worksheet
- B.1. Online
- B.2. Books
- B.3. Publications
- B.4. Organizations
- B.5. Linux and Open-Source-Oriented Hardware Projects
- C.1. Exclusion of User-Space Applications from Kernel’s GPL
- C.2. Notices on Binary Kernel Modules
- C.2.1. First Posting by Linus in Kernel Interface Thread
- C.2.2. Second Posting by Linus in Kernel Interface Thread
- C.2.3. Post by Alan Cox in Kernel Hooks Thread
- C.2.4. First Post by Linus in Security Hooks License Thread
- C.2.5. Second Post by Linus in Security Hooks License Thread
Product information
- Title: Building Embedded Linux Systems
- Author(s): Karim Yaghmour
- Release date: April 2003
- Publisher(s): O’Reilly Media, Inc.
- ISBN: 9780596002220
- 7.1.1. MTD Usage Basics
- 4.2.1. GNU Toolchain Basics