You are previewing Learning Embedded Linux Using the Yocto Project.
O'Reilly logo
Learning Embedded Linux Using the Yocto Project

Book Description

Develop powerful embedded Linux systems with the Yocto Project components

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