Yocto Project Reference Manual¶
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
This version of this manual is for the 3.1 release of the Yocto Project. To be sure you have the latest version of the manual for this release, go to the Yocto Project documentation page and select the manual from that site. Manuals from the site are more up-to-date than manuals derived from the Yocto Project released TAR files.
If you located this manual through a web search, the version of the manual might not be the one you want (e.g. the search might have returned a manual much older than the Yocto Project version with which you are working). You can see all Yocto Project major releases by visiting the Releases page. If you need a version of this manual for a different Yocto Project release, visit the Yocto Project documentation page and select the manual set by using the “ACTIVE RELEASES DOCUMENTATION” or “DOCUMENTS ARCHIVE” pull-down menus.
To report any inaccuracies or problems with this (or any other Yocto Project) manual, send an email to the Yocto Project documentation mailing list at
docs@lists.yoctoproject.org
or log into the freenode#yocto
channel.
Revision |
Date |
Note |
---|---|---|
0.9 |
November 2010 |
The initial document released with the Yocto Project 0.9 Release |
1.0 |
April 2011 |
Released with the Yocto Project 1.0 Release. |
1.1 |
October 2011 |
Released with the Yocto Project 1.1 Release. |
1.2 |
April 2012 |
Released with the Yocto Project 1.2 Release. |
1.3 |
October 2012 |
Released with the Yocto Project 1.3 Release. |
1.4 |
April 2013 |
Released with the Yocto Project 1.4 Release. |
1.5 |
October 2013 |
Released with the Yocto Project 1.5 Release. |
1.6 |
April 2014 |
Released with the Yocto Project 1.6 Release. |
1.7 |
October 2014 |
Released with the Yocto Project 1.7 Release. |
1.8 |
April 2015 |
Released with the Yocto Project 1.8 Release. |
2.0 |
October 2015 |
Released with the Yocto Project 2.0 Release. |
2.1 |
April 2016 |
Released with the Yocto Project 2.1 Release. |
2.2 |
October 2016 |
Released with the Yocto Project 2.2 Release. |
2.3 |
May 2017 |
Released with the Yocto Project 2.3 Release. |
2.4 |
October 2017 |
Released with the Yocto Project 2.4 Release. |
2.5 |
May 2018 |
Released with the Yocto Project 2.5 Release. |
2.6 |
November 2018 |
Released with the Yocto Project 2.6 Release. |
2.7 |
May 2019 |
Released with the Yocto Project 2.7 Release. |
3.0 |
October 2019 |
Released with the Yocto Project 3.0 Release. |
3.1 |
April 2020 |
Released with the Yocto Project 3.1 Release. |
- 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-pc
Board Support Package (BSP) - 4.4.3. BitBake
- 4.4.4. QA Warnings
- 4.4.5. Directory Layout Changes
- 4.4.6. Shortened Git
SRCREV
Values - 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.
archiver
Class - 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.
CFLAGS
Options - 4.5.11. Custom Image Output Types
- 4.5.12. Tasks
- 4.5.13.
update-alternative
Provider - 4.5.14.
virtclass
Overrides - 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
PACKAGECONFIG
Options 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.19
Replaced 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-yocto
Kernel 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.
libexecdir
Reverted to${prefix}/libexec
- 4.9.6.
ac_cv_sizeof_off_t
is 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/deploy
Now 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.
runqemu
Ported to Python - 4.10.8. Default Linker Hash Style Changed
- 4.10.9.
KERNEL_IMAGE_BASE_NAME
no 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.
PATH
Variable - 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.
distutils
anddistutils3
Now Prevent Fetching Dependencies During thedo_configure
Task - 4.14.6.
linux-yocto
Configuration Audit Issues Now Correctly Reported - 4.14.7. Image/Kernel Artifact Naming Changes
- 4.14.8.
SERIAL_CONSOLE
Deprecated - 4.14.9. Configure Script Reports Unknown Options as Errors
- 4.14.10. Override Changes
- 4.14.11.
systemd
Configuration 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-native
Splits the System and User-Mode Parts - 4.15.4. The
upstream-tracking.inc
File Has Been Removed - 4.15.5. The
DISTRO_FEATURES_LIBC
Variable 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.
wic
image type now used instead oflive
by 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.
distro_features_check.bbclass
- 6.31.
distutils*.bbclass
- 6.32.
distutils3*.bbclass
- 6.33.
externalsrc.bbclass
- 6.34.
extrausers.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.
tinderclient.bbclass
- 6.134.
toaster.bbclass
- 6.135.
toolchain-scripts.bbclass
- 6.136.
typecheck.bbclass
- 6.137.
uboot-config.bbclass
- 6.138.
uninative.bbclass
- 6.139.
update-alternatives.bbclass
- 6.140.
update-rc.d.bbclass
- 6.141.
useradd*.bbclass
- 6.142.
utility-tasks.bbclass
- 6.143.
utils.bbclass
- 6.144.
vala.bbclass
- 6.145.
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_sysroot
- 7.1.23.
do_prepare_recipe_sysroot
- 7.1.24.
do_rm_work
- 7.1.25.
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.
devtool
Quick 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