summaryrefslogtreecommitdiffstats
path: root/documentation/overview-manual/concepts.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/overview-manual/concepts.rst')
-rw-r--r--documentation/overview-manual/concepts.rst93
1 files changed, 49 insertions, 44 deletions
diff --git a/documentation/overview-manual/concepts.rst b/documentation/overview-manual/concepts.rst
index f0c7dab4c8..ada5143b2a 100644
--- a/documentation/overview-manual/concepts.rst
+++ b/documentation/overview-manual/concepts.rst
@@ -132,7 +132,7 @@ Layers
132 132
133Layers are repositories that contain related metadata (i.e. sets of 133Layers are repositories that contain related metadata (i.e. sets of
134instructions) that tell the OpenEmbedded build system how to build a 134instructions) that tell the OpenEmbedded build system how to build a
135target. Yocto Project's `layer model <#the-yocto-project-layer-model>`__ 135target. :ref:`overview-manual/yp-intro:the yocto project layer model`
136facilitates collaboration, sharing, customization, and reuse within the 136facilitates collaboration, sharing, customization, and reuse within the
137Yocto Project development environment. Layers logically separate 137Yocto Project development environment. Layers logically separate
138information for your project. For example, you can use a layer to hold 138information for your project. For example, you can use a layer to hold
@@ -207,8 +207,8 @@ you can tell BitBake the target architecture for which you are building
207the image, where to store downloaded source, and other build properties. 207the image, where to store downloaded source, and other build properties.
208 208
209The following figure shows an expanded representation of the "User 209The following figure shows an expanded representation of the "User
210Configuration" box of the `general workflow 210Configuration" box of the :ref:`general workflow
211figure <#general-workflow-figure>`__: 211figure <overview-manual/concepts:openembedded build system concepts>`:
212 212
213.. image:: figures/user-configuration.png 213.. image:: figures/user-configuration.png
214 :align: center 214 :align: center
@@ -374,7 +374,7 @@ provide Metadata for the software, machine, and policies.
374 374
375In general, three types of layer input exists. You can see them below 375In general, three types of layer input exists. You can see them below
376the "User Configuration" box in the `general workflow 376the "User Configuration" box in the `general workflow
377figure <#general-workflow-figure>`__: 377figure <overview-manual/concepts:openembedded build system concepts>`:
378 378
379- *Metadata (.bb + Patches):* Software layers containing 379- *Metadata (.bb + Patches):* Software layers containing
380 user-supplied recipe files, patches, and append files. A good example 380 user-supplied recipe files, patches, and append files. A good example
@@ -387,8 +387,8 @@ figure <#general-workflow-figure>`__:
387- *Machine BSP Configuration:* Board Support Package (BSP) layers (i.e. 387- *Machine BSP Configuration:* Board Support Package (BSP) layers (i.e.
388 "BSP Layer" in the following figure) providing machine-specific 388 "BSP Layer" in the following figure) providing machine-specific
389 configurations. This type of information is specific to a particular 389 configurations. This type of information is specific to a particular
390 target architecture. A good example of a BSP layer from the `Poky 390 target architecture. A good example of a BSP layer from the
391 Reference Distribution <#gs-reference-distribution-poky>`__ is the 391 :ref:`overview-manual/yp-intro:reference distribution (poky)` is the
392 :yocto_git:`meta-yocto-bsp </poky/tree/meta-yocto-bsp>` 392 :yocto_git:`meta-yocto-bsp </poky/tree/meta-yocto-bsp>`
393 layer. 393 layer.
394 394
@@ -403,7 +403,8 @@ figure <#general-workflow-figure>`__:
403 that contain many policy configurations for the Poky distribution. 403 that contain many policy configurations for the Poky distribution.
404 404
405The following figure shows an expanded representation of these three 405The following figure shows an expanded representation of these three
406layers from the `general workflow figure <#general-workflow-figure>`__: 406layers from the :ref:`general workflow figure
407<overview-manual/concepts:openembedded build system concepts>`:
407 408
408.. image:: figures/layer-input.png 409.. image:: figures/layer-input.png
409 :align: center 410 :align: center
@@ -418,9 +419,9 @@ in the
418section in the 419section in the
419Yocto Project Development Tasks Manual. For a general discussion on 420Yocto Project Development Tasks Manual. For a general discussion on
420layers and the many layers from which you can draw, see the 421layers and the many layers from which you can draw, see the
421"`Layers <#overview-layers>`__" and "`The Yocto Project Layer 422":ref:`overview-manual/concepts:layers`" and
422Model <#the-yocto-project-layer-model>`__" sections both earlier in this 423":ref:`overview-manual/yp-intro:the yocto project layer model`" sections both
423manual. 424earlier in this manual.
424 425
425If you explored the previous links, you discovered some areas where many 426If you explored the previous links, you discovered some areas where many
426layers that work with the Yocto Project exist. The :yocto_git:`Source 427layers that work with the Yocto Project exist. The :yocto_git:`Source
@@ -514,11 +515,12 @@ Sources
514------- 515-------
515 516
516In order for the OpenEmbedded build system to create an image or any 517In order for the OpenEmbedded build system to create an image or any
517target, it must be able to access source files. The `general workflow 518target, it must be able to access source files. The :ref:`general workflow
518figure <#general-workflow-figure>`__ represents source files using the 519figure <overview-manual/concepts:openembedded build system concepts>`
519"Upstream Project Releases", "Local Projects", and "SCMs (optional)" 520represents source files using the "Upstream Project Releases", "Local
520boxes. The figure represents mirrors, which also play a role in locating 521Projects", and "SCMs (optional)" boxes. The figure represents mirrors,
521source files, with the "Source Materials" box. 522which also play a role in locating source files, with the "Source
523Materials" box.
522 524
523The method by which source files are ultimately organized is a function 525The method by which source files are ultimately organized is a function
524of the project. For example, for released software, projects tend to use 526of the project. For example, for released software, projects tend to use
@@ -554,7 +556,7 @@ Directory if needed without fear of removing any downloaded source file.
554 556
555The remainder of this section provides a deeper look into the source 557The remainder of this section provides a deeper look into the source
556files and the mirrors. Here is a more detailed look at the source file 558files and the mirrors. Here is a more detailed look at the source file
557area of the `general workflow figure <#general-workflow-figure>`__: 559area of the :ref:`general workflow figure <overview-manual/concepts:openembedded build system concepts>`:
558 560
559.. image:: figures/source-input.png 561.. image:: figures/source-input.png
560 :align: center 562 :align: center
@@ -628,9 +630,9 @@ Package Feeds
628 630
629When the OpenEmbedded build system generates an image or an SDK, it gets 631When the OpenEmbedded build system generates an image or an SDK, it gets
630the packages from a package feed area located in the 632the packages from a package feed area located in the
631:term:`Build Directory`. The `general 633:term:`Build Directory`. The :ref:`general workflow figure
632workflow figure <#general-workflow-figure>`__ shows this package feeds 634<overview-manual/concepts:openembedded build system concepts>`
633area in the upper-right corner. 635shows this package feeds area in the upper-right corner.
634 636
635This section looks a little closer into the package feeds area used by 637This section looks a little closer into the package feeds area used by
636the build system. Here is a more detailed look at the area: 638the build system. Here is a more detailed look at the area:
@@ -691,10 +693,10 @@ BitBake Tool
691 693
692The OpenEmbedded build system uses 694The OpenEmbedded build system uses
693:term:`BitBake` to produce images and 695:term:`BitBake` to produce images and
694Software Development Kits (SDKs). You can see from the `general workflow 696Software Development Kits (SDKs). You can see from the :ref:`general workflow
695figure <#general-workflow-figure>`__, the BitBake area consists of 697figure <overview-manual/concepts:openembedded build system concepts>`,
696several functional areas. This section takes a closer look at each of 698the BitBake area consists of several functional areas. This section takes a
697those areas. 699closer look at each of those areas.
698 700
699.. note:: 701.. note::
700 702
@@ -820,7 +822,7 @@ source files, which are located in the
820:term:`S` directory. 822:term:`S` directory.
821 823
822For more information on how the source directories are created, see the 824For more information on how the source directories are created, see the
823"`Source Fetching <#source-fetching-dev-environment>`__" section. For 825":ref:`overview-manual/concepts:source fetching`" section. For
824more information on how to create patches and how the build system 826more information on how to create patches and how the build system
825processes patches, see the 827processes patches, see the
826":ref:`dev-manual/common-tasks:patching code`" 828":ref:`dev-manual/common-tasks:patching code`"
@@ -957,8 +959,8 @@ details on how this is accomplished, you can look at
957Depending on the type of packages being created (RPM, DEB, or IPK), the 959Depending on the type of packages being created (RPM, DEB, or IPK), the
958:ref:`do_package_write_* <ref-tasks-package_write_deb>` 960:ref:`do_package_write_* <ref-tasks-package_write_deb>`
959task creates the actual packages and places them in the Package Feed 961task creates the actual packages and places them in the Package Feed
960area, which is ``${TMPDIR}/deploy``. You can see the "`Package 962area, which is ``${TMPDIR}/deploy``. You can see the
961Feeds <#package-feeds-dev-environment>`__" section for more detail on 963":ref:`overview-manual/concepts:package feeds`" section for more detail on
962that part of the build process. 964that part of the build process.
963 965
964.. note:: 966.. note::
@@ -1119,7 +1121,7 @@ and
1119:ref:`ref-tasks-populate_sdk_ext` 1121:ref:`ref-tasks-populate_sdk_ext`
1120tasks use these key variables to help create the list of packages to 1122tasks use these key variables to help create the list of packages to
1121actually install. For information on the variables listed in the figure, 1123actually install. For information on the variables listed in the figure,
1122see the "`Application Development SDK <#sdk-dev-environment>`__" 1124see the ":ref:`overview-manual/concepts:application development sdk`"
1123section. 1125section.
1124 1126
1125The ``do_populate_sdk`` task helps create the standard SDK and handles 1127The ``do_populate_sdk`` task helps create the standard SDK and handles
@@ -1147,8 +1149,8 @@ For each task that completes successfully, BitBake writes a stamp file
1147into the :term:`STAMPS_DIR` 1149into the :term:`STAMPS_DIR`
1148directory. The beginning of the stamp file's filename is determined by 1150directory. The beginning of the stamp file's filename is determined by
1149the :term:`STAMP` variable, and the end 1151the :term:`STAMP` variable, and the end
1150of the name consists of the task's name and current `input 1152of the name consists of the task's name and current :ref:`input
1151checksum <#overview-checksums>`__. 1153checksum <overview-manual/concepts:checksums (signatures)>`.
1152 1154
1153.. note:: 1155.. note::
1154 1156
@@ -1165,10 +1167,10 @@ file does not exist, the task is rerun.
1165.. note:: 1167.. note::
1166 1168
1167 The stamp mechanism is more general than the shared state (sstate) 1169 The stamp mechanism is more general than the shared state (sstate)
1168 cache mechanism described in the "`Setscene Tasks and Shared 1170 cache mechanism described in the
1169 State <#setscene-tasks-and-shared-state>`__" section. BitBake avoids 1171 ":ref:`overview-manual/concepts:setscene tasks and shared state`" section.
1170 rerunning any task that has a valid stamp file, not just tasks that 1172 BitBake avoids rerunning any task that has a valid stamp file, not just
1171 can be accelerated through the sstate cache. 1173 tasks that can be accelerated through the sstate cache.
1172 1174
1173 However, you should realize that stamp files only serve as a marker 1175 However, you should realize that stamp files only serve as a marker
1174 that some work has been done and that these files do not record task 1176 that some work has been done and that these files do not record task
@@ -1271,7 +1273,8 @@ Images
1271 1273
1272The images produced by the build system are compressed forms of the root 1274The images produced by the build system are compressed forms of the root
1273filesystem and are ready to boot on a target device. You can see from 1275filesystem and are ready to boot on a target device. You can see from
1274the `general workflow figure <#general-workflow-figure>`__ that BitBake 1276the :ref:`general workflow figure
1277<overview-manual/concepts:openembedded build system concepts>` that BitBake
1275output, in part, consists of images. This section takes a closer look at 1278output, in part, consists of images. This section takes a closer look at
1276this output: 1279this output:
1277 1280
@@ -1327,7 +1330,8 @@ current configuration.
1327Application Development SDK 1330Application Development SDK
1328--------------------------- 1331---------------------------
1329 1332
1330In the `general workflow figure <#general-workflow-figure>`__, the 1333In the :ref:`general workflow figure
1334<overview-manual/concepts:openembedded build system concepts>`, the
1331output labeled "Application Development SDK" represents an SDK. The SDK 1335output labeled "Application Development SDK" represents an SDK. The SDK
1332generation process differs depending on whether you build an extensible 1336generation process differs depending on whether you build an extensible
1333SDK (e.g. ``bitbake -c populate_sdk_ext`` imagename) or a standard SDK 1337SDK (e.g. ``bitbake -c populate_sdk_ext`` imagename) or a standard SDK
@@ -1357,8 +1361,8 @@ can initialize the environment before using the tools.
1357 your own SDK installer. 1361 your own SDK installer.
1358 1362
1359 - For background information on cross-development toolchains in the 1363 - For background information on cross-development toolchains in the
1360 Yocto Project development environment, see the "`Cross-Development 1364 Yocto Project development environment, see the
1361 Toolchain Generation <#cross-development-toolchain-generation>`__" 1365 ":ref:`overview-manual/concepts:cross-development toolchain generation`"
1362 section. 1366 section.
1363 1367
1364 - For information on setting up a cross-development environment, see 1368 - For information on setting up a cross-development environment, see
@@ -1773,10 +1777,10 @@ through this setting in the ``bitbake.conf`` file:
1773 BB_SIGNATURE_HANDLER ?= "OEBasicHash" 1777 BB_SIGNATURE_HANDLER ?= "OEBasicHash"
1774 1778
1775The "OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same 1779The "OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same
1776as the "OEBasic" version but adds the task hash to the `stamp 1780as the "OEBasic" version but adds the task hash to the :ref:`stamp
1777files <#stamp-files-and-the-rerunning-of-tasks>`__. This results in any 1781files <overview-manual/concepts:stamp files and the rerunning of tasks>`. This
1778metadata change that changes the task hash, automatically causing the 1782results in any metadata change that changes the task hash, automatically causing
1779task to be run again. This removes the need to bump 1783the task to be run again. This removes the need to bump
1780:term:`PR` values, and changes to metadata 1784:term:`PR` values, and changes to metadata
1781automatically ripple across the build. 1785automatically ripple across the build.
1782 1786
@@ -1901,9 +1905,10 @@ The following list explains the previous example:
1901 1905
1902 1906
1903- The ``do_deploy[stamp-extra-info] = "${MACHINE_ARCH}"`` line appends 1907- The ``do_deploy[stamp-extra-info] = "${MACHINE_ARCH}"`` line appends
1904 extra metadata to the `stamp 1908 extra metadata to the :ref:`stamp
1905 file <#stamp-files-and-the-rerunning-of-tasks>`__. In this case, the 1909 file <overview-manual/concepts:stamp files and the rerunning of tasks>`. In
1906 metadata makes the task specific to a machine's architecture. See 1910 this case, the metadata makes the task specific to a machine's architecture.
1911 See
1907 ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-execution:the task list`" 1912 ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-execution:the task list`"
1908 section in the BitBake User Manual for more information on the 1913 section in the BitBake User Manual for more information on the
1909 ``stamp-extra-info`` flag. 1914 ``stamp-extra-info`` flag.