mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 13:09:50 +00:00
overview-manual: simplify style and add missings references
(From yocto-docs rev: 4a07947dbe0dd70fd1d528a207d663dfdca2b7c1) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
42f6423cc8
commit
31f1d4d331
@@ -139,7 +139,7 @@ hardware-specific configurations allows you to share other metadata by
|
|||||||
using a different layer where that metadata might be common across
|
using a different layer where that metadata might be common across
|
||||||
several pieces of hardware.
|
several pieces of hardware.
|
||||||
|
|
||||||
Many layers exist that work in the Yocto Project development environment. The
|
There are many layers working in the Yocto Project development environment. The
|
||||||
:yocto_home:`Yocto Project Curated Layer Index </software-overview/layers/>`
|
:yocto_home:`Yocto Project Curated Layer Index </software-overview/layers/>`
|
||||||
and :oe_layerindex:`OpenEmbedded Layer Index <>` both contain layers from
|
and :oe_layerindex:`OpenEmbedded Layer Index <>` both contain layers from
|
||||||
which you can use or leverage.
|
which you can use or leverage.
|
||||||
@@ -370,7 +370,7 @@ BitBake's global behavior. This section takes a closer look at the
|
|||||||
layers the build system uses to further control the build. These layers
|
layers the build system uses to further control the build. These layers
|
||||||
provide Metadata for the software, machine, and policies.
|
provide Metadata for the software, machine, and policies.
|
||||||
|
|
||||||
In general, three types of layer input exists. You can see them below
|
In general, there are three types of layer input. You can see them below
|
||||||
the "User Configuration" box in the `general workflow
|
the "User Configuration" box in the `general workflow
|
||||||
figure <overview-manual/concepts:openembedded build system concepts>`:
|
figure <overview-manual/concepts:openembedded build system concepts>`:
|
||||||
|
|
||||||
@@ -427,8 +427,8 @@ Repositories <>` also shows layers categorized under "Yocto Metadata Layers."
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Layers exist in the Yocto Project Source Repositories that cannot be
|
There are layers in the Yocto Project Source Repositories that cannot be
|
||||||
found in the OpenEmbedded Layer Index. These layers are either
|
found in the OpenEmbedded Layer Index. Such layers are either
|
||||||
deprecated or experimental in nature.
|
deprecated or experimental in nature.
|
||||||
|
|
||||||
BitBake uses the ``conf/bblayers.conf`` file, which is part of the user
|
BitBake uses the ``conf/bblayers.conf`` file, which is part of the user
|
||||||
@@ -489,7 +489,7 @@ the machine (``conf/machine/machine.conf``) and, of course, the layer
|
|||||||
|
|
||||||
The remainder of the layer is dedicated to specific recipes by function:
|
The remainder of the layer is dedicated to specific recipes by function:
|
||||||
``recipes-bsp``, ``recipes-core``, ``recipes-graphics``,
|
``recipes-bsp``, ``recipes-core``, ``recipes-graphics``,
|
||||||
``recipes-kernel``, and so forth. Metadata can exist for multiple
|
``recipes-kernel``, and so forth. There can be metadata for multiple
|
||||||
formfactors, graphics support systems, and so forth.
|
formfactors, graphics support systems, and so forth.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@@ -528,9 +528,7 @@ project that is more dynamic or experimental in nature, a project might
|
|||||||
keep source files in a repository controlled by a Source Control Manager
|
keep source files in a repository controlled by a Source Control Manager
|
||||||
(SCM) such as Git. Pulling source from a repository allows you to
|
(SCM) such as Git. Pulling source from a repository allows you to
|
||||||
control the point in the repository (the revision) from which you want
|
control the point in the repository (the revision) from which you want
|
||||||
to build software. Finally, a combination of the two might exist, which
|
to build software. A combination of the two is also possible.
|
||||||
would give the consumer a choice when deciding where to get source
|
|
||||||
files.
|
|
||||||
|
|
||||||
BitBake uses the :term:`SRC_URI`
|
BitBake uses the :term:`SRC_URI`
|
||||||
variable to point to source files regardless of their location. Each
|
variable to point to source files regardless of their location. Each
|
||||||
@@ -609,7 +607,7 @@ the specific revision from which to build.
|
|||||||
Source Mirror(s)
|
Source Mirror(s)
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Two kinds of mirrors exist: pre-mirrors and regular mirrors. The
|
There are two kinds of mirrors: pre-mirrors and regular mirrors. The
|
||||||
:term:`PREMIRRORS` and
|
:term:`PREMIRRORS` and
|
||||||
:term:`MIRRORS` variables point to
|
:term:`MIRRORS` variables point to
|
||||||
these, respectively. BitBake checks pre-mirrors before looking upstream
|
these, respectively. BitBake checks pre-mirrors before looking upstream
|
||||||
@@ -667,8 +665,8 @@ package files are kept:
|
|||||||
variables are used, respectively.
|
variables are used, respectively.
|
||||||
|
|
||||||
- :term:`PACKAGE_ARCH`: Defines
|
- :term:`PACKAGE_ARCH`: Defines
|
||||||
architecture-specific sub-folders. For example, packages could exist
|
architecture-specific sub-folders. For example, packages could be
|
||||||
for the i586 or qemux86 architectures.
|
available for the i586 or qemux86 architectures.
|
||||||
|
|
||||||
BitBake uses the
|
BitBake uses the
|
||||||
:ref:`do_package_write_* <ref-tasks-package_write_deb>`
|
:ref:`do_package_write_* <ref-tasks-package_write_deb>`
|
||||||
@@ -681,8 +679,8 @@ and
|
|||||||
":ref:`ref-tasks-package_write_tar`"
|
":ref:`ref-tasks-package_write_tar`"
|
||||||
sections in the Yocto Project Reference Manual for additional
|
sections in the Yocto Project Reference Manual for additional
|
||||||
information. As an example, consider a scenario where an IPK packaging
|
information. As an example, consider a scenario where an IPK packaging
|
||||||
manager is being used and package architecture support for both i586 and
|
manager is being used and there is package architecture support for both
|
||||||
qemux86 exist. Packages for the i586 architecture are placed in
|
i586 and qemux86. Packages for the i586 architecture are placed in
|
||||||
``build/tmp/deploy/ipk/i586``, while packages for the qemux86
|
``build/tmp/deploy/ipk/i586``, while packages for the qemux86
|
||||||
architecture are placed in ``build/tmp/deploy/ipk/qemux86``.
|
architecture are placed in ``build/tmp/deploy/ipk/qemux86``.
|
||||||
|
|
||||||
@@ -698,7 +696,7 @@ closer look at each of those areas.
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Separate documentation exists for the BitBake tool. See the
|
Documentation for the BitBake tool is available separately. See the
|
||||||
BitBake User Manual
|
BitBake User Manual
|
||||||
for reference material on BitBake.
|
for reference material on BitBake.
|
||||||
|
|
||||||
@@ -783,12 +781,10 @@ Build Directory's hierarchy:
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
In the previous figure, notice that two sample hierarchies exist: one
|
In the previous figure, notice that there are two sample hierarchies:
|
||||||
based on package architecture (i.e.
|
one based on package architecture (i.e. :term:`PACKAGE_ARCH`)
|
||||||
PACKAGE_ARCH
|
and one based on a machine (i.e. :term:`MACHINE`).
|
||||||
) and one based on a machine (i.e.
|
The underlying structures are identical. The differentiator being
|
||||||
MACHINE
|
|
||||||
). The underlying structures are identical. The differentiator being
|
|
||||||
what the OpenEmbedded build system is using as a build target (e.g.
|
what the OpenEmbedded build system is using as a build target (e.g.
|
||||||
general architecture, a build host, an SDK, or a specific machine).
|
general architecture, a build host, an SDK, or a specific machine).
|
||||||
|
|
||||||
@@ -963,8 +959,7 @@ that part of the build process.
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Support for creating feeds directly from the
|
Support for creating feeds directly from the ``deploy/*``
|
||||||
deploy/\*
|
|
||||||
directories does not exist. Creating such feeds usually requires some
|
directories does not exist. Creating such feeds usually requires some
|
||||||
kind of feed maintenance mechanism that would upload the new packages
|
kind of feed maintenance mechanism that would upload the new packages
|
||||||
into an official package feed (e.g. the Ångström distribution). This
|
into an official package feed (e.g. the Ångström distribution). This
|
||||||
@@ -1156,9 +1151,9 @@ checksum <overview-manual/concepts:checksums (signatures)>`.
|
|||||||
OpenEmbedded.
|
OpenEmbedded.
|
||||||
|
|
||||||
To determine if a task needs to be rerun, BitBake checks if a stamp file
|
To determine if a task needs to be rerun, BitBake checks if a stamp file
|
||||||
with a matching input checksum exists for the task. If such a stamp file
|
with a matching input checksum exists for the task. In this case,
|
||||||
exists, the task's output is assumed to exist and still be valid. If the
|
the task's output is assumed to exist and still be valid. Otherwise,
|
||||||
file does not exist, the task is rerun.
|
the task is rerun.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -1234,14 +1229,14 @@ to run any of the ``do_fetch``, ``do_unpack``, ``do_patch``,
|
|||||||
|
|
||||||
It becomes more complicated if everything can come from an sstate cache
|
It becomes more complicated if everything can come from an sstate cache
|
||||||
because some objects are simply not required at all. For example, you do
|
because some objects are simply not required at all. For example, you do
|
||||||
not need a compiler or native tools, such as quilt, if nothing exists to
|
not need a compiler or native tools, such as quilt, if there isn't anything
|
||||||
compile or patch. If the ``do_package_write_*`` packages are available
|
to compile or patch. If the ``do_package_write_*`` packages are available
|
||||||
from sstate, BitBake does not need the ``do_package`` task data.
|
from sstate, BitBake does not need the ``do_package`` task data.
|
||||||
|
|
||||||
To handle all these complexities, BitBake runs in two phases. The first
|
To handle all these complexities, BitBake runs in two phases. The first
|
||||||
is the "setscene" stage. During this stage, BitBake first checks the
|
is the "setscene" stage. During this stage, BitBake first checks the
|
||||||
sstate cache for any targets it is planning to build. BitBake does a
|
sstate cache for any targets it is planning to build. BitBake does a
|
||||||
fast check to see if the object exists rather than a complete download.
|
fast check to see if the object exists rather than doing a complete download.
|
||||||
If nothing exists, the second phase, which is the setscene stage,
|
If nothing exists, the second phase, which is the setscene stage,
|
||||||
completes and the main build proceeds.
|
completes and the main build proceeds.
|
||||||
|
|
||||||
@@ -1366,9 +1361,9 @@ can initialize the environment before using the tools.
|
|||||||
|
|
||||||
All the output files for an SDK are written to the ``deploy/sdk`` folder
|
All the output files for an SDK are written to the ``deploy/sdk`` folder
|
||||||
inside the :term:`Build Directory` as
|
inside the :term:`Build Directory` as
|
||||||
shown in the previous figure. Depending on the type of SDK, several
|
shown in the previous figure. Depending on the type of SDK, there are
|
||||||
variables exist that help configure these files. The following list
|
several variables to configure these files. Here are the variables
|
||||||
shows the variables associated with an extensible SDK:
|
associated with an extensible SDK:
|
||||||
|
|
||||||
- :term:`DEPLOY_DIR`: Points to
|
- :term:`DEPLOY_DIR`: Points to
|
||||||
the ``deploy`` directory.
|
the ``deploy`` directory.
|
||||||
@@ -1577,8 +1572,8 @@ Shared State Cache
|
|||||||
By design, the OpenEmbedded build system builds everything from scratch
|
By design, the OpenEmbedded build system builds everything from scratch
|
||||||
unless :term:`BitBake` can determine
|
unless :term:`BitBake` can determine
|
||||||
that parts do not need to be rebuilt. Fundamentally, building from
|
that parts do not need to be rebuilt. Fundamentally, building from
|
||||||
scratch is attractive as it means all parts are built fresh and no
|
scratch is attractive as it means all parts are built fresh and there is
|
||||||
possibility of stale data exists that can cause problems. When
|
no possibility of stale data that can cause problems. When
|
||||||
developers hit problems, they typically default back to building from
|
developers hit problems, they typically default back to building from
|
||||||
scratch so they have a know state from the start.
|
scratch so they have a know state from the start.
|
||||||
|
|
||||||
@@ -1617,7 +1612,7 @@ them if they are deemed to be valid.
|
|||||||
|
|
||||||
- The build system does not maintain
|
- The build system does not maintain
|
||||||
:term:`PR` information as part of
|
:term:`PR` information as part of
|
||||||
the shared state packages. Consequently, considerations exist that
|
the shared state packages. Consequently, there are considerations that
|
||||||
affect maintaining shared state feeds. For information on how the
|
affect maintaining shared state feeds. For information on how the
|
||||||
build system works with packages and can track incrementing ``PR``
|
build system works with packages and can track incrementing ``PR``
|
||||||
information, see the ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
|
information, see the ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
|
||||||
@@ -1687,7 +1682,7 @@ used to prune the "run" scripts down to the minimum set, thereby
|
|||||||
alleviating this problem and making the "run" scripts much more readable
|
alleviating this problem and making the "run" scripts much more readable
|
||||||
as a bonus.
|
as a bonus.
|
||||||
|
|
||||||
So far, solutions for shell scripts exist. What about Python tasks? The
|
So far, there are solutions for shell scripts. What about Python tasks? The
|
||||||
same approach applies even though these tasks are more difficult. The
|
same approach applies even though these tasks are more difficult. The
|
||||||
process needs to figure out what variables a Python function accesses
|
process needs to figure out what variables a Python function accesses
|
||||||
and what functions it calls. Again, the incremental build solution
|
and what functions it calls. Again, the incremental build solution
|
||||||
@@ -1695,7 +1690,7 @@ contains code that first figures out the variable and function
|
|||||||
dependencies, and then creates a checksum for the data used as the input
|
dependencies, and then creates a checksum for the data used as the input
|
||||||
to the task.
|
to the task.
|
||||||
|
|
||||||
Like the ``WORKDIR`` case, situations exist where dependencies should be
|
Like the ``WORKDIR`` case, there can be situations where dependencies should be
|
||||||
ignored. For these situations, you can instruct the build process to
|
ignored. For these situations, you can instruct the build process to
|
||||||
ignore a dependency by using a line like the following::
|
ignore a dependency by using a line like the following::
|
||||||
|
|
||||||
@@ -1732,7 +1727,7 @@ to add is a policy decision. However, the effect is to generate a master
|
|||||||
checksum that combines the basehash and the hashes of the task's
|
checksum that combines the basehash and the hashes of the task's
|
||||||
dependencies.
|
dependencies.
|
||||||
|
|
||||||
At the code level, a variety of ways exist by which both the basehash
|
At the code level, there are multiple ways by which both the basehash
|
||||||
and the dependent task hashes can be influenced. Within the BitBake
|
and the dependent task hashes can be influenced. Within the BitBake
|
||||||
configuration file, you can give BitBake some extra information to help
|
configuration file, you can give BitBake some extra information to help
|
||||||
it construct the basehash. The following statement effectively results
|
it construct the basehash. The following statement effectively results
|
||||||
@@ -1961,8 +1956,8 @@ Automatically Added Runtime Dependencies
|
|||||||
The OpenEmbedded build system automatically adds common types of runtime
|
The OpenEmbedded build system automatically adds common types of runtime
|
||||||
dependencies between packages, which means that you do not need to
|
dependencies between packages, which means that you do not need to
|
||||||
explicitly declare the packages using
|
explicitly declare the packages using
|
||||||
:term:`RDEPENDS`. Three automatic
|
:term:`RDEPENDS`. There are three automatic
|
||||||
mechanisms exist (``shlibdeps``, ``pcdeps``, and ``depchains``) that
|
mechanisms (``shlibdeps``, ``pcdeps``, and ``depchains``) that
|
||||||
handle shared libraries, package configuration (pkg-config) modules, and
|
handle shared libraries, package configuration (pkg-config) modules, and
|
||||||
``-dev`` and ``-dbg`` packages, respectively. For other types of runtime
|
``-dev`` and ``-dbg`` packages, respectively. For other types of runtime
|
||||||
dependencies, you must manually declare the dependencies.
|
dependencies, you must manually declare the dependencies.
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ section in
|
|||||||
the Yocto Project Development Tasks Manual.
|
the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
If your development host is going to be a system that runs a Linux
|
If your development host is going to be a system that runs a Linux
|
||||||
distribution, steps still exist that you must take to prepare the system
|
distribution, you must still take steps to prepare the system
|
||||||
for use with the Yocto Project. You need to be sure that the Linux
|
for use with the Yocto Project. You need to be sure that the Linux
|
||||||
distribution on the system is one that supports the Yocto Project. You
|
distribution on the system is one that supports the Yocto Project. You
|
||||||
also need to be sure that the correct set of host packages are installed
|
also need to be sure that the correct set of host packages are installed
|
||||||
@@ -80,8 +80,8 @@ set up a development host that runs Linux, see the
|
|||||||
":ref:`dev-manual/start:setting up a native linux host`"
|
":ref:`dev-manual/start:setting up a native linux host`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Once your development host is set up to use the Yocto Project, several
|
Once your development host is set up to use the Yocto Project, there
|
||||||
methods exist for you to do work in the Yocto Project environment:
|
are several ways of working in the Yocto Project environment:
|
||||||
|
|
||||||
- *Command Lines, BitBake, and Shells:* Traditional development in the
|
- *Command Lines, BitBake, and Shells:* Traditional development in the
|
||||||
Yocto Project involves using the :term:`OpenEmbedded Build System`,
|
Yocto Project involves using the :term:`OpenEmbedded Build System`,
|
||||||
@@ -271,7 +271,7 @@ files that are being worked on simultaneously by more than one person.
|
|||||||
All this work is done locally on the development host before anything is
|
All this work is done locally on the development host before anything is
|
||||||
pushed to a "contrib" area and examined at the maintainer's level.
|
pushed to a "contrib" area and examined at the maintainer's level.
|
||||||
|
|
||||||
A somewhat formal method exists by which developers commit changes and
|
There is a somewhat formal method by which developers commit changes and
|
||||||
push them into the "contrib" area and subsequently request that the
|
push them into the "contrib" area and subsequently request that the
|
||||||
maintainer include them into an upstream branch. This process is called
|
maintainer include them into an upstream branch. This process is called
|
||||||
"submitting a patch" or "submitting a change." For information on
|
"submitting a patch" or "submitting a change." For information on
|
||||||
@@ -279,9 +279,9 @@ submitting patches and changes, see the
|
|||||||
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
|
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
In summary, a single point of entry exists for changes into a "master"
|
In summary, there is a single point of entry for changes into a "master"
|
||||||
or development branch of the Git repository, which is controlled by the
|
or development branch of the Git repository, which is controlled by the
|
||||||
project's maintainer. And, a set of developers exist who independently
|
project's maintainer. A set of developers independently
|
||||||
develop, test, and submit changes to "contrib" areas for the maintainer
|
develop, test, and submit changes to "contrib" areas for the maintainer
|
||||||
to examine. The maintainer then chooses which changes are going to
|
to examine. The maintainer then chooses which changes are going to
|
||||||
become a permanent part of the project.
|
become a permanent part of the project.
|
||||||
|
|||||||
@@ -140,8 +140,7 @@ Here are challenges you might encounter when developing using the Yocto Project:
|
|||||||
|
|
||||||
- *Steep Learning Curve:* The Yocto Project has a steep learning curve
|
- *Steep Learning Curve:* The Yocto Project has a steep learning curve
|
||||||
and has many different ways to accomplish similar tasks. It can be
|
and has many different ways to accomplish similar tasks. It can be
|
||||||
difficult to choose how to proceed when varying methods exist by
|
difficult to choose between such ways.
|
||||||
which to accomplish a given task.
|
|
||||||
|
|
||||||
- *Understanding What Changes You Need to Make For Your Design Requires
|
- *Understanding What Changes You Need to Make For Your Design Requires
|
||||||
Some Research:* Beyond the simple tutorial stage, understanding what
|
Some Research:* Beyond the simple tutorial stage, understanding what
|
||||||
@@ -156,7 +155,7 @@ Here are challenges you might encounter when developing using the Yocto Project:
|
|||||||
workflow <overview-manual/development-environment:the yocto project development environment>`
|
workflow <overview-manual/development-environment:the yocto project development environment>`
|
||||||
could be confusing if you are used to traditional desktop and server
|
could be confusing if you are used to traditional desktop and server
|
||||||
software development.
|
software development.
|
||||||
In a desktop development environment, mechanisms exist to easily pull
|
In a desktop development environment, there are mechanisms to easily pull
|
||||||
and install new packages, which are typically pre-compiled binaries
|
and install new packages, which are typically pre-compiled binaries
|
||||||
from servers accessible over the Internet. Using the Yocto Project,
|
from servers accessible over the Internet. Using the Yocto Project,
|
||||||
you must modify your configuration and rebuild to add additional
|
you must modify your configuration and rebuild to add additional
|
||||||
@@ -430,8 +429,8 @@ Yocto Project:
|
|||||||
require system administrator privileges. For example, file ownership
|
require system administrator privileges. For example, file ownership
|
||||||
or permissions might need to be defined. Pseudo is a tool that you
|
or permissions might need to be defined. Pseudo is a tool that you
|
||||||
can either use directly or through the environment variable
|
can either use directly or through the environment variable
|
||||||
``LD_PRELOAD``. Either method allows these operations to succeed as
|
``LD_PRELOAD``. Either method allows these operations to succeed
|
||||||
if system administrator privileges exist even when they do not.
|
even without system administrator privileges.
|
||||||
|
|
||||||
Thanks to Pseudo, the Yocto Project never needs root privileges to
|
Thanks to Pseudo, the Yocto Project never needs root privileges to
|
||||||
build images for your target system.
|
build images for your target system.
|
||||||
@@ -579,8 +578,7 @@ software.
|
|||||||
This section provides an introduction to the choices or development
|
This section provides an introduction to the choices or development
|
||||||
methods you have when setting up your Build Host. Depending on your
|
methods you have when setting up your Build Host. Depending on your
|
||||||
particular workflow preference and the type of operating system your
|
particular workflow preference and the type of operating system your
|
||||||
Build Host runs, several choices exist that allow you to use the Yocto
|
Build Host runs, you have several choices.
|
||||||
Project.
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -790,7 +788,7 @@ Some Basic Terms
|
|||||||
================
|
================
|
||||||
|
|
||||||
It helps to understand some basic fundamental terms when learning the
|
It helps to understand some basic fundamental terms when learning the
|
||||||
Yocto Project. Although a list of terms exists in the ":doc:`Yocto Project
|
Yocto Project. Although there is a list of terms in the ":doc:`Yocto Project
|
||||||
Terms </ref-manual/terms>`" section of the Yocto Project
|
Terms </ref-manual/terms>`" section of the Yocto Project
|
||||||
Reference Manual, this section provides the definitions of some terms
|
Reference Manual, this section provides the definitions of some terms
|
||||||
helpful for getting started:
|
helpful for getting started:
|
||||||
|
|||||||
Reference in New Issue
Block a user