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 insserv
- 5.60 kernel
- 5.61 kernel-arch
- 5.62 kernel-devicetree
- 5.63 kernel-fitimage
- 5.64 kernel-grub
- 5.65 kernel-module-split
- 5.66 kernel-uboot
- 5.67 kernel-uimage
- 5.68 kernel-yocto
- 5.69 kernelsrc
- 5.70 lib_package
- 5.71 libc*
- 5.72 license
- 5.73 linux-kernel-base
- 5.74 linuxloader
- 5.75 logging
- 5.76 meson
- 5.77 metadata_scm
- 5.78 migrate_localcount
- 5.79 mime
- 5.80 mime-xdg
- 5.81 mirrors
- 5.82 module
- 5.83 module-base
- 5.84 multilib*
- 5.85 native
- 5.86 nativesdk
- 5.87 nopackages
- 5.88 npm
- 5.89 oelint
- 5.90 overlayfs
- 5.91 overlayfs-etc
- 5.92 own-mirrors
- 5.93 package
- 5.94 package_deb
- 5.95 package_ipk
- 5.96 package_rpm
- 5.97 packagedata
- 5.98 packagegroup
- 5.99 patch
- 5.100 perlnative
- 5.101 pypi
- 5.102 python_flit_core
- 5.103 python_pep517
- 5.104 python_poetry_core
- 5.105 python_pyo3
- 5.106 python-setuptools3_rust
- 5.107 pixbufcache
- 5.108 pkgconfig
- 5.109 populate_sdk
- 5.110 populate_sdk_*
- 5.111 prexport
- 5.112 primport
- 5.113 prserv
- 5.114 ptest
- 5.115 ptest-cargo
- 5.116 ptest-gnome
- 5.117 python3-dir
- 5.118 python3native
- 5.119 python3targetconfig
- 5.120 qemu
- 5.121 recipe_sanity
- 5.122 relocatable
- 5.123 remove-libtool
- 5.124 report-error
- 5.125 rm_work
- 5.126 rootfs*
- 5.127 rust
- 5.128 rust-common
- 5.129 sanity
- 5.130 scons
- 5.131 sdl
- 5.132 python_setuptools_build_meta
- 5.133 setuptools3
- 5.134 setuptools3_legacy
- 5.135 setuptools3-base
- 5.136 sign_rpm
- 5.137 siteconfig
- 5.138 siteinfo
- 5.139 sstate
- 5.140 staging
- 5.141 syslinux
- 5.142 systemd
- 5.143 systemd-boot
- 5.144 terminal
- 5.145 testimage
- 5.146 testsdk
- 5.147 texinfo
- 5.148 toaster
- 5.149 toolchain-scripts
- 5.150 typecheck
- 5.151 uboot-config
- 5.152 uboot-sign
- 5.153 uninative
- 5.154 update-alternatives
- 5.155 update-rc.d
- 5.156 useradd*
- 5.157 utility-tasks
- 5.158 utils
- 5.159 vala
- 5.160 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.