Lines Matching +full:sstate +full:- +full:cache +full:- +full:management

1 .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
10 :term:`A <ABIEXTENSION>` :term:`B` :term:`C <CACHE>`
27 ``meta/conf/machine/include/arm/arch-arm.inc`` file sets the
39 Like all package-controlling variables, you must always use them in
43 ALLOW_EMPTY:${PN}-dev = "1"
44 ALLOW_EMPTY:${PN}-staticdev = "1"
51 commands can co-exist.
60 ":ref:`ref-classes-update-alternatives`"
80 ":ref:`ref-classes-update-alternatives`"
96 ":ref:`ref-classes-update-alternatives`"
122 alternative files in the :ref:`ref-tasks-install`
126 ":ref:`ref-classes-update-alternatives`" section.
130 :ref:`features_check <ref-classes-features_check>`
144 See the :ref:`grub-efi <ref-classes-grub-efi>` class for more
151 When used with the :ref:`archiver <ref-classes-archiver>` class,
161 …ARCHIVER_MODE[diff-exclude] ?= "file file ..." # Lists files and directories to exclude from di…
177 In OpenEmbedded-Core, :term:`ASSUME_PROVIDED` mostly specifies native
178 tools that should not be built. An example is ``git-native``, which
180 rather than building ``git-native``.
193 as being provided by the ``libegl-implementation`` package::
195 ASSUME_SHLIBS = "libEGL.so.1:libegl-implementation"
202 When the :ref:`debian <ref-classes-debian>` class is inherited,
220 :ref:`kernel <ref-classes-kernel>` class and you use the previous
226 ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
232 :ref:`syslinux <ref-classes-syslinux>` class checks this variable.
242 …:ref:`Multilib <dev-manual/common-tasks:combining multiple versions of library files into one imag…
248 …":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:basic syntax`" section in the BitB…
253 …:ref:`Azure Storage fetcher (az://) <bitbake:bitbake-user-manual/bitbake-user-manual-fetching:fetc…
255 and gain access to non-public artifacts.
258 AZ_SAS = ""se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>""
261 https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview
272 by the :term:`B` variable. Most Autotools-based recipes support
277 Lists "recommended-only" packages to not install. Recommended-only
289 BAD_RECOMMENDATIONS:pn-target_image = "package_name"
307 …context. See the ":ref:`dev-manual/common-tasks:combining multiple versions of library files into …
320 Specifies a space-delimited list of hosts that the fetcher is allowed
324 - This host list is only used if :term:`BB_NO_NETWORK` is either not set
327 - There is limited support for wildcard matching against the beginning of
345 - Mirrors not in the host list are skipped and logged in debug.
347 - Attempts to access networks not in the host list cause a failure.
361 condition often occurs when layers get out of sync (e.g. ``oe-core``
385 .. code-block:: none
468 .. code-block:: none
521 hyper-threading causes the :term:`BB_NUMBER_THREADS` variable to default
531 ":ref:`dev-manual/common-tasks:speeding up a build`"
545 set :term:`BB_SERVER_TIMEOUT` to "-1".
550 ``quilt-native``, which is a copy of Quilt built to run on the build
551 system; "crosses" such as ``gcc-cross``, which is a compiler built to
567 as ``:class-native``. For example, to generate a native version of
569 to a :term:`DEPENDS` on "foo-native".
594 - effectively letting you control the precedence for the multiple
611 You can use the command ``bitbake-layers show-layers``
615 A space-separated list of recipe files BitBake uses to build
639 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
640 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
646 .. code-block:: none
649 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
650 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
668 /home/scottrif/poky/meta-poky \
669 /home/scottrif/poky/meta-yocto-bsp \
670 /home/scottrif/poky/meta-mykernel \
674 user-defined layer named ``meta-mykernel``.
689 documentation at https://docs.python.org/3/library/re.html#regular-expression-syntax.
693 ``meta-ti/recipes-misc/`` directory::
695 BBMASK = "meta-ti/recipes-misc/"
701 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
702 BBMASK += "/meta-oe/recipes-support/"
703 BBMASK += "/meta-foo/.*/openldap"
728 …":ref:`dev-manual/common-tasks:building images for multiple targets using multiple configurations`"
762 :ref:`binconfig-disabled <ref-classes-binconfig-disabled>` class,
764 favor of using ``pkg-config`` to query the information. The
765 …:ref:`binconfig-disabled <ref-classes-binconfig-disabled>` class will modify the specified scripts…
772 BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
775 When inheriting the :ref:`binconfig <ref-classes-binconfig>` class,
788 `fnmatch <https://docs.python.org/3/library/fnmatch.html#module-fnmatch>`__
795 ":ref:`ref-classes-binconfig`" section.
799 suffix (i.e. ``-native``, ``lib64-``, and so forth). :term:`BP` is
802 ${BPN}-${PV}
806 common prefixes and suffixes removed, such as ``nativesdk-``,
807 ``-cross``, ``-native``, and multilib's ``lib64-`` and ``lib32-``.
825 Specifies the architecture-specific assembler flags for the build
829 Specifies the architecture-specific C compiler flags for the build
841 build host. When building in the ``-native`` context,
848 building in the ``-native`` context, :term:`CPPFLAGS`
853 build host. When building in the ``-native`` context,
870 Specifies architecture-specific linker flags for the build host. By
875 host. When building in the ``-native`` context,
885 The default value of the :term:`BUILD_OPTIMIZATION` variable is "-O2
886 -pipe".
891 :term:`BUILD_OS` from the OS reported by the ``uname`` command - the
892 first word, converted to lower-case characters.
924 :ref:`structure-core-script` script by passing in a Build
930 When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
933 … repository will be maintained automatically by the :ref:`buildhistory <ref-classes-buildhistory>`
935 top-level subdirectory of the build history output (images, packages,
939 By default, the :ref:`buildhistory <ref-classes-buildhistory>` class does not commit the build
945 When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
956 …By default, the :ref:`buildhistory <ref-classes-buildhistory>` class sets the variable as follows::
961 When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
964 see the :ref:`ref-classes-buildhistory` class.
966 …By default, the :ref:`buildhistory <ref-classes-buildhistory>` class sets the directory as follows…
971 When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
974 ":ref:`dev-manual/common-tasks:maintaining build output quality`"
977 You can specify these features in the form of a space-separated list:
979 - *image:* Analysis of the contents of images, which includes the
982 - *package:* Analysis of the contents of individual packages.
984 - *sdk:* Analysis of the contents of the software development kit
987 - *task:* Save output file signatures for
988 :ref:`shared state <overview-manual/concepts:shared state cache>`
989 (sstate) tasks.
990 This saves one file per task and lists the SHA-256 checksums for
993 By default, the :ref:`buildhistory <ref-classes-buildhistory>` class enables the following
999 When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
1002 "image-files" directory in the directory for the image, so that you
1009 By default, the :ref:`buildhistory <ref-classes-buildhistory>` class provides paths to the
1015 When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
1022 …By default, the :ref:`buildhistory <ref-classes-buildhistory>` class sets the variable as follows::
1029 When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
1041 …By default, the :ref:`buildhistory <ref-classes-buildhistory>` class sets the variable as follows::
1047 SDK. When building in the ``nativesdk-`` context,
1052 Specifies the flags to pass to the C pre-processor (i.e. to both the
1054 the ``nativesdk-`` context, :term:`CPPFLAGS` is set
1059 SDK. When building in the ``nativesdk-`` context,
1065 When building in the ``nativesdk-`` context,
1072 :ref:`buildstats <ref-classes-buildstats>` class. The
1086 :term:`CACHE`
1087 Specifies the directory BitBake uses to store a cache of the
1102 - :term:`TARGET_CFLAGS` when building for the
1105 - :term:`BUILD_CFLAGS` when building for the
1106 build host (i.e. ``-native``)
1108 - :term:`BUILDSDK_CFLAGS` when building for
1109 an SDK (i.e. ``nativesdk-``)
1113 should currently apply (e.g. "class-target", "class-native", and so
1115 :ref:`native <ref-classes-native>`,
1116 :ref:`nativesdk <ref-classes-nativesdk>`, and so forth) set the
1121 :term:`CLASSOVERRIDE` gets its default "class-target" value from the
1127 do_install:append:class-target() {
1128 install my-extra-file ${D}${sysconfdir}
1135 FOO:class-native = "native"
1146 ``make clean`` during the :ref:`ref-tasks-configure`
1160 Points to ``meta/files/common-licenses`` in the
1167 non-native) with which a recipe is compatible. The regular expression
1193 (`fnmatch <https://docs.python.org/3/library/fnmatch.html#module-fnmatch>`__),
1200 this is the "dev-pkgs" item that when added to :term:`IMAGE_FEATURES`
1201 will install -dev packages (containing headers and other development
1208 COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev'
1212 system uses :term:`COMPONENTS_DIR` when constructing recipe-specific
1216 "``${``\ :term:`STAGING_DIR`\ ``}-components``."
1218 "``${``\ :term:`TMPDIR`\ ``}/sysroots-components``").
1227 If the Package Management System (PMS) is being used to update
1238 space-separated list of files. Here is an example::
1267 with a ``.cpio`` suffix or a space-separated list of directories and
1278 ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section
1291 :ref:`features_check <ref-classes-features_check>`
1303 which are located in ``/usr/share/common-licenses``, for each
1311 read-only filesystems that cannot be upgraded. See the
1313 You can also reference the ":ref:`dev-manual/common-tasks:providing license text`"
1320 ``/usr/share/common-licenses/license.manifest`` within the image
1327 read-only filesystems that cannot be upgraded. See the
1329 You can also reference the ":ref:`dev-manual/common-tasks:providing license text`"
1334 A space-separated list of licenses to exclude from the source
1335 archived by the :ref:`archiver <ref-classes-archiver>` class. In
1348 :ref:`copyleft_filter <ref-classes-copyleft_filter>` class, which
1349 is inherited by the :ref:`archiver <ref-classes-archiver>` class.
1352 A space-separated list of licenses to include in the source archived
1353 by the :ref:`archiver <ref-classes-archiver>` class. In other
1359 :ref:`copyleft_filter <ref-classes-copyleft_filter>` class, which
1360 is inherited by the :ref:`archiver <ref-classes-archiver>` class. The default value includes
1365 :ref:`archiver <ref-classes-archiver>` class. The
1374 :ref:`copyleft_filter <ref-classes-copyleft_filter>` class, which
1375 is inherited by the :ref:`archiver <ref-classes-archiver>` class.
1379 :ref:`archiver <ref-classes-archiver>` class. The
1388 :ref:`copyleft_filter <ref-classes-copyleft_filter>` class, which
1389 is inherited by the :ref:`archiver <ref-classes-archiver>` class.
1392 A space-separated list of recipe types to include in the source
1393 archived by the :ref:`archiver <ref-classes-archiver>` class.
1395 ``crosssdk``, and ``cross-canadian``.
1398 is set by the :ref:`copyleft_filter <ref-classes-copyleft_filter>`
1399 class, which is inherited by the :ref:`archiver <ref-classes-archiver>` class.
1410 Specifies the parent directory of the OpenEmbedded-Core Metadata
1437 Specifies the flags to pass to the C pre-processor (i.e. to both the
1445 - :term:`TARGET_CPPFLAGS` when building for
1448 - :term:`BUILD_CPPFLAGS` when building for the
1449 build host (i.e. ``-native``)
1451 - :term:`BUILDSDK_CPPFLAGS` when building
1452 for an SDK (i.e. ``nativesdk-``)
1470 CVE_CHECK_IGNORE += "CVE-2020-15523"
1473 Specifies whether or not the :ref:`cve-check <ref-classes-cve-check>`
1485 ``cve-update-db-native``. The default value is "86400" i.e. once a day
1487 every time. Alternatively, a negative value e.g. "-1" will disable
1495 :ref:`pypi <ref-classes-pypi>` class where it is set based upon
1506 the ``node-tar`` node.js extension. To avoid this problem, use the
1514 when usign :ref:`cve-check <ref-classes-cve-check>`.
1519 version number for :ref:`cve-check <ref-classes-cve-check>`. Example::
1538 - :term:`TARGET_CXXFLAGS` when building for
1541 - :term:`BUILD_CXXFLAGS` when building for the
1542 build host (i.e. ``-native``)
1544 - :term:`BUILDSDK_CXXFLAGS` when building
1545 for an SDK (i.e. ``nativesdk-``)
1550 :ref:`ref-tasks-install` task. This location defaults
1558 :ref:`fakeroot <overview-manual/concepts:fakeroot and pseudo>`.
1569 When the :ref:`debian <ref-classes-debian>` class is inherited,
1575 DEBIAN_NOAUTONAME:fontconfig-utils = "1"
1578 When the :ref:`debian <ref-classes-debian>` class is inherited,
1585 DEBIANNAME:${PN} = "dbus-1"
1593 compiling a system for debugging. This variable defaults to "-O
1594 -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe".
1597 Allows to set C compiler options, such as ``-fdebug-prefix-map``,
1598 ``-fmacro-prefix-map``, and ``-ffile-prefix-map``, which allow to
1599 replace build-time paths by install-time ones in the debugging sections
1605 :doc:`/test-manual/reproducible-builds` even when the source code of
1607 `reproducible-builds.org <https://reproducible-builds.org/docs/build-path/>`__
1611 not intended to be user-configurable.
1616 The most common usage of this is variable is to set it to "-1" within
1640 Lists a recipe's build-time dependencies. These are dependencies on
1653 :ref:`ref-tasks-configure` task for ``foo`` runs.
1655 the :ref:`ref-tasks-populate_sysroot` task of
1657 …``[``\ :ref:`deptask <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:variable flags>`\ `…
1658 declaration in the :ref:`base <ref-classes-base>` class.
1663 explicitly. The standard classes and build-related variables are
1671 DEPENDS = "codegen-native"
1674 information, see the :ref:`native <ref-classes-native>` class and
1679 - :term:`DEPENDS` is a list of recipe names. Or, to be more precise,
1682 "foo-dev" in :term:`DEPENDS` does not make sense. Use "foo"
1684 up ``foo``, which includes those from ``foo-dev``, into the
1687 - One recipe having another recipe in :term:`DEPENDS` does not by
1690 ":ref:`overview-manual/concepts:automatically added runtime dependencies`"
1695 - Counterintuitively, :term:`DEPENDS` is often necessary even for
1706 ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:tasks`" and
1707 … ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-execution:dependencies`" sections in the
1719 ":ref:`ref-manual/structure:the build directory - \`\`build/\`\``" section.
1721 ":ref:`overview-manual/concepts:images`",
1722 ":ref:`overview-manual/concepts:package feeds`", and
1723 ":ref:`overview-manual/concepts:application development sdk`" sections all in the
1734 :term:`DEPLOY_DIR_DEB` variable as a sub-folder of
1739 The :ref:`package_deb <ref-classes-package_deb>` class uses the
1741 :ref:`ref-tasks-package_write_deb` task
1744 ":ref:`overview-manual/concepts:package feeds`" section
1750 deployed onto the target machine. The directory is machine-specific
1758 :term:`DEPLOYDIR` by the :ref:`deploy <ref-classes-deploy>` class or
1760 <ref-classes-image>` class.
1763 ":ref:`ref-manual/structure:the build directory - \`\`build/\`\``" section.
1765 ":ref:`overview-manual/concepts:images`" and
1766 ":ref:`overview-manual/concepts:application development sdk`" sections both in
1777 sub-folder of :term:`DEPLOY_DIR`::
1781 The :ref:`package_ipk <ref-classes-package_ipk>` class uses the
1783 :ref:`ref-tasks-package_write_ipk` task
1786 ":ref:`overview-manual/concepts:package feeds`" section
1797 sub-folder of :term:`DEPLOY_DIR`::
1801 The :ref:`package_rpm <ref-classes-package_rpm>` class uses the
1803 :ref:`ref-tasks-package_write_rpm` task
1806 ":ref:`overview-manual/concepts:package feeds`" section
1817 sub-folder of :term:`DEPLOY_DIR`::
1821 The :ref:`package_tar <ref-classes-package_tar>` class uses the
1823 :ref:`ref-tasks-package_write_tar` task
1826 ":ref:`overview-manual/concepts:package feeds`" section
1830 When inheriting the :ref:`deploy <ref-classes-deploy>` class, the
1832 is set in the :ref:`deploy <ref-classes-deploy>` class as follows::
1834 DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
1836 Recipes inheriting the :ref:`deploy <ref-classes-deploy>` class should copy files to be
1855 and resides in the ``meta-poky/conf/distro`` directory of the
1866 spaces, and is typically all lower-case.
1878 Specifies a list of distro-specific packages to add to all images.
1879 This variable takes effect through ``packagegroup-base`` so the
1880 variable only really applies to the more full-featured images that
1881 include ``packagegroup-base``. You can use this variable to keep
1886 Specifies a list of distro-specific packages to add to all images if
1899 :ref:`ref-tasks-configure` task for recipes that
1907 provide with this variable, see the ":ref:`ref-features-distro`" section.
1914 not intended to be user-configurable. It is best to just reference
1916 all distro configurations. See the ":ref:`ref-features-backfill`" section
1922 the ":ref:`ref-features-backfill`" section for more information.
1977 ``poky.conf`` and resides in the ``meta-poky/conf/distro`` directory
1999 A colon-separated list of overrides specific to the current
2019 ``conf/local.conf`` file. This directory is self-maintaining and you
2049 When inheriting the :ref:`compress_doc <ref-classes-compress_doc>`
2062 default is "grub-efi", but "systemd-boot" can be used instead.
2064 See the :ref:`systemd-boot <ref-classes-systemd-boot>` and
2065 :ref:`image-live <ref-classes-image-live>` classes for more
2074 When used with the :ref:`report-error <ref-classes-report-error>`
2077 tool <dev-manual/common-tasks:using the error reporting tool>`, which
2080 ``${``\ :term:`LOG_DIR`\ ``}/error-report``.
2093 ":ref:`ref-classes-insane`" section.
2098 :ref:`populate-sdk-ext <ref-classes-populate-sdk-*>` class sets the
2108 ":ref:`sdk-manual/appendix-customizing:configuring the extensible sdk`"
2116 :ref:`populate-sdk-ext <ref-classes-populate-sdk-*>` class.
2127 ":ref:`sdk-manual/appendix-customizing:configuring the extensible sdk`"
2139 :ref:`populate-sdk-ext <ref-classes-populate-sdk-*>` class and
2142 - :term:`CONF_VERSION`
2143 - :term:`BB_NUMBER_THREADS`
2144 - :term:`BB_NUMBER_PARSE_THREADS`
2145 - :term:`PARALLEL_MAKE`
2146 - :term:`PRSERV_HOST`
2147 - :term:`SSTATE_MIRRORS` :term:`DL_DIR`
2148 - :term:`SSTATE_DIR` :term:`TMPDIR`
2149 - :term:`BB_SERVER_TIMEOUT`
2153 ":ref:`sdk-manual/appendix-customizing:configuring the extensible sdk`"
2165 :ref:`ref-tasks-package` task. You should be aware that the shared
2210 RDEPENDS:${PN}-additional-module = "${PN} (= ${EXTENDPKGV})"
2213 manager to upgrade these types of packages in lock-step.
2223 :ref:`kernel-yocto <ref-classes-kernel-yocto>` class in
2227 When inheriting the :ref:`externalsrc <ref-classes-externalsrc>`
2233 See the ":ref:`ref-classes-externalsrc`" section for details. You
2235 ":ref:`dev-manual/common-tasks:building software from an external source`"
2239 When inheriting the :ref:`externalsrc <ref-classes-externalsrc>`
2246 See the ":ref:`ref-classes-externalsrc`" section for details. You
2248 ":ref:`dev-manual/common-tasks:building software from an external source`"
2252 For recipes inheriting the :ref:`autotools <ref-classes-autotools>`
2255 :ref:`ref-tasks-configure` task.
2257 The default value is "--exclude=autopoint".
2275 - "dbg-pkgs" - Adds -dbg packages for all installed packages including
2278- "debug-tweaks" - Makes an image suitable for debugging. For example, allows root logins without …
2279 enables post-installation logging. See the 'allow-empty-password' and
2280 'post-install-logging' features in the ":ref:`ref-features-image`"
2282 - "dev-pkgs" - Adds -dev packages for all installed packages. This is
2284 - "read-only-rootfs" - Creates an image whose root filesystem is
2285 read-only. See the
2286 ":ref:`dev-manual/common-tasks:creating a read-only root filesystem`"
2289 - "tools-debug" - Adds debugging tools such as gdb and strace.
2290 - "tools-sdk" - Adds development tools such as gcc, make,
2292 - "tools-testapps" - Adds useful testing tools
2296 Project, see the ":ref:`ref-features-image`" section.
2299 …variable, see the ":ref:`dev-manual/common-tasks:customizing images using custom \`\`image_feature…
2308 EXTRA_IMAGECMD:ext3 ?= "-i 4096"
2326 :ref:`cmake <ref-classes-cmake>` class for additional information.
2344 When inheriting the :ref:`scons <ref-classes-scons>` class, this
2349 When inheriting the :ref:`extrausers <ref-classes-extrausers>`
2353 :ref:`useradd <ref-classes-useradd>` class, which ties user and
2357 … :term:`EXTRA_USERS_PARAMS` is shown in the :ref:`extrausers <ref-classes-extrausers>` class. These
2361 # useradd -p '' tester; \
2364 # groupdel -g video; \
2365 # groupmod -g 1020 developers; \
2366 # usermod -s /bin/sh tester; \
2369 Hardcoded passwords are supported via the ``-p`` parameters for
2372 Here is an example that adds two users named "tester-jim" and "tester-sue" and assigns
2375 printf "%q" $(mkpasswd -m sha256crypt tester01)
2380 PASSWD = "\$X\$ABC123\$A-Long-Hash"
2382 useradd -p '${PASSWD}' tester-jim; \
2383 useradd -p '${PASSWD}' tester-sue; \
2390 usermod -p '${PASSWD}' root; \
2400 Additionally there is a special ``passwd-expire`` command that will
2404 EXTRA_USERS_PARAMS += " useradd myuser; passwd-expire myuser;"
2408 At present, ``passwd-expire`` may only work for remote logins when
2441 document-root that provides the metadata and packages required by
2442 OPKG to support runtime package management of IPK packages. You set
2447 FEED_DEPLOYDIR_BASE_URI = "http://192.168.7.1/BOARD-dir"
2451 named ``BOARD-dir``, which is underneath your HTTP server's
2452 document-root. In this case, the OpenEmbedded build system generates
2462 identifies the resulting package. Then, provide a space-separated
2470 - When specifying files or paths, you can pattern match using
2476 - When specifying paths as part of the :term:`FILES` variable, it is
2487 package update process by the Package Management System (PMS), you
2548 a :term:`MACHINE`-specific override, which is useful
2551 FILESEXTRAPATHS:prepend:intel-x86-common := "${THISDIR}/${PN}:"
2554 ``linux-yocto-dev.bbappend`` file, which is found in the
2555 :ref:`overview-manual/development-environment:yocto project source repositories` in
2556 ``meta-intel/common/recipes-kernel/linux``. Here, the machine
2558 definition for multiple ``meta-intel`` machines.
2578 … ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:conditional syntax (overrides)`"
2587 Do not hand-edit the :term:`FILESOVERRIDES` variable. The values match up
2601 :ref:`ref-classes-base` class found in ``meta/classes`` in the
2613 - Do not hand-edit the :term:`FILESPATH` variable. If you want the
2618 - Be aware that the default :term:`FILESPATH` directories do not map
2627 for general and machine-specific configurations::
2642 ":ref:`overview-manual/concepts:patching`" section
2644 ":ref:`dev-manual/common-tasks:patching code`" section in
2646 :ref:`ref-tasks-patch` task as well.
2655 By default, the OpenEmbedded build system uses the ``fs-perms.txt``,
2664 ``fs-perms.txt``. You can specify more than a single file permissions
2669 table file, examine the existing ``fs-perms.txt``.
2673 value is set by the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>`
2676 FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}"
2698 fitImage. The default value is "-F4". i.e. the public exponent 65537 to
2703 The default value is "-batch -new". batch for non interactive mode
2715 If set to "1", then the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>`
2719 U-Boot.
2726 When inheriting the :ref:`fontcache <ref-classes-fontcache>` class,
2728 By default, the :term:`FONT_EXTRA_RDEPENDS` is set to "fontconfig-utils".
2731 When inheriting the :ref:`fontcache <ref-classes-fontcache>` class,
2733 … be cached by Fontconfig. By default, the :ref:`fontcache <ref-classes-fontcache>` class assumes
2746 compiling an optimized system. This variable defaults to "-O2 -pipe
2757 GCCPIE ?= "--enable-default-pie"
2762 ``meta/conf/distro/include/tcmode-default.inc`` include file::
2776 See the ":ref:`dev-manual/common-tasks:enabling gobject introspection support`"
2789 If you specifically remove the locale ``en_US.UTF-8``, you must set
2796 GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
2799 When inheriting the :ref:`useradd <ref-classes-useradd>` class,
2806 GROUPADD_PARAM:${PN} = "-r netdev"
2812 When inheriting the :ref:`useradd <ref-classes-useradd>` class,
2826 See the :ref:`grub-efi <ref-classes-grub-efi>` class for more
2831 configuration. Use a semi-colon character (``;``) to separate
2835 :ref:`grub-efi <ref-classes-grub-efi>` class for more information
2843 :ref:`grub-efi <ref-classes-grub-efi>` class for more information
2848 :ref:`gtk-immodules-cache <ref-classes-gtk-immodules-cache>` class,
2864 - arm
2865 - i586
2866 - x86_64
2867 - powerpc
2868 - powerpc64
2869 - mips
2870 - mipsel
2873 Specifies architecture-specific compiler flags that are passed to the
2879 - :term:`TARGET_CC_ARCH` when building for the
2882 - :term:`BUILD_CC_ARCH` when building for the build host (i.e.
2883 ``-native``)
2885 - ``BUILDSDK_CC_ARCH`` when building for an SDK (i.e.
2886 ``nativesdk-``)
2891 be set to "linux" for ``glibc``-based systems and to "linux-musl" for
2892 ``musl``. For ARM/EABI targets, there are also "linux-gnueabi" and
2893 "linux-musleabi" values possible.
2896 Specifies the prefix for the cross-compile toolchain. :term:`HOST_PREFIX`
2915 - Given a native recipe on a 32-bit x86 machine running Linux, the
2916 value is "i686-linux".
2918 - Given a recipe being built for a little-endian MIPS target running
2919 Linux, the value might be "mipsel-linux".
2926 A space-separated list (filter) of tools on the build host that
2937 A space-separated list (filter) of tools on the build host that
2948 :ref:`icecc <ref-classes-icecc>` class. You set this variable in
2958 variable, see the ":ref:`ref-classes-icecc`"
2971 Points to the ``icecc-create-env`` script that you provide. This
2972 variable is used by the :ref:`icecc <ref-classes-icecc>` class. You
2977 ``icecc-create-env.bb`` recipe, which is a modified version and not
2982 :ref:`ref-tasks-compile` task that specify parallel
2983 compilation. This variable usually takes the form of "-j x", where x
2997 rule-of-thumb for setting :term:`ICECC_PARALLEL_MAKE` to achieve optimal
3007 this variable, the :ref:`icecc <ref-classes-icecc>` class attempts
3013 :ref:`icecc <ref-classes-icecc>` class. You set this variable in
3025 :ref:`icecc <ref-classes-icecc>` class. You set this variable in
3033 A space-separated list of files installed into the boot partition
3035 ``bootimg-partition`` source plugin. By default,
3038 installed name, separate it from the original name with a semi-colon
3043 IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
3044 IMAGE_BOOT_FILES = "u-boot.${UBOOT_SUFFIX} ${KERNEL_IMAGETYPE}"
3049 within the target location, pass its name after a semi-colon (;).
3052 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*"
3053 IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
3056 installs all files from ``${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles``
3061 ":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
3064 ":doc:`/ref-manual/kickstart`" chapter.
3085 IMAGE_CMD:jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime \
3086 --output=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.jffs2 \
3091 variable, see the :ref:`image_types <ref-classes-image_types>`
3099 ``files/device_table-minimal.txt`` is used, which is located by
3101 device table files, see ``meta/files/device_table-minimal.txt`` as an
3105 A space-separated list of files installed into the boot partition
3107 ``bootimg-efi`` source plugin. By default,
3110 installed name, separate it from the original name with a semi-colon
3121 within the target location, pass its name after a semi-colon (;).
3133 ":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
3136 ":doc:`/ref-manual/kickstart`" chapter.
3151 the ":ref:`ref-features-image`" section.
3154 …variable, see the ":ref:`dev-manual/common-tasks:customizing images using custom \`\`image_feature…
3170 - If an image recipe uses the "inherit image" line and you are
3174 - Due to the way the OpenEmbedded build system processes this
3181 through the :ref:`image <ref-classes-image>` class. Use the
3185 install into an image through :ref:`ref-classes-image`. Additionally,
3187 :ref:`core-image <ref-classes-core-image>` class which can
3189 auto-generated entries in :term:`IMAGE_INSTALL` in addition to its
3194 IMAGE_INSTALL:append = " package-name"
3202 - When working with a
3203 :ref:`core-image-minimal-initramfs <ref-manual/images:images>`
3210 ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`"
3213 - Using :term:`IMAGE_INSTALL` with the
3214 …:ref:`+= <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:appending (+=) and prepending (…
3218 :ref:`ref-classes-core-image` sets :term:`IMAGE_INSTALL` to a default
3220 … :ref:`?= <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:setting a default value (?=)>`
3237 IMAGE_LINGUAS = "pt-br de-de"
3241 installed (i.e. ``*-locale-pt-br`` and ``*-locale-de-de`` as well as
3242 ``*-locale-pt`` and ``*-locale-de``, since some software packages
3243 only provide locale files by language and not by country-specific
3256 IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}-${MACHINE}"
3262 information on a line-per-package basis as follows::
3266 The :ref:`rootfs-postcommands <ref-classes-rootfs*>` class defines the manifest
3274 … information on how the image is created in the ":ref:`overview-manual/concepts:image generation`"
3283 IMAGE_NAME ?= "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
3286 Suffix used for the image output filename - defaults to ``".rootfs"``
3302 post install scripts and the package management system uses disk
3323 the :ref:`package_deb <ref-classes-package_deb>`,
3324 :ref:`package_rpm <ref-classes-package_rpm>`,
3325 :ref:`package_ipk <ref-classes-package_ipk>`, or
3326 :ref:`package_tar <ref-classes-package_tar>` class.
3333 The :ref:`populate_sdk_* <ref-classes-populate-sdk-*>` and
3334 :ref:`image <ref-classes-image>` classes use the :term:`IMAGE_PKGTYPE`
3339 :ref:`package_* <ref-classes-package>` class using the
3378 (i.e. during the :ref:`ref-tasks-rootfs` task). This
3415 if (image-du * overhead) < rootfs-size:
3416 internal-rootfs-size = rootfs-size + xspace
3418 internal-rootfs-size = (image-du * overhead) + xspace
3420 image-du = Returned value of the du command on the image.
3422 rootfs-size = IMAGE_ROOTFS_SIZE
3423 internal-rootfs-size = Initial root filesystem size before any modifications.
3432 example from the :ref:`image-live <ref-classes-image-live>` class::
3445 - btrfs
3446 - container
3447 - cpio
3448 - cpio.gz
3449 - cpio.lz4
3450 - cpio.lzma
3451 - cpio.xz
3452 - cramfs
3453 - erofs
3454 - erofs-lz4
3455 - erofs-lz4hc
3456 - ext2
3457 - ext2.bz2
3458 - ext2.gz
3459 - ext2.lzma
3460 - ext3
3461 - ext3.gz
3462 - ext4
3463 - ext4.gz
3464 - f2fs
3465 - hddimg
3466 - iso
3467 - jffs2
3468 - jffs2.sum
3469 - multiubi
3470 - squashfs
3471 - squashfs-lz4
3472 - squashfs-lzo
3473 - squashfs-xz
3474 - tar
3475 - tar.bz2
3476 - tar.gz
3477 - tar.lz4
3478 - tar.xz
3479 - tar.zst
3480 - ubi
3481 - ubifs
3482 - wic
3483 - wic.bz2
3484 - wic.gz
3485 - wic.lzma
3493 Defaults to ``"-${DATETIME}"``, however you could set this to a
3499 When inheriting the :ref:`image <ref-classes-image>` class directly or
3500 through the :ref:`core-image <ref-classes-core-image>` class, the
3504 IMGDEPLOYDIR = "${WORKDIR}/deploy-${PN}-image-complete"
3536 recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
3537 recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
3538 recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
3539 recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
3548 Specifies a space-separated list of license names (as they would
3558 - ``AGPL-3.0*"``: ``AGPL-3.0-only``, ``AGPL-3.0-or-later``
3559 - ``GPL-3.0*``: ``GPL-3.0-only``, ``GPL-3.0-or-later``
3560 - ``LGPL-3.0*``: ``LGPL-3.0-only``, ``LGPL-3.0-or-later``
3567 INCOMPATIBLE_LICENSE = "GPL-3.0* LGPL-3.0* AGPL-3.0*"
3581 …:ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:\`\`inherit\`\` configuration direc…
3591 INHERIT_DISTRO ?= "debian devshell sstate license"
3606 :ref:`ref-tasks-package` task. For more information on
3619 packages and prevents the ``-dbg`` package from containing the source
3623 the debugging symbols into ``${``\ :term:`PN`\ ``}-dbg``.
3637 :ref:`staging <ref-classes-staging>` class. This class uses a
3645 bare-metal firmware by using an external GCC toolchain. Furthermore,
3653 :ref:`kernel <ref-classes-kernel>` class and it's only meant to be changed
3674 filesystem recipe you might be using (e.g. ``core-image-sato``). The
3685 See the ``meta/recipes-core/images/core-image-minimal-initramfs.bb``
3689 to "core-image-minimal-initramfs".
3692 ``meta-poky/conf/local.conf.sample.extended`` configuration file in
3693 the Source Directory, the :ref:`image <ref-classes-image>` class,
3694 and the :ref:`kernel <ref-classes-kernel>` class to see how to use
3704 …image, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image…
3711 (:ref:`ref-tasks-bundle_initramfs`) during
3743 :ref:`kernel <ref-classes-kernel>` class sets this variable to a
3754 :yocto_git:`local.conf.sample.extended </poky/tree/meta-poky/conf/local.conf.sample.extended>`
3756 …initramfs, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) i…
3761 set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
3764 INITRAMFS_LINK_NAME ?= "initramfs-${KERNEL_ARTIFACT_LINK_NAME}"
3776 …nfig to create a multiconfig dependency to be used by the :ref:`kernel <ref-classes-kernel>` class.
3782 …multiconfig see the ":ref:`dev-manual/common-tasks:Bundling an Initramfs Image From a Separate Mul…
3787 set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
3790 INITRAMFS_NAME ?= "initramfs-${KERNEL_ARTIFACT_NAME}"
3795 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
3802 :ref:`image-live <ref-classes-image-live>` class.
3809 "core-image-minimal-initramfs".
3811 See the :ref:`image-live <ref-classes-image-live>` class for more
3818 This variable is used in recipes when using :ref:`ref-classes-update-rc.d`.
3826 This variable is used in recipes when using :ref:`ref-classes-update-rc.d`.
3831 Specifies the options to pass to ``update-rc.d``. Here is an example::
3839 :ref:`update-rc.d <ref-classes-update-rc.d>` class.
3842 ``update-rc.d`` command. For more information on valid parameters,
3843 please see the ``update-rc.d`` manual page at
3844 https://manpages.debian.org/buster/init-system-helpers/update-rc.d.8.en.html
3853 INSANE_SKIP:${PN} += "dev-so"
3855 See the ":ref:`ref-classes-insane`" section for a
3864 When the IPK backend is in use and package management is enabled on
3874 - powerpc
3875 - i386
3876 - x86_64
3877 - arm
3878 - qemu
3879 - mips
3881 You define the :term:`KARCH` variable in the :ref:`kernel-dev/advanced:bsp descriptions`.
3891 ``linux-yocto_4.12`` kernel, the kernel recipe file is the
3892 ``meta/recipes-kernel/linux/linux-yocto_4.12.bb`` file. :term:`KBRANCH`
3900 append file (i.e. ``linux-yocto_4.12.bbappend``) is located in the
3902 Beaglebone, EdgeRouter, and generic versions of both 32 and 64-bit IA
3903 machines (``meta-yocto-bsp``) is named
3904 ``meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.12.bbappend``.
3908 KBRANCH:genericx86-64 = "standard/base"
3917 When used with the :ref:`kernel-yocto <ref-classes-kernel-yocto>`
3918 class, specifies an "in-tree" kernel configuration file for use
3924 "out-of-tree"). However, if you want to use a ``defconfig`` file that
3925 is part of the kernel tree (i.e. "in-tree"), you can use the
3942 KBUILD_DEFCONFIG:pn-linux-yocto ?= "defconfig_file"
3946 ":ref:`kernel-dev/common:using an "in-tree" \`\`defconfig\`\` file`"
3950 When used with the :ref:`kernel-yocto <ref-classes-kernel-yocto>`
3963 the ``defconfig`` file is coming from. An "in-tree" ``defconfig`` file
3965 in ``${WORKDIR}`` through a meta-layer will be handled in
3968 An "in-tree" ``defconfig`` file can be selected via the
3975 kernel ``${WORKDIR}`` through your meta-layer. :term:`KCONFIG_MODE` does
3980 :ref:`ref-tasks-savedefconfig`
3982 meta-layer. Explicitely set :term:`KCONFIG_MODE`::
3998 ``meta/classes/kernel-artifact-names.bbclass`` file, has the
4001 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
4008 :ref:`kernel <ref-classes-kernel>` class should inherit. You
4010 example is the "kernel-fitimage", which enables fitImage support and
4011 resides in ``meta/classes/kernel-fitimage.bbclass``. You can register
4012 custom kernel image types with the :ref:`kernel <ref-classes-kernel>` class using this
4030 :ref:`kernel-devicetree <ref-classes-kernel-devicetree>` class must
4035 is set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
4051 is set in the ``meta/classes/kernel-artifact-names.bbclass`` file as
4059 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
4067 :ref:`kernel-devicetree <ref-classes-kernel-devicetree>` class must
4071 Specifies additional ``make`` command-line arguments the OpenEmbedded
4089 For example, the following example from the ``linux-yocto-rt_4.12``
4098 KERNEL_FEATURES:append:qemux86-64 = "cfg/sound.scc"
4102 variable is set in the ``meta/classes/kernel-artifact-names.bbclass``
4118 variable is set in the ``meta/classes/kernel-artifact-names.bbclass``
4126 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
4130 ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
4147 :ref:`ref-tasks-sizecheck` task. The task fails if
4158 ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
4166 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
4179 Lists kernel modules that need to be auto-loaded during boot.
4187 can be recognized by the kernel recipe or by an out-of-tree kernel
4197 system to populate the ``/etc/modules-load.d/modname.conf`` file with
4198 the list of modules to be auto-loaded on boot. The modules appear
4199 one-per-line in the file. Here is an example of the most common use
4217 the :ref:`module <ref-classes-module>` class. For information on
4219 ":ref:`kernel-dev/common:incorporating out-of-tree modules`"
4222 To help maximize compatibility with out-of-tree drivers used to build
4231 the :ref:`module <ref-classes-module>` class. For information on
4233 ":ref:`kernel-dev/common:incorporating out-of-tree modules`"
4236 To help maximize compatibility with out-of-tree drivers used to build
4270 OpenEmbedded build system understands as ``core2-32-intel-common``
4272 understands that machine as ``intel-core2-32``. For cases like these,
4278 ``common/recipes-kernel/linux/linux-yocto_3.19.bbappend`` file::
4280 LINUX_VERSION:core2-32-intel-common = "3.19.0"
4281 COMPATIBLE_MACHINE:core2-32-intel-common = "${MACHINE}"
4282 SRCREV_meta:core2-32-intel-common = "8897ef68b30e7426bc1d39895e71fb155d694974"
4283 SRCREV_machine:core2-32-intel-common = "43b9eced9ba8a57add36af07736344dcc383f711"
4284 KMACHINE:core2-32-intel-common = "intel-core2-32"
4285 KBRANCH:core2-32-intel-common = "standard/base"
4286 KERNEL_FEATURES:append:core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
4289 that the kernel understands the machine name as "intel-core2-32".
4291 "core2-32-intel-common".
4295 The linux-yocto recipes define "standard", "tiny", and "preempt-rt"
4296 kernel types. See the ":ref:`kernel-dev/advanced:kernel types`"
4302 :ref:`kernel-dev/advanced:bsp descriptions`. The
4310 See the :ref:`grub-efi <ref-classes-grub-efi>` class for more
4353 Lists the versions of the :term:`OpenEmbedded-Core (OE-Core)` for which
4356 layer and OE-Core can be expected to work. The variable gives the
4358 releases of OE-Core (e.g. the layer is not maintained).
4360 To specify the OE-Core versions for which a layer is compatible, use
4364 &DISTRO_NAME_NO_CAP;). To specify multiple OE-Core versions for the
4365 layer, use a space-separated list::
4376 See the ":ref:`dev-manual/common-tasks:creating your own layer`"
4398 - :term:`TARGET_LDFLAGS` when building for the
4401 - :term:`BUILD_LDFLAGS` when building for the
4402 build host (i.e. ``-native``)
4404 - :term:`BUILDSDK_LDFLAGS` when building for
4405 an SDK (i.e. ``nativesdk-``)
4409 that the :ref:`debian <ref-classes-debian>` class applies its
4412 This variable works in conjunction with the :ref:`debian <ref-classes-debian>` class.
4425 For more information, see the ":ref:`dev-manual/common-tasks:tracking license changes`"
4431 - Do not use spaces within individual license names.
4433 - Separate license names using \| (pipe) when there is a choice
4436 - Separate license names using & (ampersand) when there are
4439 - You can use spaces between license names.
4441 - For standard licenses, use the names of the files in
4442 ``meta/files/common-licenses/`` or the
4448 LICENSE = "LGPL-2.1-only | GPL-3.0-only"
4449 LICENSE = "MPL-1.0 & LGPL-2.1-only"
4450 LICENSE = "GPL-2.0-or-later"
4459 You can also specify licenses on a per-package basis to handle
4465 LICENSE = "GFDL-1.2 & GPL-2.0-only"
4466 LICENSE:${PN} = "GPL-2.0.only"
4467 LICENSE:${PN}-doc = "GFDL-1.2"
4472 ``${``\ :term:`PN`\ ``}-lic``) for each recipe and to add
4476 The ``${PN}-lic`` package installs a directory in
4480 from ``meta/common-licenses`` that match the licenses specified in
4489 ":ref:`dev-manual/common-tasks:providing license text`"
4502 ":ref:`dev-manual/common-tasks:enabling commercially licensed recipes`"
4509 ":ref:`dev-manual/common-tasks:enabling commercially licensed recipes`"
4519 LICENSE_PATH += "path-to-additional-common-licenses"
4523 The linux-yocto recipes define "standard", "tiny", and "preempt-rt"
4524 kernel types. See the ":ref:`kernel-dev/advanced:kernel types`"
4540 ``linux-yocto-3.4.bb`` kernel recipe found in
4541 ``meta/recipes-kernel/linux`` defines the variables as follows::
4553 variable in the kernel recipe. For example, the linux-yocto kernel
4556 LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}"
4563 $ uname -r
4564 3.7.0-rc8-custom
4577 "qemux86", which is an x86-based architecture machine to be emulated
4583 name, through which machine-specific configurations are set. Thus,
4598 MACHINE ?= "qemux86-64"
4600 MACHINE ?= "genericx86-64"
4605 boards, which are provided in the ``meta-yocto-bsp`` layer.
4613 Specifies the name of the machine-specific architecture. This
4615 :term:`TUNE_PKGARCH`. You should not hand-edit
4619 A list of required machine-specific packages to install as part of
4621 being present. Furthermore, because this is a "machine-essential"
4624 ``packagegroup-core-boot``, including the ``core-image-minimal``
4634 requires ``example-init`` to be run during boot to initialize the
4638 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "example-init"
4641 A list of recommended machine-specific packages to install as part of
4644 "machine-essential" variable, the list of packages are essential for
4646 on ``packagegroup-core-boot``, including the ``core-image-minimal``
4666 package for the module was called ``kernel-module-ab123``, you would
4669 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-module-ab123"
4673 In this example, the ``kernel-module-ab123`` recipe needs to
4682 A list of machine-specific packages to install as part of the image
4684 the build process for more fully-featured images depends on the
4687 This variable affects all images based on ``packagegroup-base``,
4688 which does not include the ``core-image-minimal`` or
4689 ``core-image-full-cmdline`` images.
4698 more fully-featured image, you want to enable the WiFi. The package
4702 firmware was called ``wifidriver-firmware``, you would use the
4705 MACHINE_EXTRA_RDEPENDS += "wifidriver-firmware"
4708 A list of machine-specific packages to install as part of the image
4712 This variable affects only images based on ``packagegroup-base``,
4713 which does not include the ``core-image-minimal`` or
4714 ``core-image-full-cmdline`` images.
4723 more fully-featured image, you want to enable WiFi. In this case, the
4728 module was called ``kernel-module-examplewifi``, you would use the
4731 MACHINE_EXTRA_RRECOMMENDS += "kernel-module-examplewifi"
4742 shipped, see the ":ref:`ref-features-machine`" section.
4749 not intended to be user-configurable. It is best to just reference
4751 all machine configurations. See the ":ref:`ref-features-backfill`"
4757 the ":ref:`ref-features-backfill`" section for more information.
4760 A colon-separated list of overrides that apply to the current
4774 in QEMU, like in the following example from the ``connman-conf``
4778 file://wired-setup \
4789 The branch currently checked out for the OpenEmbedded-Core layer (path
4793 The revision currently checked out for the OpenEmbedded-Core layer (path
4806 ``conf/distro/poky.conf`` file in the ``meta-poky`` Git repository.
4825 If that recipe declares build-time dependencies on tasks in other
4828 "nativesdk-foo". However, dependencies like the following will not
4857 kernel recipe or out-of-tree kernel module recipe (e.g. a machine
4866 module_conf_module_name = "modprobe.d-syntax"
4880 For information on how to specify kernel modules to auto-load on
4884 Controls creation of the ``modules-*.tgz`` file. Set this variable to
4890 the ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
4904 the ``meta/classes/kernel-artifact-names.bbclass`` file as follows::
4911 KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
4921 ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
4924 :ref:`cross-canadian <ref-classes-cross-canadian>`) modify the
4933 ``lsb_release`` tool or as read from ``/etc/lsb-release``. For
4935 "Ubuntu-12.10". If this information is unable to be determined, the
4949 Avoids QA errors when you use a non-common, non-CLOSED license in a
4950 recipe. There are packages, such as the linux-firmware package, with many
4966 NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
4969 Prevents installation of all "recommended-only" packages.
4970 Recommended-only packages are packages installed only through the
4980 NO_RECOMMENDATIONS:pn-target_image = "1"
5003 requires ``FILES:${PN}-dbg`` to be set manually, the
5008 FILES:${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
5009 FILES:${PN}-dbg = "/usr/src/debug/"
5010 FILES:${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"
5013 A list of recipes that should not be built for multilib. OE-Core's
5017 NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts ovmf u-boot"
5026 When inheriting the :ref:`binconfig <ref-classes-binconfig>` class,
5049 value is "oe-init-build-env".
5057 command with the ``-c devshell`` command-line option). For more
5058 information, see the ":ref:`dev-manual/common-tasks:using a development shell`" section in
5063 - auto
5064 - gnome
5065 - xfce
5066 - rxvt
5067 - screen
5068 - konsole
5069 - none
5072 The directory from which the top-level build environment setup script
5073 is sourced. The Yocto Project provides a top-level build environment
5074 setup script: :ref:`structure-core-script`. When you run this
5092 A colon-separated list of overrides that currently apply. Overrides
5099 As an example, if the string "an-override" appears as an element in
5100 the colon-separated list in :term:`OVERRIDES`, then the following
5104 FOO:an-override = "overridden"
5107 … ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:conditional syntax (overrides)`"
5115 important override included by default is ``pn-${PN}``. This override
5119 FOO:pn-myrecipe = "myrecipe-specific value"
5124 in the output of the ``bitbake -e`` command. See the
5125 ":ref:`dev-manual/common-tasks:viewing variable values`" section in the Yocto
5131 ${PN}-${PV}
5146 ":ref:`dev-manual/common-tasks:adding custom metadata to packages`"
5155 build host, and "${SDK_ARCH}-${SDKPKGSUFFIX}" when building for the
5172 hand-edited. Entries are separated using spaces and listed in order
5210 ":ref:`ref-classes-package`" section.
5223 - "``.debug``": All debugging and source info is placed in a single
5224 ``*-dbg`` package; debug symbol files are placed next to the
5227 in ``/bin/.debug``. Source files are installed in the same ``*-dbg``
5230 - "``debug-file-directory``": As above, all debugging and source info
5231 is placed in a single ``*-dbg`` package; debug symbol files are
5238 - "``debug-with-srcpkg``": Debugging info is placed in the standard
5239 ``*-dbg`` package as with the ``.debug`` value, while source is
5240 placed in a separate ``*-src`` package, which can be installed
5244 - "``debug-without-src``": The same behavior as with the ``.debug``
5253 … ":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) remotely`" section
5266 PACKAGE_EXCLUDE:pn-target_image = "package_name"
5290 ``dev-pkgs``, you might not want to install all packages from a
5298 that use miscellaneous processors such as XScale and ARM926-EJS.
5324 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
5325 PACKAGE_FEED_ARCHS = "all core2-64"
5329 .. code-block:: none
5332 https://example.com/packagerepos/release/rpm/core2-64
5333 https://example.com/packagerepos/release/rpm-dev/all
5334 https://example.com/packagerepos/release/rpm-dev/core2-64
5336 https://example.com/packagerepos/updates/rpm/core2-64
5337 https://example.com/packagerepos/updates/rpm-dev/all
5338 https://example.com/packagerepos/updates/rpm-dev/core2-64
5353 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
5354 PACKAGE_FEED_ARCHS = "all core2-64"
5358 .. code-block:: none
5361 https://example.com/packagerepos/release/rpm/core2-64
5362 https://example.com/packagerepos/release/rpm-dev/all
5363 https://example.com/packagerepos/release/rpm-dev/core2-64
5365 https://example.com/packagerepos/updates/rpm/core2-64
5366 https://example.com/packagerepos/updates/rpm-dev/all
5367 https://example.com/packagerepos/updates/rpm-dev/core2-64
5382 PACKAGE_FEED_BASE_PATHS = "rpm rpm-dev"
5383 PACKAGE_FEED_ARCHS = "all core2-64"
5387 .. code-block:: none
5390 https://example.com/packagerepos/release/rpm/core2-64
5391 https://example.com/packagerepos/release/rpm-dev/all
5392 https://example.com/packagerepos/release/rpm-dev/core2-64
5394 https://example.com/packagerepos/updates/rpm/core2-64
5395 https://example.com/packagerepos/updates/rpm-dev/all
5396 https://example.com/packagerepos/updates/rpm-dev/core2-64
5409 the :ref:`core-image-minimal-initramfs <ref-manual/images:images>`
5412 …initramfs, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) i…
5419 is generally not user-defined.
5422 Specifies a list of functions run to pre-process the
5427 Specifies a list of dependencies for post-installation and
5428 pre-installation scripts on native/cross tools. If your
5429 post-installation or pre-installation script can execute at root filesystem
5434 For information on running post-installation scripts, see the
5435 ":ref:`dev-manual/common-tasks:post-installation scripts`"
5440 recipe on a per-recipe basis. :term:`PACKAGECONFIG` blocks are defined in
5447 --with-f1, \
5448 --without-f1, \
5449 build-deps-for-f1, \
5450 runtime-deps-for-f1, \
5451 runtime-recommends-for-f1, \
5452 packageconfig-conflicts-for-f1"
5456 The :term:`PACKAGECONFIG` variable itself specifies a space-separated
5459 order-dependent arguments, which are separated by commas. You can
5489 PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3"
5492 ``--with-gtk3`` and ``gtk+3`` arguments apply only if the feature is
5493 enabled. In this case, ``--with-gtk3`` is added to the configure
5496 file in another layer, then the second argument ``--without-gtk3`` is
5506 - *Append file:* Create an append file named
5517 - *Configuration file:* This method is identical to changing the
5522 PACKAGECONFIG:pn-recipename = "f4 f5"
5526 PACKAGECONFIG:append:pn-recipename = " f4"
5529 A space-separated list of configuration options generated from the
5532 Classes such as :ref:`autotools <ref-classes-autotools>` and
5533 :ref:`cmake <ref-classes-cmake>` use :term:`PACKAGECONFIG_CONFARGS` to
5541 :ref:`packagegroup <ref-classes-packagegroup>` class, setting
5543 normal complementary packages (i.e. ``-dev``, ``-dbg``, and so forth)
5551 … ${PN}-src ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
5553 During packaging, the :ref:`ref-tasks-package` task
5562 :ref:`ref-tasks-install` task) are not generated,
5577 :ref:`ref-tasks-rootfs` task.
5586 ":ref:`dev-manual/common-tasks:handling optional module packaging`"
5601 :ref:`ref-tasks-compile` task in order to specify
5603 usually in the form "-j x", where x represents the maximum number of
5621 ":ref:`dev-manual/common-tasks:debugging parallel make races`"
5628 not set higher than "-j 20".
5631 ":ref:`dev-manual/common-tasks:speeding up a build`"
5636 :ref:`ref-tasks-install` task in order to specify
5651 ":ref:`dev-manual/common-tasks:debugging parallel make races`"
5668 :ref:`ref-tasks-patch` task. You can specify one of
5670 is "quilt" except for the quilt-native recipe itself. Because the
5671 quilt tool is not available at the time quilt-native is being
5690 <ref-classes-python_pep517>` class, specifies the entry point to the
5691 PEP-517 compliant build API (such as ``flit_core.buildapi``).
5695 :ref:`python_pep517 <ref-classes-python_pep517>` class,
5701 revision numbers (i.e. ``glibc-2.13-r20+svnr15508/`` and
5702 ``bash-4.2-r1/``). This variable is comprised of the following:
5703 ${:term:`PN`}-${:term:`EXTENDPE`}${:term:`PV`}-${:term:`PR`}
5706 When inheriting the :ref:`pixbufcache <ref-classes-pixbufcache>`
5708 loaders used with ``gdk-pixbuf``. By default, the ``pixbufcache``
5721 For example, when the :ref:`debian <ref-classes-debian>` class
5726 The path to ``pkg-config`` files for the current build context.
5727 ``pkg-config`` reads this variable from the environment.
5739 Points to a shared, global-state directory that holds data generated
5741 :ref:`ref-tasks-packagedata` task packages data
5749 ":ref:`overview-manual/concepts:automatically added runtime dependencies`"
5751 ":ref:`dev-manual/common-tasks:viewing package information with \`\`oe-pkgdata-util\`\``"
5753 information on the shared, global-state directory, see
5761 ${WORKDIR}/packages-split
5769 :ref:`ref-tasks-package` task saves package metadata.
5776 The :ref:`ref-tasks-packagedata` task copies the
5807 native machine, :term:`PN` is ``bash-native``. Using ``bash`` to build
5809 and ``lib64-bash``, respectively.
5845 :ref:`input checksums <overview-manual/concepts:checksums (signatures)>` along with the
5846 :ref:`stamp <structure-build-tmp-stamps>` and
5847 :ref:`overview-manual/concepts:shared state cache`
5865 Because manually managing :term:`PR` can be cumbersome and error-prone,
5867 ":ref:`dev-manual/common-tasks:working with a pr service`" section
5878 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
5886 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
5890 information, see the ":ref:`dev-manual/common-tasks:using virtual providers`"
5915 PREFERRED_VERSION_linux-yocto = "5.0%"
5942 :term:`OVERRIDES` to set a machine-specific
5945 PREFERRED_VERSION_linux-yocto:qemux86 = "5.0%"
5951 PREFERRED_VERSION_linux-yocto:forcevariable = "5.0%"
5972 ``conf/distro/poky.conf`` file in the ``meta-poky`` Git repository.
6013 file name. For example, from the Firefox recipe in meta-browser::
6024 ":ref:`overview-manual/concepts:automatically added runtime dependencies`"
6070 example, ``VIRTUAL-RUNTIME_dev_manager`` refers to the package of
6076 VIRTUAL-RUNTIME_dev_manager = "udev"
6090 service <dev-manual/common-tasks:working with a pr service>`. You can
6095 A comma-separated (without spaces) list of path prefixes that should be ignored
6104 Test <dev-manual/common-tasks:testing packages with ptest>` (ptest)
6121 When inheriting the :ref:`pypi <ref-classes-pypi>` class, specifies the
6123 is set based upon :term:`BPN` (stripping any "python-" or "python3-"
6130 :ref:`setuptools3 <ref-classes-setuptools3>` class, denotes the
6141 :ref:`setuptools3 <ref-classes-setuptools3>` classe, specifies the
6149 DEPENDS += "${PYTHON_PN}-native"
6156 packaging; if ``empty-dirs`` appears in :term:`ERROR_QA` or
6161 :ref:`insane.bbclass <ref-classes-insane>`.
6183 Like all package-controlling variables, you must always use them in
6198 - =
6199 - <
6200 - >
6201 - <=
6202 - >=
6222 ":ref:`overview-manual/concepts:automatically added runtime dependencies`"
6228 :ref:`do_package_write_\* <ref-tasks-package_write_deb>` tasks.
6238 :ref:`ref-tasks-build` (not to be confused with
6239 :ref:`ref-tasks-compile`) task to the
6244 names of other packages - they cannot be recipe names. Although
6257 RDEPENDS:${PN}-dev += "perl"
6261 :term:`RDEPENDS` variable has the ``${PN}-dev`` package name as part of
6266 ``RDEPENDS:${PN}-dev`` includes ``${``\ :term:`PN`\ ``}``
6269 ``${PN}`` when modifying ``RDEPENDS:${PN}-dev``. Use the "+=" operator
6275 :ref:`debian <ref-classes-debian>` class uses this to rename
6290 - =
6291 - <
6292 - >
6293 - <=
6294 - >=
6308 For information on build-time dependencies, see the
6310 ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:tasks`" and
6311 … ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-execution:dependencies`" sections in the
6318 ``devtool check-upgrade-status`` command to display it, as explained
6319 in the ":ref:`ref-manual/devtool-reference:checking on the upgrade status of a recipe`"
6324 :ref:`features_check <ref-classes-features_check>`
6347 ":ref:`ref-classes-rm-work`" section for more
6359 prefer to have a read-only root filesystem and prefer to keep
6378 :ref:`image-live <ref-classes-image-live>` class.
6409 management is disabled in the image, several packages are removed
6410 including ``base-passwd``, ``shadow``, and ``update-alternatives``.
6444 As with all package-controlling variables, you must always use the
6448 RPROVIDES:${PN} = "widget-abi-2"
6479 RRECOMMENDS:${PN}-dev += "wireless_package_name"
6482 example, the package name (``${PN}-dev``) must appear as it would in
6484 by classes such as :ref:`ref-classes-debian`.
6496 - =
6497 - <
6498 - >
6499 - <=
6500 - >=
6514 As with all package-controlling variables, you must use this variable
6529 - =
6530 - <
6531 - >
6532 - <=
6533 - >=
6545 As with all package-controlling variables, you must always use this
6554 ``${``\ :term:`WORKDIR`\ ``}/${``\ :term:`BPN`\ ``}-${``\ :term:`PV`\ ``}``,
6557 anything other than ``${BPN}-${PV}``, or if the source code is
6563 top-level folder named ``poky`` and a default Build Directory at
6567 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19
6569 The unpacked source code resides in the ``db-5.1.19`` folder.
6573 :ref:`ref-tasks-fetch`. Since this path is different
6581 Specifies a list of command-line utilities that should be checked for
6590 as read from ``/etc/lsb-release``. Separate the list items with
6608 :ref:`populate_sdk_base <ref-classes-populate-sdk>` class to which
6617 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class defines
6642 file contains package information on a line-per-package basis as
6647 The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class
6689 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
6697 output. The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>`
6713 hand-edited. Entries are separated using spaces and listed in order
6715 noarch ${SDK_ARCH}-${SDKPKGSUFFIX}".
6731 ``nativesdk`` recipes. The default value is "${SDK_SYS}-".
6737 - do_populate_lic
6738 - do_package_qa
6739 - do_populate_sysroot
6740 - do_deploy
6762 file contains package information on a line-per-package basis as
6767 The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class
6787 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class as
6796 ":ref:`sdk-manual/appendix-customizing:changing the extensible sdk installer title`"
6803 ``devtool sdk-update`` within the extensible SDK.
6810 (``/meta-poky/conf/distro/poky.conf``) sets the default
6813 …SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
6823 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class as
6832 ":ref:`sdk-manual/appendix-customizing:changing the default sdk installation directory`"
6840 $ bitbake -c populate_sdk imagename
6846 ``conf/machine-sdk/`` in the enabled layers, for example ``aarch64``,
6848 :oe_git:`available in OpenEmbedded-Core </openembedded-core/tree/meta/conf/machine-sdk>`.
6867 The full path to the sysroot used for cross-compilation within an SDK
6873 management utilities can make use of this variable.
6920 EXTRA_IMAGE_FEATURES += "read-only-rootfs"
6924 :ref:`setuptools3 <ref-classes-setuptools3>` class, this variable can
6930 :ref:`setuptools3 <ref-classes-setuptools3>` class, this variable can
6936 :ref:`setuptools3 <ref-classes-setuptools3>` class, this variable should
6951 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "intone->mplayer2"
6955 You can use the special token ``"*"`` on the left-hand side of the
6956 dependency to match all recipes except the one on the right-hand
6959 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "*->quilt-native"
6961 In the previous example, all recipes except ``quilt-native`` ignore
6962 task signatures from the ``quilt-native`` recipe when determining
6993 should be either "le" for little-endian or "be" for big-endian.
7026 You must include ``conf/machine/include/soc-family.inc`` for this
7031 By default, this suffix is ".so.*" for all Linux-based systems and is
7040 ".so" for Linux-based systems and is defined in the
7044 ``FILES:${PN}-dev``.
7053 <https://reproducible-builds.org/specs/source-date-epoch/>`__.
7056 :oe_git:`meta/lib/oe/reproducible.py </openembedded-core/tree/meta/lib/oe/reproducible.py>`.
7087 :ref:`own-mirrors <ref-classes-own-mirrors>` class and then provide
7090 INHERIT += "own-mirrors"
7110 ``core-image-minimal`` for the ``qemux86-64`` machine, enabling this
7113 :ref:`create-spdx <ref-classes-create-spdx>` class with no option.
7127 ``tmp/deploy/spdx/MACHINE/recipes/recipe-packagename.tar.zst``
7136 ``core-image-minimal`` for the ``qemux86-64`` machine, enabling
7139 compared to just using the :ref:`create-spdx <ref-classes-create-spdx>`
7151 As a consequence, the ``spdx.json`` files under the ``by-namespace`` and
7160 ``core-image-minimal`` for the ``qemux86-64`` machine, enabling
7163 and the size of the ``IMAGE-MACHINE.spdx.tar.zst`` in
7166 :ref:`create-spdx <ref-classes-create-spdx>` class with no option.
7169 This option makes the SPDX output more human-readable, using
7181 ``meta/files/common-licenses/``. For the default :term:`SPDXLICENSEMAP`
7197 binary in the ``u-boot.inc`` include file, which is used in the
7198 U-Boot recipe.
7200 The SPL file type is set to "null" by default in the ``u-boot.inc``
7203 # Some versions of u-boot build an SPL (Second Program Loader) image that
7204 # should be packaged along with the u-boot binary as well as placed in the
7209 SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}"
7210 SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}"
7216 ":ref:`dev-manual/common-tasks:adding a layer using the \`\`bitbake-layers\`\` script`"
7227 There are standard and recipe-specific options. Here are standard ones:
7229 - ``apply`` - Whether to apply the patch or not. The default
7232 - ``striplevel`` - Which striplevel to use when applying the
7235 - ``patchdir`` - Specifies the directory in which the patch should
7241 - ``mindate`` - Apply the patch only if
7245 - ``maxdate`` - Apply the patch only if :term:`SRCDATE` is not later
7248 - ``minrev`` - Apply the patch only if :term:`SRCREV` is equal to or
7251 - ``maxrev`` - Apply the patch only if :term:`SRCREV` is not later
7254 - ``rev`` - Apply the patch only if :term:`SRCREV` is equal to
7257 - ``notrev`` - Apply the patch only if :term:`SRCREV` is not equal to
7269 whether :term:`SRC_URI` contains files that are machine-specific. If so,
7290 located in ``meta/recipes-connectivity`` in the Source Directory
7293 PV = "0.12-git${SRCPV}"
7308 ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
7313 when building using the :ref:`externalsrc <ref-classes-externalsrc>`
7320 defined in the :ref:`kernel-yocto <ref-classes-kernel-yocto>`
7336 The directory for the shared state cache.
7341 any ``-native`` recipe will pull in all dependencies of that recipe
7343 for example when that ``-native`` recipe depends on build tools
7348 State Cache.
7352 is the rule in :oe_git:`meta/conf/layer.conf </openembedded-core/tree/meta/conf/layer.conf>`::
7354 # Nothing needs to depend on libc-initial
7355 # base-passwd/shadow-sysroot don't need their dependencies
7357 .*->.*-initial.* \
7358 .*(base-passwd|shadow-sysroot)->.* \
7361 The ``->`` substring represents the dependency between
7370 your shared state cache, but you want to disable any other fetching
7375 locations for prebuilt cache data objects before building out the
7377 and :term:`PREMIRRORS` and points to the cache
7378 locations to check for the shared state (sstate) objects.
7382 cache (sstate-cache) results from previous builds. The sstate-cache
7385 When pointing to sstate build artifacts on another machine that uses
7390 :ref:`uninative <ref-classes-uninative>` class. For example, the
7391 following maps the local search path ``universal-4.9`` to the
7392 server-provided path server_url_sstate_path::
7394 … SSTATE_MIRRORS ?= "file://universal-4.9/(.*) https://server_url_sstate_path/universal-4.8/\1"
7403 file://.* https://someserver.tld/share/sstate/PATH;downloadfilename=PATH \
7404 file://.* file:///some-local-dir/sstate/PATH"
7408 hardcoded installation paths. The variable uses a space-separated
7413 (sstate) object during the first stage of preparing the sysroots.
7419 :ref:`sstate <ref-classes-sstate>` class specifies the default list
7423 :ref:`staging <ref-classes-staging>` class.
7448 ``pkg-config``. Consequently, if ``pkg-config`` is supported by the
7450 ``pkg-config`` instead of a provided configuration script.
7466 Helps construct the ``recipe-sysroots`` directory, which is used
7469 For information on how staging for recipe-specific sysroots occurs,
7470 see the :ref:`ref-tasks-populate_sysroot`
7471 task, the ":ref:`sdk-manual/extensible:sharing files between recipes`"
7473 ":ref:`overview-manual/concepts:configuration, compilation, and staging`"
7482 ``${``\ :term:`D`\ ``}`` within your recipe's :ref:`ref-tasks-install`
7490 :ref:`ref-tasks-populate_sysroot` task copies
7491 files. Exceptions include ``-native`` recipes, where the
7497 - For recipes building for the target machine, the value is
7500 - For native recipes building for the build host, the value is empty
7506 ``-native`` recipes are not installed into host paths like such
7508 :term:`STAGING_DIR_NATIVE`. When compiling ``-native`` recipes,
7513 headers using, for example, GCC's ``-isystem`` option.
7517 :ref:`ref-tasks-configure`,
7518 :ref:`ref-tasks-compile`, and
7519 :ref:`ref-tasks-install`. Having the real system
7521 for ``-native`` recipes, as they make use of host headers and
7536 (e.g. cross-canadian recipes). Using terminology from GNU, the
7565 (e.g. ``systemtap-uprobes``) can look in the directory specified with
7571 out-of-tree modules.
7589 STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
7593 ":ref:`overview-manual/concepts:stamp files and the rerunning of tasks`"
7628 The :ref:`syslinux <ref-classes-syslinux>` class initially sets
7636 The :ref:`syslinux <ref-classes-syslinux>` class uses this variable
7643 :ref:`syslinux <ref-classes-syslinux>` class as follows::
7652 :ref:`syslinux <ref-classes-syslinux>` class as follows::
7662 The :ref:`syslinux <ref-classes-syslinux>` class checks for this
7668 "``${``\ :term:`WORKDIR`\ ``}/sysroot-destdir``")
7670 :ref:`ref-tasks-populate_sysroot` task.
7674 :ref:`ref-tasks-populate_sysroot` task. By
7683 /sysroot-only \
7688 :ref:`ref-tasks-populate_sysroot` task. You
7699 ${datadir}/bash-completion \
7701 ${datadir}/gtk-doc/html \
7702 ${datadir}/installed-tests \
7711 :ref:`ref-tasks-populate_sysroot` task for
7712 ``-native`` recipes, in addition to those specified in
7728 Programs built by ``-native`` recipes run directly from the sysroot
7738 When inheriting the :ref:`systemd <ref-classes-systemd>` class,
7743 :ref:`systemd <ref-classes-systemd>` class as follows::
7751 "systemd-boot", the :term:`SYSTEMD_BOOT_CFG` variable specifies the
7753 :ref:`systemd-boot <ref-classes-systemd-boot>` class sets the
7758 For information on Systemd-boot, see the `Systemd-boot
7759 documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
7763 "systemd-boot", the :term:`SYSTEMD_BOOT_ENTRIES` variable specifies a
7766 :ref:`systemd-boot <ref-classes-systemd-boot>` class sets the
7771 For information on Systemd-boot, see the `Systemd-boot
7772 documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
7776 "systemd-boot", the :term:`SYSTEMD_BOOT_TIMEOUT` variable specifies the
7778 :ref:`systemd-boot <ref-classes-systemd-boot>` class sets the
7783 For information on Systemd-boot, see the `Systemd-boot
7784 documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
7787 When inheriting the :ref:`systemd <ref-classes-systemd>` class,
7800 When inheriting the :ref:`systemd <ref-classes-systemd>` class,
7811 :ref:`SysVinit <dev-manual/common-tasks:enabling system services>`,
7812 specifies a space-separated list of the virtual terminals that should
7842 - arm
7843 - i586
7844 - x86_64
7845 - powerpc
7846 - powerpc64
7847 - mips
7848 - mipsel
7854 Specifies architecture-specific assembler flags for the target
7862 Specifies architecture-specific C compiler flags for the target
7879 ``meta/conf/machine/include/arm/feature-arm-thumb.inc`` file in the
7893 Specifies the flags to pass to the C pre-processor (i.e. to both the
7915 Specifies the method for handling FPU code. For FPU-less targets,
7921 Specifies architecture-specific linker flags for the target system.
7941 "linux" for glibc-based systems (GNU C Library) and to "linux-musl"
7943 "linux-gnueabi" and "linux-musleabi".
7951 - For recipes building for the target machine, the value is
7952 "${:term:`TARGET_SYS`}-".
7954 - For native recipes, the build system sets the variable to the
7957 - For native SDK recipes (``nativesdk``), the build system sets the
7976 - Given a native recipe on a 32-bit, x86 machine running Linux, the
7977 value is "i686-linux".
7979 - Given a recipe being built for a little-endian, MIPS target
7980 running Linux, the value might be "mipsel-linux".
8000 :term:`TCLIBCAPPEND` is "-${TCLIBC}". However, distros such as poky,
8021 to the :yocto_home:`Downloads </software-overview/downloads>`
8029 With additional layers, it is possible to use a pre-compiled external
8032 ``meta-sourcery`` layer at
8033 https://github.com/MentorEmbedded/meta-sourcery/.
8043 toolchain. You can use ``meta-sourcery`` as a template for adding
8072 (e.g. interacting with a web-enabled power strip). The specified
8082 wish, for example, to separate the machine-specific and
8083 non-machine-specific parts of the arguments.
8093 ":ref:`dev-manual/common-tasks:performing automated runtime testing`"
8106 TEST_SERIALCONTROL_CMD = "picocom /dev/ttyUSB0 -b 115200"
8113 wish, for example, to separate the machine-specific and
8114 non-machine-specific parts of the command.
8126 from ``WORKDIR/oe-rootfs-repo``.
8166 ":ref:`dev-manual/common-tasks:performing automated runtime testing`"
8184 - *"qemu":* Boots a QEMU image and runs the tests. See the
8185 ":ref:`dev-manual/common-tasks:enabling runtime tests on qemu`" section
8189 - *"simpleremote":* Runs the tests on target hardware that is
8201 ":ref:`dev-manual/common-tasks:enabling runtime tests on hardware`"
8215 useful when SSH is started on a non-standard port or in cases when
8238 ":ref:`dev-manual/common-tasks:performing automated runtime testing`"
8240 ":ref:`ref-classes-testimage*`" section.
8248 and second (HMS) format (e.g. "140159" for one minute and fifty-nine
8254 shared state cache). By default, the :term:`TMPDIR` variable points to
8267 semantics (i.e. mixed-case files are unique, POSIX file locking, and
8274 building an SDK, which contains a cross-development environment. The
8277 package should usually have the prefix ``nativesdk-``. For example,
8280 $ bitbake -c populate_sdk imagename
8285 …":ref:`sdk-manual/appendix-customizing-standard:adding individual packages to the standard sdk`" s…
8289 For background information on cross-development toolchains in the
8291 ":ref:`sdk-manual/intro:the cross-development toolchain`"
8293 information on setting up a cross-development environment, see the
8294 :doc:`/sdk-manual/index` manual.
8307 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class sets
8310 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
8323 …":ref:`sdk-manual/appendix-customizing-standard:adding individual packages to the standard sdk`" s…
8327 For background information on cross-development toolchains in the
8329 ":ref:`sdk-manual/intro:the cross-development toolchain`"
8331 information on setting up a cross-development environment, see the
8332 :doc:`/sdk-manual/index` manual.
8366 - arm
8367 - i586
8368 - x86_64
8369 - powerpc
8370 - powerpc64
8371 - mips
8372 - mipsel
8375 Specifies architecture-specific assembler flags for the target
8380 ``meta/conf/machine/include/x86/arch-x86.inc`` file defines the flags
8383 TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
8392 Specifies architecture-specific C compiler flags for the target
8416 TUNE_FEATURES ??= "${TUNE_FEATURES:tune-${DEFAULTTUNE}}"
8421 Specifies architecture-specific linker flags for the target system.
8426 ``meta/conf/machine/include/x86/arch-x86.inc`` file defines the flags
8429 TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
8442 TUNE_PKGARCH:tune-tune = "tune"
8444 These tune-specific package architectures are defined in the machine
8445 include files. Here is an example of the "core2-32" tuning as used in
8446 the ``meta/conf/machine/include/x86/tune-core2.inc`` file::
8448 TUNE_PKGARCH:tune-core2-32 = "core2-32"
8456 the ``meta/conf/machine/include/mips/arch-mips.inc`` include file
8466 ``meta/conf/machine/include/arm/arch-arm.inc``). Here is an example
8469 TUNEVALID[bigendian] = "Enable big-endian mode."
8479 Following is an example from the ``meta-fsl-arm`` layer. ::
8490 "sdcard" specifies the :term:`IMAGE_FSTYPES` to use for the U-Boot image.
8493 :ref:`uboot-config <ref-classes-uboot-config>`
8497 Specifies the load address for the dtb image used by U-Boot. During FIT
8499 :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to specify
8504 Specifies the load address for the dtbo image used by U-Boot. During FIT
8506 …:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to specify the load address to be used …
8510 Specifies the entry point for the U-Boot image. During U-Boot image
8512 command-line parameter to the ``uboot-mkimage`` utility.
8515 Specifies the load address for the U-Boot image. During U-Boot image
8517 command-line parameter to the ``uboot-mkimage`` utility.
8520 Appends a string to the name of the local version of the U-Boot
8521 image. For example, assuming the version of the U-Boot image built
8522 was "2013.10", the full version string reported by U-Boot would be
8523 "2013.10-yocto" given the following statement::
8525 UBOOT_LOCALVERSION = "-yocto"
8529 a U-Boot image. The value indicates the target platform
8534 section in the U-Boot README for valid values for this variable.
8542 :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to assemble
8544 script or function if desired. The default is "uboot-mkimage".
8547 Options for the device tree compiler passed to mkimage '-D'
8548 … feature while creating FIT image in :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class.
8549 If :term:`UBOOT_MKIMAGE_DTCOPTS` is not set then kernel-fitimage will not
8550 pass the ``-D`` option to mkimage.
8554 :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to sign
8561 :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to pass to the
8568 in :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to specify the
8576 in :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to specify the
8588 The name of keys used for signing U-Boot FIT image stored in
8594 Points to the generated U-Boot extension. For example, ``u-boot.sb``
8597 The default U-Boot extension is ``.bin``
8600 Specifies the target used for building U-Boot. The target is passed
8603 passes and uses "all" for the target during the U-Boot building
8609 :ref:`ref-tasks-configure` task. Normally, invalid
8620 :ref:`insane <ref-classes-insane>` class and is only enabled if the
8621 recipe inherits the :ref:`autotools <ref-classes-autotools>` class.
8625 :ref:`update-rc.d <ref-classes-update-rc.d>` class, :term:`UPDATERCPN`
8633 You can perform a per-recipe check for what the latest upstream
8634 source code version is by calling ``devtool latest-version recipe``. If
8645 You can perform a per-recipe check for what the latest upstream
8646 source code version is by calling ``devtool latest-version recipe``. If
8668 You can perform a per-recipe check for what the latest upstream
8669 source code version is by calling ``devtool latest-version recipe``. If
8680 You can perform a per-recipe check for what the latest upstream
8681 source code version is by calling ``devtool latest-version recipe``.
8697 See the ":ref:`dev-manual/common-tasks:selecting a device manager`" section in
8703 :ref:`SysVinit <dev-manual/common-tasks:enabling system services>`,
8724 ``meta-poky/conf/local.conf.sample`` in the :term:`Source Directory`.
8776 Setting the :term:`USERADDEXTENSION` variable to "useradd-staticids"
8780 When inheriting the :ref:`useradd <ref-classes-useradd>` class,
8797 When inheriting the :ref:`useradd <ref-classes-useradd>` class,
8804 USERADD_PARAM:${PN} = "--system --home ${localstatedir}/lib/dbus \
8805 --no-create-home --shell /bin/false \
8806 --user-group messagebus"
8826 Setting the :term:`USERADDEXTENSION` variable to "useradd-staticids"
8830 When set to "useradd-staticids", causes the OpenEmbedded build system
8836 file: USERADDEXTENSION = "useradd-staticids"
8842 :ref:`ref-classes-useradd` class.
8864 ":ref:`ref-classes-insane`" section.
8871 ":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
8873 the kickstart file format, see the ":doc:`/ref-manual/kickstart`" Chapter.
8877 build-time dependencies. The :term:`WKS_FILE_DEPENDS` variable is only
8893 WKS_FILE_DEPENDS = "some-native-tool"
8896 previous example, some-native-tool would be replaced with an actual
8907 ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
8911 - :term:`TMPDIR`: The top-level build output directory
8912 - :term:`MULTIMACH_TARGET_SYS`: The target system identifier
8913 - :term:`PN`: The recipe name
8914 - :term:`EXTENDPE`: The epoch - (if :term:`PE` is not specified, which
8916 - :term:`PV`: The recipe version
8917 - :term:`PR`: The recipe revision
8919 As an example, assume a Source Directory top-level folder name
8921 ``qemux86-poky-linux`` machine target system. Furthermore, suppose
8922 your recipe is named ``foo_1.3.0-r0.bb``. In this case, the work
8926 poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
8931 directly includes ``packagegroup-core-x11-xserver`` or, perhaps
8932 indirectly, includes "x11-base" in
8936 configuration, is "xserver-xorg xf86-video-fbdev xf86-input-evdev".
8943 to ensure that multi-threaded mode is always used so that the output
8962 to ensure that multi-threaded mode is always used so that the output