Yocto Project Reference Manual
- 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
- 4.18 Moving to the Yocto Project 3.2 Release
- 4.18.1 Minimum system requirements
- 4.18.2 Removed recipes
- 4.18.3 Removed classes
- 4.18.4 pseudo path filtering and mismatch behaviour
- 4.18.5
MLPREFIX
now required for multilib when runtime dependencies conditionally added - 4.18.6 packagegroup-core-device-devel no longer included in images built for qemu* machines
- 4.18.7 DHCP server/client replaced
- 4.18.8 Packaging changes
- 4.18.9 Package QA check changes
- 4.18.10 Globbing no longer supported in
file://
entries inSRC_URI
- 4.18.11 deploy class now cleans
DEPLOYDIR
beforedo_deploy
- 4.18.12 Custom SDK / SDK-style recipes need to include
nativesdk-sdk-provides-dummy
- 4.18.13
ld.so.conf
now moved back to mainglibc
package - 4.18.14 Host DRI drivers now used for GL support within
runqemu
- 4.18.15 initramfs images now use a blank suffix
- 4.18.16 Image artifact name variables now centralised in image-artifact-names class
- 4.18.17 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
sstate.bbclass
- 6.124
staging.bbclass
- 6.125
syslinux.bbclass
- 6.126
systemd.bbclass
- 6.127
systemd-boot.bbclass
- 6.128
terminal.bbclass
- 6.129
testimage*.bbclass
- 6.130
testsdk.bbclass
- 6.131
texinfo.bbclass
- 6.132
toaster.bbclass
- 6.133
toolchain-scripts.bbclass
- 6.134
typecheck.bbclass
- 6.135
uboot-config.bbclass
- 6.136
uninative.bbclass
- 6.137
update-alternatives.bbclass
- 6.138
update-rc.d.bbclass
- 6.139
useradd*.bbclass
- 6.140
utility-tasks.bbclass
- 6.141
utils.bbclass
- 6.142
vala.bbclass
- 6.143
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.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
- 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.