Yocto Project Development Tasks Manual
Table of Contents
- 1 The Yocto Project Development Tasks Manual
- 2 Setting Up to Use the Yocto Project
- 3 Understanding and Creating Layers
- 3.1 Creating Your Own Layer
- 3.2 Following Best Practices When Creating Layers
- 3.3 Making Sure Your Layer is Compatible With Yocto Project
- 3.4 Enabling Your Layer
- 3.5 Appending Other Layers Metadata With Your Layer
- 3.6 Prioritizing Your Layer
- 3.7 Managing Layers
- 3.8 Creating a General Layer Using the
bitbake-layersScript - 3.9 Adding a Layer Using the
bitbake-layersScript - 3.10 Saving and restoring the layers setup
- 4 Customizing Images
- 5 Writing a New Recipe
- 5.1 Overview
- 5.2 Locate or Automatically Create a Base Recipe
- 5.3 Storing and Naming the Recipe
- 5.4 Running a Build on the Recipe
- 5.5 Fetching Code
- 5.6 Unpacking Code
- 5.7 Patching Code
- 5.8 Licensing
- 5.9 Dependencies
- 5.10 Configuring the Recipe
- 5.11 Using Headers to Interface with Devices
- 5.12 Compilation
- 5.13 Installing
- 5.14 Enabling System Services
- 5.15 Packaging
- 5.16 Sharing Files Between Recipes
- 5.17 Using Virtual Providers
- 5.18 Properly Versioning Pre-Release Recipes
- 5.19 Post-Installation Scripts
- 5.20 Testing
- 5.21 Examples
- 5.22 Following Recipe Style Guidelines
- 5.23 Recipe Syntax
- 6 Adding a New Machine
- 7 Upgrading Recipes
- 8 Finding Temporary Source Code
- 9 Creating New Configuration Fragments In Your Build
- 10 Setting Up the Poky Reference Distro Manually
- 11 Using Quilt in Your Workflow
- 12 Using a Development Shell
- 13 Using a Python Development Shell
- 14 Building
- 14.1 Building a Simple Image
- 14.2 Building Images for Multiple Targets Using Multiple Configurations
- 14.3 Building an Initial RAM Filesystem (Initramfs) Image
- 14.4 Building a Tiny System
- 14.5 Building Images for More than One Machine
- 14.6 Building Software from an External Source
- 14.7 Replicating a Build Offline
- 15 Building Images for Multiple Targets With Multiconfig
- 16 Speeding Up a Build
- 17 Limiting the Host Resources Usage
- 18 Working With Libraries
- 19 Working with Pre-Built Libraries
- 20 Using the
devtoolcommand-line tool- 20.1 Use
devtool addto Add an Application - 20.2 Use
devtool modifyto Modify the Source of an Existing Component - 20.3
devtool ide-sdkconfigures IDEs and bootstraps SDKs - 20.4 Use
devtool upgradeto Create a Version of the Recipe that Supports a Newer Version of the Software - 20.5 A Closer Look at
devtool add - 20.6 Working With Recipes
- 20.7 Restoring the Target Device to its Original State
- 20.1 Use
- 21 Using x32 psABI
- 22 Enabling GObject Introspection Support
- 23 Optionally Using an External Toolchain
- 24 Creating Partitioned Images Using Wic
- 25 Flashing Images Using bmaptool
- 26 Making Images More Secure
- 27 Creating Your Own Distribution
- 28 Creating a Custom Template Configuration Directory
- 29 Conserving Disk Space
- 30 Working with Packages
- 30.1 Excluding Packages from an Image
- 30.2 Incrementing a Package Version
- 30.3 Handling Optional Module Packaging
- 30.4 Using Runtime Package Management
- 30.5 Generating and Using Signed Packages
- 30.6 Testing Packages With ptest
- 30.7 Creating Node Package Manager (NPM) Packages
- 30.8 Adding custom metadata to packages
- 31 Efficiently Fetching Source Files During a Build
- 32 Selecting an Initialization Manager
- 33 Selecting a Device Manager
- 34 Using an External SCM
- 35 Creating a Read-Only Root Filesystem
- 36 Maintaining Build Output Quality
- 37 Debugging Tools and Techniques
- 37.1 Viewing Logs from Failed Tasks
- 37.2 Viewing Variable Values
- 37.3 Viewing Package Information with
oe-pkgdata-util - 37.4 Viewing Dependencies Between Recipes and Tasks
- 37.5 Viewing Task Variable Dependencies
- 37.6 Debugging signature construction and unexpected task executions
- 37.7 Viewing Metadata Used to Create the Input Signature of a Shared State Task
- 37.8 Invalidating Shared State to Force a Task to Run
- 37.9 Running Specific Tasks
- 37.10 General BitBake Problems
- 37.11 Building with No Dependencies
- 37.12 Recipe Logging Mechanisms
- 37.13 Debugging Parallel Make Races
- 37.14 Debugging With the GNU Project Debugger (GDB) Remotely
- 37.15 Debugging with the GNU Project Debugger (GDB) on the Target
- 37.16 Enabling Minidebuginfo
- 37.17 Other Debugging Tips
- 38 Working With Licenses
- 39 Dealing with Vulnerability Reports
- 40 Checking for Vulnerabilities
- 41 Creating a Software Bill of Materials
- 42 Using the Error Reporting Tool
- 43 Using Wayland and Weston
- 44 Using the Quick EMUlator (QEMU)
- 44.1 Overview
- 44.2 Running QEMU
- 44.3 Switching Between Consoles
- 44.4 Removing the Splash Screen
- 44.5 Disabling the Cursor Grab
- 44.6 Running Under a Network File System (NFS) Server
- 44.7 QEMU CPU Compatibility Under KVM
- 44.8 QEMU Performance
- 44.9 QEMU Command-Line Syntax
- 44.10
runqemuCommand-Line Options
- 45 Locking and Unlocking Recipes Using
bblock - 46 Setting up a Hash Equivalence Server
The Yocto Project ®
Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales as published by Creative Commons.
To report any inaccuracies or problems with this (or any other Yocto Project)
manual, or to send additions or changes, please send email/patches to the Yocto
Project documentation mailing list at docs@lists.yoctoproject.org or
log into the Libera Chat #yocto channel.