The Yocto Project Reference Manual

Richard Purdie

Linux Foundation

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.

Note

Due to production processes, there could be differences between the Yocto Project documentation bundled in the release tarball and the Yocto Project Reference Manual on the Yocto Project website. For the latest version of this manual, see the manual on the website.
Revision History
Revision 4.0+git 24 November 2010
Released with the Yocto Project 0.9 Release
Revision 1.0 6 April 2011
Released with the Yocto Project 1.0 Release.
Revision 1.0.1 23 May 2011
Released with the Yocto Project 1.0.1 Release.
Revision 1.1 6 October 2011
Released with the Yocto Project 1.1 Release.
Revision 1.2 April 2012
Released with the Yocto Project 1.2 Release.
Revision 1.3 October 2012
Released with the Yocto Project 1.3 Release.
Revision 1.4 Sometime in 2013
Released with the Yocto Project 1.4 Release.

Table of Contents

1. Introduction
1.1. Introduction
1.2. Documentation Overview
1.3. System Requirements
1.3.1. Supported Linux Distributions
1.3.2. Required Packages for the Host Development System
1.4. Obtaining the Yocto Project
1.5. Development Checkouts
2. Using the Yocto Project
2.1. Running a Build
2.1.1. Build Overview
2.1.2. Building an Image Using GPL Components
2.2. Installing and Using the Result
2.3. Debugging Build Failures
2.3.1. Task Failures
2.3.2. Running Specific Tasks
2.3.3. Dependency Graphs
2.3.4. General BitBake Problems
2.3.5. Building with No Dependencies
2.3.6. Variables
2.3.7. Recipe Logging Mechanisms
2.3.8. Other Tips
2.4. Maintaining Build Output Quality
2.4.1. Enabling and Disabling Build History
2.4.2. Understanding What the Build History Contains
3. Technical Details
3.1. Yocto Project Components
3.1.1. BitBake
3.1.2. Metadata (Recipes)
3.1.3. Classes
3.1.4. Configuration
3.2. Shared State Cache
3.2.1. Overall Architecture
3.2.2. Checksums (Signatures)
3.2.3. Shared State
3.2.4. Tips and Tricks
3.3. x32
3.3.1. Support
3.3.2. Future Development and Limitations
3.3.3. Using x32 Right Now
3.4. Licenses
3.4.1. Tracking License Changes
3.4.2. Enabling Commercially Licensed Recipes
4. Migrating to a Newer Yocto Project Release
4.1. Moving to the Yocto Project 1.3 Release
4.1.1. Local Configuration
4.1.2. Recipes
5. Source Directory Structure
5.1. Top level core components
5.1.1. bitbake/
5.1.2. build/
5.1.3. documentation
5.1.4. meta/
5.1.5. meta-yocto/
5.1.6. meta-yocto-bsp/
5.1.7. meta-hob/
5.1.8. meta-skeleton/
5.1.9. scripts/
5.1.10. oe-init-build-env
5.1.11. LICENSE, README, and README.hardware
5.2. The Build Directory - build/
5.2.1. build/pseudodone
5.2.2. build/conf/local.conf
5.2.3. build/conf/bblayers.conf
5.2.4. build/conf/sanity_info
5.2.5. build/downloads/
5.2.6. build/sstate-cache/
5.2.7. build/tmp/
5.2.8. build/tmp/buildstats/
5.2.9. build/tmp/cache/
5.2.10. build/tmp/deploy/
5.2.11. build/tmp/deploy/deb/
5.2.12. build/tmp/deploy/rpm/
5.2.13. build/tmp/deploy/licenses/
5.2.14. build/tmp/deploy/images/
5.2.15. build/tmp/deploy/ipk/
5.2.16. build/tmp/sysroots/
5.2.17. build/tmp/stamps/
5.2.18. build/tmp/log/
5.2.19. build/tmp/pkgdata/
5.2.20. build/tmp/work/
5.3. The Metadata - meta/
5.3.1. meta/classes/
5.3.2. meta/conf/
5.3.3. meta/conf/machine/
5.3.4. meta/conf/distro/
5.3.5. meta/recipes-bsp/
5.3.6. meta/recipes-connectivity/
5.3.7. meta/recipes-core/
5.3.8. meta/recipes-devtools/
5.3.9. meta/recipes-extended/
5.3.10. meta/recipes-gnome/
5.3.11. meta/recipes-graphics/
5.3.12. meta/recipes-kernel/
5.3.13. meta/recipes-multimedia/
5.3.14. meta/recipes-qt/
5.3.15. meta/recipes-rt/
5.3.16. meta/recipes-sato/
5.3.17. meta/recipes-support/
5.3.18. meta/site/
5.3.19. meta/recipes.txt
6. BitBake
6.1. Parsing
6.2. Preferences and Providers
6.3. Dependencies
6.4. The Task List
6.5. Running a Task
6.6. BitBake Command Line
6.7. Fetchers
7. Classes
7.1. The base class - base.bbclass
7.2. Autotooled Packages - autotools.bbclass
7.3. Alternatives - update-alternatives.bbclass
7.4. Initscripts - update-rc.d.bbclass
7.5. Binary config scripts - binconfig.bbclass
7.6. Debian renaming - debian.bbclass
7.7. Pkg-config - pkgconfig.bbclass
7.8. Distribution of sources - src_distribute_local.bbclass
7.9. Perl modules - cpan.bbclass
7.10. Python extensions - distutils.bbclass
7.11. Developer Shell - devshell.bbclass
7.12. Package Groups - packagegroup.bbclass
7.13. Packaging - package*.bbclass
7.14. Building kernels - kernel.bbclass
7.15. Creating images - image.bbclass and rootfs*.bbclass
7.16. Host System sanity checks - sanity.bbclass
7.17. Generated output quality assurance checks - insane.bbclass
7.18. Autotools configuration data cache - siteinfo.bbclass
7.19. Adding Users - useradd.bbclass
7.20. Using External Source - externalsrc.bbclass
7.21. Other Classes
8. Images
9. Reference: Features
9.1. Distro
9.2. Machine
9.3. Images
9.4. Feature Backfilling
10. Variables Glossary
Glossary
11. Variable Context
11.1. Configuration
11.1.1. Distribution (Distro)
11.1.2. Machine
11.1.3. Local
11.2. Recipes
11.2.1. Required
11.2.2. Dependencies
11.2.3. Paths
11.2.4. Extra Build Information
12. FAQ
13. Contributing to the Yocto Project
13.1. Introduction
13.2. Tracking Bugs
13.3. Mailing lists
13.4. Internet Relay Chat (IRC)
13.5. Links
13.6. Contributions