Yocto Project Reference Manual
Table of Contents
- 1 System Requirements
 - 2 Yocto Project Terms
 - 3 Yocto Project Releases and the Stable Release Process
 - 4 Migrating to a Newer Yocto Project Release
- 4.1 General Migration Considerations
 - 4.2 Moving to the Yocto Project 1.3 Release
 - 4.3 Moving to the Yocto Project 1.4 Release
 - 4.4 Moving to the Yocto Project 1.5 Release
- 4.4.1 Host Dependency Changes
 - 4.4.2 
atom-pcBoard Support Package (BSP) - 4.4.3 BitBake
 - 4.4.4 QA Warnings
 - 4.4.5 Directory Layout Changes
 - 4.4.6 Shortened Git 
SRCREVValues - 4.4.7 
IMAGE_FEATURES - 4.4.8 
/run - 4.4.9 Removal of Package Manager Database Within Image Recipes
 - 4.4.10 Images Now Rebuild Only on Changes Instead of Every Time
 - 4.4.11 Task Recipes
 - 4.4.12 BusyBox
 - 4.4.13 Automated Image Testing
 - 4.4.14 Build History
 - 4.4.15 
udev - 4.4.16 Removed and Renamed Recipes
 - 4.4.17 Other Changes
 
 - 4.5 Moving to the Yocto Project 1.6 Release
- 4.5.1 
archiverClass - 4.5.2 Packaging Changes
 - 4.5.3 BitBake
 - 4.5.4 Changes to Variables
 - 4.5.5 Package Test (ptest)
 - 4.5.6 Build Changes
 - 4.5.7 
qemu-native - 4.5.8 
core-image-basic - 4.5.9 Licensing
 - 4.5.10 
CFLAGSOptions - 4.5.11 Custom Image Output Types
 - 4.5.12 Tasks
 - 4.5.13 
update-alternativeProvider - 4.5.14 
virtclassOverrides - 4.5.15 Removed and Renamed Recipes
 - 4.5.16 Removed Classes
 - 4.5.17 Reference Board Support Packages (BSPs)
 
 - 4.5.1 
 - 4.6 Moving to the Yocto Project 1.7 Release
- 4.6.1 Changes to Setting QEMU 
PACKAGECONFIGOptions inlocal.conf - 4.6.2 Minimum Git version
 - 4.6.3 Autotools Class Changes
 - 4.6.4 Binary Configuration Scripts Disabled
 - 4.6.5 
eglibc 2.19Replaced withglibc 2.20 - 4.6.6 Kernel Module Autoloading
 - 4.6.7 QA Check Changes
 - 4.6.8 Removed Recipes
 - 4.6.9 Miscellaneous Changes
 
 - 4.6.1 Changes to Setting QEMU 
 - 4.7 Moving to the Yocto Project 1.8 Release
 - 4.8 Moving to the Yocto Project 2.0 Release
- 4.8.1 GCC 5
 - 4.8.2 Gstreamer 0.10 Removed
 - 4.8.3 Removed Recipes
 - 4.8.4 BitBake datastore improvements
 - 4.8.5 Shell Message Function Changes
 - 4.8.6 Extra Development/Debug Package Cleanup
 - 4.8.7 Recipe Maintenance Tracking Data Moved to OE-Core
 - 4.8.8 Automatic Stale Sysroot File Cleanup
 - 4.8.9 
linux-yoctoKernel Metadata Repository Now Split from Source - 4.8.10 Additional QA checks
 - 4.8.11 Miscellaneous Changes
 
 - 4.9 Moving to the Yocto Project 2.1 Release
- 4.9.1 Variable Expansion in Python Functions
 - 4.9.2 Overrides Must Now be Lower-Case
 - 4.9.3 Expand Parameter to 
getVar()andgetVarFlag()is Now Mandatory - 4.9.4 Makefile Environment Changes
 - 4.9.5 
libexecdirReverted to${prefix}/libexec - 4.9.6 
ac_cv_sizeof_off_tis No Longer Cached in Site Files - 4.9.7 Image Generation is Now Split Out from Filesystem Generation
 - 4.9.8 Removed Recipes
 - 4.9.9 Class Changes
 - 4.9.10 Build System User Interface Changes
 - 4.9.11 ADT Removed
 - 4.9.12 Poky Reference Distribution Changes
 - 4.9.13 Packaging Changes
 - 4.9.14 Tuning File Changes
 - 4.9.15 Supporting GObject Introspection
 - 4.9.16 Miscellaneous Changes
 
 - 4.10 Moving to the Yocto Project 2.2 Release
- 4.10.1 Minimum Kernel Version
 - 4.10.2 Staging Directories in Sysroot Has Been Simplified
 - 4.10.3 Removal of Old Images and Other Files in 
tmp/deployNow Enabled - 4.10.4 Python Changes
 - 4.10.5 uClibc Replaced by musl
 - 4.10.6 
${B}No Longer Default Working Directory for Tasks - 4.10.7 
runqemuPorted to Python - 4.10.8 Default Linker Hash Style Changed
 - 4.10.9 
KERNEL_IMAGE_BASE_NAMEno Longer UsesKERNEL_IMAGETYPE - 4.10.10 BitBake Changes
 - 4.10.11 Swabber has Been Removed
 - 4.10.12 Removed Recipes
 - 4.10.13 Removed Classes
 - 4.10.14 Minor Packaging Changes
 - 4.10.15 Miscellaneous Changes
 
 - 4.11 Moving to the Yocto Project 2.3 Release
- 4.11.1 Recipe-specific Sysroots
 - 4.11.2 
PATHVariable - 4.11.3 Changes to Scripts
 - 4.11.4 Changes to Functions
 - 4.11.5 BitBake Changes
 - 4.11.6 Absolute Symbolic Links
 - 4.11.7 GPLv2 Versions of GPLv3 Recipes Moved
 - 4.11.8 Package Management Changes
 - 4.11.9 Removed Recipes
 - 4.11.10 Wic Changes
 - 4.11.11 QA Changes
 - 4.11.12 Miscellaneous Changes
 
 - 4.12 Moving to the Yocto Project 2.4 Release
 - 4.13 Moving to the Yocto Project 2.5 Release
 - 4.14 Moving to the Yocto Project 2.6 Release
- 4.14.1 GCC 8.2 is Now Used by Default
 - 4.14.2 Removed Recipes
 - 4.14.3 Packaging Changes
 - 4.14.4 XOrg Protocol dependencies
 - 4.14.5 
distutilsanddistutils3Now Prevent Fetching Dependencies During thedo_configureTask - 4.14.6 
linux-yoctoConfiguration Audit Issues Now Correctly Reported - 4.14.7 Image/Kernel Artifact Naming Changes
 - 4.14.8 
SERIAL_CONSOLEDeprecated - 4.14.9 Configure Script Reports Unknown Options as Errors
 - 4.14.10 Override Changes
 - 4.14.11 
systemdConfiguration is Now Split Intosystemd-conf - 4.14.12 Automatic Testing Changes
 - 4.14.13 OpenSSL Changes
 - 4.14.14 BitBake Changes
 - 4.14.15 Security Changes
 - 4.14.16 Post Installation Changes
 - 4.14.17 Python 3 Profile-Guided Optimization
 - 4.14.18 Miscellaneous Changes
 
 - 4.15 Moving to the Yocto Project 2.7 Release
- 4.15.1 BitBake Changes
 - 4.15.2 Eclipse Support Removed
 - 4.15.3 
qemu-nativeSplits the System and User-Mode Parts - 4.15.4 The 
upstream-tracking.incFile Has Been Removed - 4.15.5 The 
DISTRO_FEATURES_LIBCVariable Has Been Removed - 4.15.6 License Value Corrections
 - 4.15.7 Packaging Changes
 - 4.15.8 Removed Recipes
 - 4.15.9 Removed Classes
 - 4.15.10 Miscellaneous Changes
 
 - 4.16 Moving to the Yocto Project 3.0 Release
 - 4.17 Moving to the Yocto Project 3.1 Release
- 4.17.1 Minimum system requirements
 - 4.17.2 mpc8315e-rdb machine removed
 - 4.17.3 Python 2 removed
 - 4.17.4 Reproducible builds now enabled by default
 - 4.17.5 Impact of ptest feature is now more significant
 - 4.17.6 Removed recipes
 - 4.17.7 features_check class replaces distro_features_check
 - 4.17.8 Removed classes
 - 4.17.9 SRC_URI checksum behaviour
 - 4.17.10 npm fetcher changes
 - 4.17.11 Packaging changes
 - 4.17.12 Additional warnings
 - 4.17.13 
wicimage type now used instead ofliveby default for x86 - 4.17.14 Miscellaneous changes
 
 
 - 5 Source Directory Structure
- 5.1 Top-Level Core Components
 - 5.2 The Build Directory - 
build/- 5.2.1 
build/buildhistory/ - 5.2.2 
build/conf/local.conf - 5.2.3 
build/conf/bblayers.conf - 5.2.4 
build/cache/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/ipk/ - 5.2.14 
build/tmp/deploy/licenses/ - 5.2.15 
build/tmp/deploy/images/ - 5.2.16 
build/tmp/deploy/sdk/ - 5.2.17 
build/tmp/sstate-control/ - 5.2.18 
build/tmp/sysroots-components/ - 5.2.19 
build/tmp/sysroots/ - 5.2.20 
build/tmp/stamps/ - 5.2.21 
build/tmp/log/ - 5.2.22 
build/tmp/work/ - 5.2.23 
build/tmp/work/tunearch/recipename/version/ - 5.2.24 
build/tmp/work-shared/ 
 - 5.2.1 
 - 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/conf/machine-sdk/ - 5.3.6 
meta/files/ - 5.3.7 
meta/lib/ - 5.3.8 
meta/recipes-bsp/ - 5.3.9 
meta/recipes-connectivity/ - 5.3.10 
meta/recipes-core/ - 5.3.11 
meta/recipes-devtools/ - 5.3.12 
meta/recipes-extended/ - 5.3.13 
meta/recipes-gnome/ - 5.3.14 
meta/recipes-graphics/ - 5.3.15 
meta/recipes-kernel/ - 5.3.16 
meta/recipes-lsb4/ - 5.3.17 
meta/recipes-multimedia/ - 5.3.18 
meta/recipes-rt/ - 5.3.19 
meta/recipes-sato/ - 5.3.20 
meta/recipes-support/ - 5.3.21 
meta/site/ - 5.3.22 
meta/recipes.txt 
 - 5.3.1 
 
 - 6 Classes
- 6.1 
allarch.bbclass - 6.2 
archiver.bbclass - 6.3 
autotools*.bbclass - 6.4 
base.bbclass - 6.5 
bash-completion.bbclass - 6.6 
bin_package.bbclass - 6.7 
binconfig.bbclass - 6.8 
binconfig-disabled.bbclass - 6.9 
blacklist.bbclass - 6.10 
buildhistory.bbclass - 6.11 
buildstats.bbclass - 6.12 
buildstats-summary.bbclass - 6.13 
ccache.bbclass - 6.14 
chrpath.bbclass - 6.15 
clutter.bbclass - 6.16 
cmake.bbclass - 6.17 
cml1.bbclass - 6.18 
compress_doc.bbclass - 6.19 
copyleft_compliance.bbclass - 6.20 
copyleft_filter.bbclass - 6.21 
core-image.bbclass - 6.22 
cpan*.bbclass - 6.23 
cross.bbclass - 6.24 
cross-canadian.bbclass - 6.25 
crosssdk.bbclass - 6.26 
debian.bbclass - 6.27 
deploy.bbclass - 6.28 
devshell.bbclass - 6.29 
devupstream.bbclass - 6.30 
distutils*.bbclass - 6.31 
distutils3*.bbclass - 6.32 
externalsrc.bbclass - 6.33 
extrausers.bbclass - 6.34 
features_check.bbclass - 6.35 
fontcache.bbclass - 6.36 
fs-uuid.bbclass - 6.37 
gconf.bbclass - 6.38 
gettext.bbclass - 6.39 
gnomebase.bbclass - 6.40 
gobject-introspection.bbclass - 6.41 
grub-efi.bbclass - 6.42 
gsettings.bbclass - 6.43 
gtk-doc.bbclass - 6.44 
gtk-icon-cache.bbclass - 6.45 
gtk-immodules-cache.bbclass - 6.46 
gzipnative.bbclass - 6.47 
icecc.bbclass - 6.48 
image.bbclass - 6.49 
image-buildinfo.bbclass - 6.50 
image_types.bbclass - 6.51 
image-live.bbclass - 6.52 
image-mklibs.bbclass - 6.53 
image-prelink.bbclass - 6.54 
insane.bbclass - 6.55 
insserv.bbclass - 6.56 
kernel.bbclass - 6.57 
kernel-arch.bbclass - 6.58 
kernel-devicetree.bbclass - 6.59 
kernel-fitimage.bbclass - 6.60 
kernel-grub.bbclass - 6.61 
kernel-module-split.bbclass - 6.62 
kernel-uboot.bbclass - 6.63 
kernel-uimage.bbclass - 6.64 
kernel-yocto.bbclass - 6.65 
kernelsrc.bbclass - 6.66 
lib_package.bbclass - 6.67 
libc*.bbclass - 6.68 
license.bbclass - 6.69 
linux-kernel-base.bbclass - 6.70 
linuxloader.bbclass - 6.71 
logging.bbclass - 6.72 
meta.bbclass - 6.73 
metadata_scm.bbclass - 6.74 
migrate_localcount.bbclass - 6.75 
mime.bbclass - 6.76 
mirrors.bbclass - 6.77 
module.bbclass - 6.78 
module-base.bbclass - 6.79 
multilib*.bbclass - 6.80 
native.bbclass - 6.81 
nativesdk.bbclass - 6.82 
nopackages.bbclass - 6.83 
npm.bbclass - 6.84 
oelint.bbclass - 6.85 
own-mirrors.bbclass - 6.86 
package.bbclass - 6.87 
package_deb.bbclass - 6.88 
package_ipk.bbclass - 6.89 
package_rpm.bbclass - 6.90 
package_tar.bbclass - 6.91 
packagedata.bbclass - 6.92 
packagegroup.bbclass - 6.93 
patch.bbclass - 6.94 
perlnative.bbclass - 6.95 
pixbufcache.bbclass - 6.96 
pkgconfig.bbclass - 6.97 
populate_sdk.bbclass - 6.98 
populate_sdk_*.bbclass - 6.99 
prexport.bbclass - 6.100 
primport.bbclass - 6.101 
prserv.bbclass - 6.102 
ptest.bbclass - 6.103 
ptest-gnome.bbclass - 6.104 
python-dir.bbclass - 6.105 
python3native.bbclass - 6.106 
pythonnative.bbclass - 6.107 
qemu.bbclass - 6.108 
recipe_sanity.bbclass - 6.109 
relocatable.bbclass - 6.110 
remove-libtool.bbclass - 6.111 
report-error.bbclass - 6.112 
rm_work.bbclass - 6.113 
rootfs*.bbclass - 6.114 
sanity.bbclass - 6.115 
scons.bbclass - 6.116 
sdl.bbclass - 6.117 
setuptools.bbclass - 6.118 
setuptools3.bbclass - 6.119 
sign_rpm.bbclass - 6.120 
sip.bbclass - 6.121 
siteconfig.bbclass - 6.122 
siteinfo.bbclass - 6.123 
spdx.bbclass - 6.124 
sstate.bbclass - 6.125 
staging.bbclass - 6.126 
syslinux.bbclass - 6.127 
systemd.bbclass - 6.128 
systemd-boot.bbclass - 6.129 
terminal.bbclass - 6.130 
testimage*.bbclass - 6.131 
testsdk.bbclass - 6.132 
texinfo.bbclass - 6.133 
toaster.bbclass - 6.134 
toolchain-scripts.bbclass - 6.135 
typecheck.bbclass - 6.136 
uboot-config.bbclass - 6.137 
uninative.bbclass - 6.138 
update-alternatives.bbclass - 6.139 
update-rc.d.bbclass - 6.140 
useradd*.bbclass - 6.141 
utility-tasks.bbclass - 6.142 
utils.bbclass - 6.143 
vala.bbclass - 6.144 
waf.bbclass 
 - 6.1 
 - 7 Tasks
- 7.1 Normal Recipe Build Tasks
- 7.1.1 
do_build - 7.1.2 
do_compile - 7.1.3 
do_compile_ptest_base - 7.1.4 
do_configure - 7.1.5 
do_configure_ptest_base - 7.1.6 
do_deploy - 7.1.7 
do_fetch - 7.1.8 
do_image - 7.1.9 
do_image_complete - 7.1.10 
do_install - 7.1.11 
do_install_ptest_base - 7.1.12 
do_package - 7.1.13 
do_package_qa - 7.1.14 
do_package_write_deb - 7.1.15 
do_package_write_ipk - 7.1.16 
do_package_write_rpm - 7.1.17 
do_package_write_tar - 7.1.18 
do_packagedata - 7.1.19 
do_patch - 7.1.20 
do_populate_lic - 7.1.21 
do_populate_sdk - 7.1.22 
do_populate_sdk_ext - 7.1.23 
do_populate_sysroot - 7.1.24 
do_prepare_recipe_sysroot - 7.1.25 
do_rm_work - 7.1.26 
do_unpack 
 - 7.1.1 
 - 7.2 Manually Called Tasks
 - 7.3 Image-Related Tasks
 - 7.4 Kernel-Related Tasks
- 7.4.1 
do_compile_kernelmodules - 7.4.2 
do_diffconfig - 7.4.3 
do_kernel_checkout - 7.4.4 
do_kernel_configcheck - 7.4.5 
do_kernel_configme - 7.4.6 
do_kernel_menuconfig - 7.4.7 
do_kernel_metadata - 7.4.8 
do_menuconfig - 7.4.9 
do_savedefconfig - 7.4.10 
do_shared_workdir - 7.4.11 
do_sizecheck - 7.4.12 
do_strip - 7.4.13 
do_validate_branches 
 - 7.4.1 
 - 7.5 Miscellaneous Tasks
 
 - 7.1 Normal Recipe Build Tasks
 - 8 
devtoolQuick Reference- 8.1 Getting Help
 - 8.2 The Workspace Layer Structure
 - 8.3 Adding a New Recipe to the Workspace Layer
 - 8.4 Extracting the Source for an Existing Recipe
 - 8.5 Synchronizing a Recipe’s Extracted Source Tree
 - 8.6 Modifying an Existing Recipe
 - 8.7 Edit an Existing Recipe
 - 8.8 Updating a Recipe
 - 8.9 Checking on the Upgrade Status of a Recipe
 - 8.10 Upgrading a Recipe
 - 8.11 Resetting a Recipe
 - 8.12 Building Your Recipe
 - 8.13 Building Your Image
 - 8.14 Deploying Your Software on the Target Machine
 - 8.15 Removing Your Software from the Target Machine
 - 8.16 Creating the Workspace Layer in an Alternative Location
 - 8.17 Get the Status of the Recipes in Your Workspace
 - 8.18 Search for Available Target Recipes
 
 - 9 OpenEmbedded Kickstart (
.wks) Reference - 10 QA Error and Warning Messages
 - 11 Images
 - 12 Features
 - 13 Variables Glossary
 - 14 Variable Context
 - 15 FAQ
 - 16 Contributions and Additional Information
 - 17 Manual Revision History
 
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 freenode #yocto channel.