Book description
Over 79 hands-on recipes for professional embedded Linux developers to optimize and boost their Yocto Project know-how
About This Book- Optimize your Yocto setup to speed up development and debug build issues
- Use what is quickly becoming the standard embedded Linux product builder framework—the Yocto Project
- Recipe-based implementation of best practices to optimize your Linux system
If you are an embedded Linux developer with the basic knowledge of Yocto Project, this book is an ideal way to broaden your knowledge with recipes for embedded development.
What You Will Learn- Optimize your Yocto Project setup to speed up development and debug build issues
- Use Docker containers to build Yocto Project-based systems
- Take advantage of the user-friendly Toaster web interface to the Yocto Project build system
- Build and debug the Linux kernel and its device trees
- Customize your root filesystem with already-supported and new Yocto packages
- Optimize your production systems by reducing the size of both the Linux kernel and root filesystems
- Explore the mechanisms to increase the root filesystem security
- Understand the open source licensing requirements and how to comply with them when cohabiting with proprietary programs
- Create recipes, and build and run applications in C, C++, Python, Node.js, and Java
The Yocto Project has become the de facto distribution build framework for reliable and robust embedded systems with a reduced time to market.
You'll get started by working on a build system where you set up Yocto, create a build directory, and learn how to debug it. Then, you'll explore everything about the BSP layer, from creating a custom layer to debugging device tree issues. In addition to this, you'll learn how to add a new software layer, packages, data, scripts, and configuration files to your system. You will then cover topics based on application development, such as using the Software Development Kit and how to use the Yocto project in various development environments. Toward the end, you will learn how to debug, trace, and profile a running system. This second edition has been updated to include new content based on the latest Yocto release.
Style and approachThis recipe-based book will guide you through all the development stages of an embedded Linux product design using the Yocto Project.
Table of contents
- Preface
-
The Build System
- Introduction
- Setting up the host system
- Installing Poky
- Creating a build directory
- Building your first image
- Explaining the NXP Yocto ecosystem
- Installing support for NXP hardware
- Building Wandboard images
- Using the Toaster web interface
- Running a Toaster Docker container
- Configuring network booting for a development setup
- Using Docker as a Yocto build system container
- Sharing downloads
- Sharing the shared state cache
- Setting up a package feed
- Using build history
- Working with build statistics
- Debugging the build system
-
The BSP Layer
- Introduction
- Creating a custom BSP layer
- Adding a custom kernel and bootloader
- Building the U-Boot bootloader
- Describing Linux's build system
- Configuring the Linux kernel
- Building the Linux kernel
- Building external kernel modules
- Debugging the Linux kernel and modules
- Debugging the Linux kernel booting process
- Using the kernel function tracing system
- Managing the device tree
- Debugging device tree issues
-
The Software Layer
- Introduction
- Exploring an image's contents
- Adding a new software layer
- Selecting a specific package version and provider
- Adding supported packages
- Adding new packages
- Adding data, scripts, or configuration files
- Managing users and groups
- Using the sysvinit initialization manager
- Using the systemd initialization manager
- Installing package installation scripts
- Reducing the Linux kernel image size
- Reducing the root filesystem size
- Memory-based root filesystems
- Securing the root filesystem
- Releasing software
- Analyzing your system for compliance
- Working with open source and proprietary code
-
Application Development
- Introduction
- Introducing toolchains
- Preparing an SDK
- Using the extensible SDK
- Using the Eclipse IDE
- Developing GTK+ applications
- Using the Qt Creator IDE
- Developing Qt applications
- Describing workflows for application development
- Working with GNU make
- Working with the GNU build system
- Working with the CMake build system
- Working with the SCons builder
- Developing with libraries
- Working with the Linux framebuffer
- Using the X Windows system
- Using Wayland
- Adding a web browser application
- Adding Python applications
- Integrating the Open Java Development Kit
- Integrating Java applications
- Integrating Node.js applications
- Running Docker application containers
-
Debugging, Tracing, and Profiling
- Introduction
- Analyzing core dumps
- Native GDB debugging
- Cross GDB debugging
- Using strace for application debugging
- Using the kernel's performance counters
- Using static kernel tracing
- Using dynamic kernel tracing
- Using dynamic kernel events
- Exploring Yocto's tracing and profiling tools
- Tracing and profiling with perf
- Using SystemTap
- Using LTTng
- Using blktrace
- Other Books You May Enjoy
Product information
- Title: Embedded Linux Development Using Yocto Project Cookbook - Second Edition
- Author(s):
- Release date: January 2018
- Publisher(s): Packt Publishing
- ISBN: 9781788399210
You might also like
book
Embedded Linux Development Using Yocto Project - Third Edition
Elevate your Linux-powered system with Yocto Projects, enhancing its stability and resilience efficiently and economically — …
book
Embedded Linux Projects Using Yocto Project Cookbook
Over 70 hands-on recipes for professional embedded Linux developers to optimize and boost their Yocto know-how …
book
Mastering Embedded Linux Programming - Second Edition
Master the techniques needed to build great, efficient embedded devices on Linux About This Book Discover …
book
Mastering Embedded Linux Programming
Harness the power of Linux to create versatile and robust embedded solutions About This Book Create …