Yocto Project Reference Manual
Table of Contents
- 1 System Requirements
 - 2 Yocto Project Terms
 - 3 Yocto Project Releases and the Stable Release Process
 - 4 Source Directory Structure
- 4.1 Top-Level Core Components
 - 4.2 The Build Directory — 
build/- 4.2.1 
build/buildhistory/ - 4.2.2 
build/cache/ - 4.2.3 
build/conf/local.conf - 4.2.4 
build/conf/bblayers.conf - 4.2.5 
build/downloads/ - 4.2.6 
build/sstate-cache/ - 4.2.7 
build/tmp/ 
 - 4.2.1 
 - 4.3 The Metadata — 
meta/- 4.3.1 
meta/classes*/ - 4.3.2 
meta/conf/ - 4.3.3 
meta/files/ - 4.3.4 
meta/lib/ - 4.3.5 
meta/recipes-bsp/ - 4.3.6 
meta/recipes-connectivity/ - 4.3.7 
meta/recipes-core/ - 4.3.8 
meta/recipes-devtools/ - 4.3.9 
meta/recipes-extended/ - 4.3.10 
meta/recipes-gnome/ - 4.3.11 
meta/recipes-graphics/ - 4.3.12 
meta/recipes-kernel/ - 4.3.13 
meta/recipes-multimedia/ - 4.3.14 
meta/recipes-rt/ - 4.3.15 
meta/recipes-sato/ - 4.3.16 
meta/recipes-support/ - 4.3.17 
meta/site/ - 4.3.18 
meta/recipes.txt 
 - 4.3.1 
 
 - 5 Classes
- 5.1 
allarch - 5.2 
archiver - 5.3 
autotools* - 5.4 
base - 5.5 
bash-completion - 5.6 
bin_package - 5.7 
binconfig - 5.8 
binconfig-disabled - 5.9 
buildhistory - 5.10 
buildstats - 5.11 
buildstats-summary - 5.12 
cargo - 5.13 
cargo_c - 5.14 
cargo_common - 5.15 
cargo-update-recipe-crates - 5.16 
ccache - 5.17 
chrpath - 5.18 
cmake - 5.19 
cml1 - 5.20 
compress_doc - 5.21 
copyleft_compliance - 5.22 
copyleft_filter - 5.23 
core-image - 5.24 
cpan* - 5.25 
create-spdx - 5.26 
cross - 5.27 
cross-canadian - 5.28 
crosssdk - 5.29 
cve-check - 5.30 
debian - 5.31 
deploy - 5.32 
devicetree - 5.33 
devshell - 5.34 
devupstream - 5.35 
externalsrc - 5.36 
extrausers - 5.37 
features_check - 5.38 
fontcache - 5.39 
fs-uuid - 5.40 
gconf - 5.41 
gettext - 5.42 
github-releases - 5.43 
gnomebase - 5.44 
go - 5.45 
go-mod - 5.46 
gobject-introspection - 5.47 
grub-efi - 5.48 
gsettings - 5.49 
gtk-doc - 5.50 
gtk-icon-cache - 5.51 
gtk-immodules-cache - 5.52 
gzipnative - 5.53 
icecc - 5.54 
image - 5.55 
image-buildinfo - 5.56 
image_types - 5.57 
image-live - 5.58 
insane - 5.59 
kernel - 5.60 
kernel-arch - 5.61 
kernel-devicetree - 5.62 
kernel-fitimage - 5.63 
kernel-grub - 5.64 
kernel-module-split - 5.65 
kernel-uboot - 5.66 
kernel-uimage - 5.67 
kernel-yocto - 5.68 
kernelsrc - 5.69 
lib_package - 5.70 
libc* - 5.71 
license - 5.72 
linux-kernel-base - 5.73 
linuxloader - 5.74 
logging - 5.75 
meson - 5.76 
metadata_scm - 5.77 
migrate_localcount - 5.78 
mime - 5.79 
mime-xdg - 5.80 
mirrors - 5.81 
module - 5.82 
module-base - 5.83 
multilib* - 5.84 
native - 5.85 
nativesdk - 5.86 
nopackages - 5.87 
npm - 5.88 
oelint - 5.89 
overlayfs - 5.90 
overlayfs-etc - 5.91 
own-mirrors - 5.92 
package - 5.93 
package_deb - 5.94 
package_ipk - 5.95 
package_rpm - 5.96 
packagedata - 5.97 
packagegroup - 5.98 
patch - 5.99 
perlnative - 5.100 
pypi - 5.101 
python_flit_core - 5.102 
python_pep517 - 5.103 
python_poetry_core - 5.104 
python_pyo3 - 5.105 
python-setuptools3_rust - 5.106 
pixbufcache - 5.107 
pkgconfig - 5.108 
populate_sdk - 5.109 
populate_sdk_* - 5.110 
prexport - 5.111 
primport - 5.112 
prserv - 5.113 
ptest - 5.114 
ptest-cargo - 5.115 
ptest-gnome - 5.116 
python3-dir - 5.117 
python3native - 5.118 
python3targetconfig - 5.119 
qemu - 5.120 
recipe_sanity - 5.121 
relocatable - 5.122 
remove-libtool - 5.123 
report-error - 5.124 
rm_work - 5.125 
rootfs* - 5.126 
rust - 5.127 
rust-common - 5.128 
sanity - 5.129 
scons - 5.130 
sdl - 5.131 
python_setuptools_build_meta - 5.132 
setuptools3 - 5.133 
setuptools3_legacy - 5.134 
setuptools3-base - 5.135 
sign_rpm - 5.136 
siteconfig - 5.137 
siteinfo - 5.138 
sstate - 5.139 
staging - 5.140 
syslinux - 5.141 
systemd - 5.142 
systemd-boot - 5.143 
terminal - 5.144 
testimage - 5.145 
testsdk - 5.146 
texinfo - 5.147 
toaster - 5.148 
toolchain-scripts - 5.149 
typecheck - 5.150 
uboot-config - 5.151 
uboot-sign - 5.152 
uninative - 5.153 
update-alternatives - 5.154 
update-rc.d - 5.155 
useradd* - 5.156 
utility-tasks - 5.157 
utils - 5.158 
vala - 5.159 
waf 
 - 5.1 
 - 6 Tasks
- 6.1 Normal Recipe Build Tasks
- 6.1.1 
do_build - 6.1.2 
do_compile - 6.1.3 
do_compile_ptest_base - 6.1.4 
do_configure - 6.1.5 
do_configure_ptest_base - 6.1.6 
do_deploy - 6.1.7 
do_fetch - 6.1.8 
do_image - 6.1.9 
do_image_complete - 6.1.10 
do_install - 6.1.11 
do_install_ptest_base - 6.1.12 
do_package - 6.1.13 
do_package_qa - 6.1.14 
do_package_write_deb - 6.1.15 
do_package_write_ipk - 6.1.16 
do_package_write_rpm - 6.1.17 
do_packagedata - 6.1.18 
do_patch - 6.1.19 
do_populate_lic - 6.1.20 
do_populate_sdk - 6.1.21 
do_populate_sdk_ext - 6.1.22 
do_populate_sysroot - 6.1.23 
do_prepare_recipe_sysroot - 6.1.24 
do_rm_work - 6.1.25 
do_unpack 
 - 6.1.1 
 - 6.2 Manually Called Tasks
 - 6.3 Image-Related Tasks
 - 6.4 Kernel-Related Tasks
- 6.4.1 
do_compile_kernelmodules - 6.4.2 
do_diffconfig - 6.4.3 
do_kernel_checkout - 6.4.4 
do_kernel_configcheck - 6.4.5 
do_kernel_configme - 6.4.6 
do_kernel_menuconfig - 6.4.7 
do_kernel_metadata - 6.4.8 
do_menuconfig - 6.4.9 
do_savedefconfig - 6.4.10 
do_shared_workdir - 6.4.11 
do_sizecheck - 6.4.12 
do_strip - 6.4.13 
do_validate_branches 
 - 6.4.1 
 
 - 6.1 Normal Recipe Build Tasks
 - 7 
devtoolQuick Reference- 7.1 Getting Help
 - 7.2 The Workspace Layer Structure
 - 7.3 Adding a New Recipe to the Workspace Layer
 - 7.4 Extracting the Source for an Existing Recipe
 - 7.5 Synchronizing a Recipe’s Extracted Source Tree
 - 7.6 Modifying an Existing Recipe
 - 7.7 Edit an Existing Recipe
 - 7.8 Updating a Recipe
 - 7.9 Checking on the Upgrade Status of a Recipe
 - 7.10 Upgrading a Recipe
 - 7.11 Resetting a Recipe
 - 7.12 Building Your Recipe
 - 7.13 Building Your Image
 - 7.14 Deploying Your Software on the Target Machine
 - 7.15 Removing Your Software from the Target Machine
 - 7.16 Creating the Workspace Layer in an Alternative Location
 - 7.17 Get the Status of the Recipes in Your Workspace
 - 7.18 Search for Available Target Recipes
 
 - 8 OpenEmbedded Kickstart (
.wks) Reference - 9 QA Error and Warning Messages
 - 10 Images
 - 11 Features
 - 12 Variables Glossary
 - 13 Variable Context
 - 14 FAQ
- 14.1 General questions
 - 14.2 Building environment
 - 14.3 Using the OpenEmbedded Build system
- 14.3.1 How do I use an external toolchain?
 - 14.3.2 Why do I get chmod permission issues?
 - 14.3.3 I see many 404 errors trying to download sources. Is anything wrong?
 - 14.3.4 Why do I get random build failures?
 - 14.3.5 Why does the build fail with 
iconv.hproblems? - 14.3.6 Why don’t other recipes find the files provided by my 
*-nativerecipe? - 14.3.7 Can I get rid of build output so I can start over?
 
 - 14.4 Customizing generated images
- 14.4.1 What does the OpenEmbedded build system produce as output?
 - 14.4.2 How do I make the Yocto Project support my board?
 - 14.4.3 How do I make the Yocto Project support my package?
 - 14.4.4 What do I need to ship for license compliance?
 - 14.4.5 Do I have to make a full reflash after recompiling one package?
 - 14.4.6 How to prevent my package from being marked as machine specific?
 - 14.4.7 What’s the difference between 
targetandtarget-native? - 14.4.8 Why do 
${bindir}and${libdir}have strange values for-nativerecipes? - 14.4.9 How do I create images with more free space?
 - 14.4.10 Why aren’t spaces in path names supported?
 - 14.4.11 I’m adding a binary in a recipe. Why is it different in the image?
 
 - 14.5 Issues on the running system
 
 - 15 Contributions and Additional Information
 
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.