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/conf/bblock.conf - 4.2.6
build/conf/auto.conf - 4.2.7
build/downloads/ - 4.2.8
build/sstate-cache/ - 4.2.9
build/tmp/- 4.2.9.1
build/tmp/buildstats/ - 4.2.9.2
build/tmp/cache/ - 4.2.9.3
build/tmp/deploy/ - 4.2.9.4
build/tmp/hosttools/ - 4.2.9.5
build/tmp/pkgdata/ - 4.2.9.6
build/tmp/sstate-control/ - 4.2.9.7
build/tmp/sysroots-components/ - 4.2.9.8
build/tmp/sysroots/ - 4.2.9.9
build/tmp/stamps/ - 4.2.9.10
build/tmp/log/ - 4.2.9.11
build/tmp/work/ - 4.2.9.12
build/tmp/work-shared/
- 4.2.9.1
- 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
barebox - 5.5
base - 5.6
bash-completion - 5.7
bin_package - 5.8
binconfig - 5.9
binconfig-disabled - 5.10
buildhistory - 5.11
buildstats - 5.12
buildstats-summary - 5.13
cargo - 5.14
cargo_c - 5.15
cargo_common - 5.16
cargo-update-recipe-crates - 5.17
ccache - 5.18
chrpath - 5.19
cmake - 5.20
cmake-qemu - 5.21
cml1 - 5.22
compress_doc - 5.23
copyleft_compliance - 5.24
copyleft_filter - 5.25
core-image - 5.26
cpan* - 5.27
create-spdx - 5.28
cross - 5.29
cross-canadian - 5.30
crosssdk - 5.31
cve-check - 5.32
cython - 5.33
debian - 5.34
deploy - 5.35
devicetree - 5.36
devshell - 5.37
devupstream - 5.38
externalsrc - 5.39
extrausers - 5.40
features_check - 5.41
fontcache - 5.42
fs-uuid - 5.43
gconf - 5.44
gettext - 5.45
github-releases - 5.46
gnomebase - 5.47
go - 5.48
go-mod - 5.49
go-vendor - 5.50
gobject-introspection - 5.51
grub-efi - 5.52
gsettings - 5.53
gtk-doc - 5.54
gtk-icon-cache - 5.55
gtk-immodules-cache - 5.56
gzipnative - 5.57
icecc - 5.58
image - 5.59
image-buildinfo - 5.60
image_types - 5.61
image-live - 5.62
insane - 5.63
kernel - 5.64
kernel-arch - 5.65
kernel-devicetree - 5.66
kernel-fitimage - 5.67
kernel-grub - 5.68
kernel-module-split - 5.69
kernel-uboot - 5.70
kernel-uimage - 5.71
kernel-yocto - 5.72
kernelsrc - 5.73
lib_package - 5.74
libc* - 5.75
license - 5.76
linux-kernel-base - 5.77
linuxloader - 5.78
logging - 5.79
meson - 5.80
metadata_scm - 5.81
mime - 5.82
mime-xdg - 5.83
mirrors - 5.84
module - 5.85
module-base - 5.86
multilib* - 5.87
native - 5.88
nativesdk - 5.89
nopackages - 5.90
nospdx - 5.91
npm - 5.92
oelint - 5.93
overlayfs - 5.94
overlayfs-etc - 5.95
own-mirrors - 5.96
package - 5.97
package_deb - 5.98
package_ipk - 5.99
package_rpm - 5.100
packagedata - 5.101
packagegroup - 5.102
patch - 5.103
perlnative - 5.104
pypi - 5.105
python_flit_core - 5.106
python_maturin - 5.107
python_mesonpy - 5.108
python_pep517 - 5.109
python_poetry_core - 5.110
python_pyo3 - 5.111
python-setuptools3_rust - 5.112
pixbufcache - 5.113
pkgconfig - 5.114
populate_sdk - 5.115
populate_sdk_* - 5.116
prexport - 5.117
primport - 5.118
prserv - 5.119
ptest - 5.120
ptest-cargo - 5.121
ptest-gnome - 5.122
ptest-python-pytest - 5.123
python3-dir - 5.124
python3native - 5.125
python3targetconfig - 5.126
qemu - 5.127
recipe_sanity - 5.128
relocatable - 5.129
remove-libtool - 5.130
report-error - 5.131
retain - 5.132
rm_work - 5.133
rootfs* - 5.134
rust - 5.135
rust-common - 5.136
sanity - 5.137
scons - 5.138
sdl - 5.139
python_setuptools_build_meta - 5.140
setuptools3 - 5.141
setuptools3_legacy - 5.142
setuptools3-base - 5.143
sign_rpm - 5.144
siteinfo - 5.145
sstate - 5.146
staging - 5.147
syslinux - 5.148
systemd - 5.149
systemd-boot - 5.150
terminal - 5.151
testexport - 5.152
testimage - 5.153
testsdk - 5.154
texinfo - 5.155
toaster - 5.156
toolchain-scripts - 5.157
typecheck - 5.158
uboot-config - 5.159
uboot-sign - 5.160
uki - 5.161
uninative - 5.162
update-alternatives - 5.163
update-rc.d - 5.164
useradd* - 5.165
utility-tasks - 5.166
utils - 5.167
vala - 5.168
vex - 5.169
waf - 5.170
yocto-check-layer
- 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 Finish Working on a Recipe
- 7.13 Building Your Recipe
- 7.14 Building Your Image
- 7.15 Deploying Your Software on the Target Machine
- 7.16 Removing Your Software from the Target Machine
- 7.17 Creating the Workspace Layer in an Alternative Location
- 7.18 Get the Status of the Recipes in Your Workspace
- 7.19 Search for Available Target Recipes
- 7.20 Get Information on Recipe Configuration Scripts
- 7.21 Generate an IDE Configuration for a Recipe
- 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.3.8 Why isn’t there a way to append bbclass files like bbappend for recipes?
- 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.