O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Learning Embedded Linux Using the Yocto Project

Book Description

Develop powerful embedded Linux systems with the Yocto Project components

  • A hands-on guide to enhance your ability to develop captivating embedded Linux projects
  • Learn about the compelling features offered by the Yocto Project, such as customization, virtualization, and many more
  • Illustrates concepts such device-emulation and cross-compiling in a pragmatic and lucid way

In Detail

This book offers readers an idea of what embedded Linux software and hardware architecture looks like, cross-compiling, and also presents information about the bootloader and how it can be built for a specific board. This book will go through Linux kernel features and source code, present information on how to build a kernel source, modules, and the Linux root filesystem. You'll be given an overview of the available Yocto Project components, how to set up Yocto Project Eclipse IDE, and how to use tools such as Wic and Swabber that are still under development. It will present the meta-realtime layer and the newly created meta-cgl layer, its purpose, and how it can add value to poky.

What You Will Learn

  • Interact with and customize the bootloader for a board
  • Use the Yocto Project in the embedded Linux development process
  • Familiarize yourself with and customize the bootloader for a board
  • Explore and work with toolchain components such as binutils, gcc, glibc (C libraries), and kernel headers
  • Interact with a root filesystem for your project and also with meta layers
  • Discover more about real-time layer, security, virtualization, CGL, and LSB
  • Identify the Yocto Project components such as Eclipse ADT plug-ins, and Toaster

Downloading the example code for this book You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. Learning Embedded Linux Using the Yocto Project
    1. Table of Contents
    2. Learning Embedded Linux Using the Yocto Project
    3. Credits
    4. About the Author
    5. About the Reviewer
    6. www.PacktPub.com
      1. Support files, eBooks, discount offers, and more
        1. Why subscribe?
        2. Free access for Packt account holders
    7. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Errata
        2. Piracy
        3. Questions
    8. 1. Introduction
      1. Advantages of Linux and open source systems
      2. Embedded systems
        1. General description
        2. Examples
      3. Introducing GNU/Linux
      4. Introduction to the Yocto Project
        1. Buildroot
        2. OpenEmbedded
      5. Summary
    9. 2. Cross-compiling
      1. Introducing toolchains
      2. Components of toolchains
      3. Delving into C libraries
      4. Working with toolchains
        1. Advice on robust programming
        2. Generating the toolchain
      5. The Yocto Project reference
      6. Summary
    10. 3. Bootloaders
      1. The role of the bootloader
      2. Comparing various bootloaders
      3. Delving into the bootloader cycle
      4. The U-Boot bootloader
        1. Booting the U-Boot options
        2. Porting U-Boot
      5. The Yocto Project
      6. Summary
    11. 4. Linux Kernel
      1. The role of the Linux kernel
      2. Delving into the features of the Linux kernel
        1. Memory mapping and management
          1. Page cache and page writeback
          2. The process address space
        2. Process management
        3. Process scheduling
        4. System calls
        5. The virtual file system
      3. Interrupts
        1. Bottom halves
        2. Methods to perform kernel synchronization
      4. Timers
      5. Linux kernel interaction
        1. The development process
        2. Kernel porting
        3. Community interaction
      6. Kernel sources
        1. Configuring kernel
        2. Compiling and installing the kernel
        3. Cross-compiling the Linux kernel
      7. Devices and modules
      8. Debugging a kernel
      9. The Yocto Project reference
      10. Summary
    12. 5. The Linux Root Filesystem
      1. Interacting with the root filesystem
        1. Delving into the filesystem
        2. Device drivers
        3. Filesystem options
      2. Understanding BusyBox
      3. Minimal root filesystem
      4. The Yocto Project
      5. Summary
    13. 6. Components of the Yocto Project
      1. Poky
      2. Eclipse ADT plug-ins
      3. Hob and Toaster
      4. Autobuilder
      5. Lava
      6. Wic
      7. Summary
    14. 7. ADT Eclipse Plug-ins
      1. The Application Development Toolkit
        1. Setting up the environment
      2. Eclipse IDE
        1. QEMU emulator
        2. Debugging
        3. Profiling and tracing
        4. The Yocto Project bitbake commander
      3. Summary
    15. 8. Hob, Toaster, and Autobuilder
      1. Hob
      2. Toaster
      3. Autobuilder
      4. Summary
    16. 9. Wic and Other Tools
      1. Swabber
      2. Wic
      3. LAVA
      4. Summary
    17. 10. Real-time
      1. Understanding GPOS and RTOS
      2. PREEMPT_RT
        1. Applying the PREEMPT_RT patch
        2. The Yocto Project -rt kernel
        3. Disadvantages of the PREEMPT_RT patches
      3. Linux real-time applications
      4. Benchmarking
      5. Meta-realtime
      6. Summary
    18. 11. Security
      1. Security in Linux
      2. SELinux
      3. Grsecurity
      4. Security for the Yocto Project
      5. Meta-security and meta-selinux
        1. Meta-security
        2. Meta-selinux
      6. Summary
    19. 12. Virtualization
      1. Linux virtualization
        1. SDN and NFV
        2. NFV
        3. ETSI NFV
        4. SDN
        5. OPNFV
      2. Virtualization support for the Yocto Project
      3. Summary
    20. 13. CGL and LSB
      1. Linux Standard Base
      2. Carrier grade options
        1. Carrier Grade Linux
        2. Automotive Grade Linux
        3. Carrier Grade Virtualization
      3. Specific support for the Yocto Project
      4. Summary
    21. Index