Lines Matching +full:fully +full:- +full:featured
1 .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
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>`
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
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``").
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
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
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"``
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…
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
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.
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
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>`
7341 any ``-native`` recipe will pull in all dependencies of that recipe
7343 for example when that ``-native`` recipe depends on build tools
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
7382 cache (sstate-cache) results from previous builds. The sstate-cache
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"
7404 file://.* file:///some-local-dir/sstate/PATH"
7408 hardcoded installation paths. The variable uses a space-separated
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
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