diff --git a/documentation/Makefile b/documentation/Makefile index c6584af546..bb7f327598 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -88,6 +88,12 @@ ifeq ($(DOC),overview-manual) XSLTOPTS = --xinclude ALLPREQ = html eclipse tarball TARFILES = overview-style.css overview-manual.html figures/overview-title.png \ + figures/git-workflow.png figures/source-repos.png figures/index-downloads.png \ + figures/yp-download.png figures/yocto-environment-ref.png figures/user-configuration.png \ + figures/layer-input.png figures/source-input.png figures/package-feeds.png \ + figures/source-fetching.png figures/patching.png figures/configuration-compile-autoreconf.png \ + figures/analysis-for-package-splitting.png figures/image-generation.png \ + figures/sdk-generation.png figures/images.png figures/sdk.png \ eclipse MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse FIGURES = figures @@ -274,16 +280,11 @@ ifeq ($(DOC),ref-manual) XSLTOPTS = --xinclude ALLPREQ = html eclipse tarball TARFILES = ref-manual.html ref-style.css figures/poky-title.png figures/YP-flow-diagram.png \ - figures/buildhistory.png figures/buildhistory-web.png eclipse \ - figures/cross-development-toolchains.png figures/layer-input.png \ - figures/package-feeds.png figures/source-input.png \ - figures/user-configuration.png figures/yocto-environment-ref.png \ - figures/images.png figures/sdk.png figures/source-fetching.png \ - figures/patching.png figures/configuration-compile-autoreconf.png \ - figures/analysis-for-package-splitting.png figures/image-generation.png \ - figures/sdk-generation.png figures/building-an-image.png \ - figures/build-workspace-directory.png figures/source-repos.png \ - figures/index-downloads.png figures/yp-download.png figures/git-workflow.png + figures/buildhistory.png figures/buildhistory-web.png \ + figures/cross-development-toolchains.png \ + figures/building-an-image.png \ + figures/build-workspace-directory.png \ + eclipse MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse FIGURES = figures STYLESHEET = $(DOC)/*.css diff --git a/documentation/bsp-guide/bsp.xml b/documentation/bsp-guide/bsp.xml index 6f2aa384b2..6ae3ff9804 100644 --- a/documentation/bsp-guide/bsp.xml +++ b/documentation/bsp-guide/bsp.xml @@ -55,7 +55,7 @@ To help understand the BSP layer concept, consider the BSPs that the Yocto Project supports and provides with each release. You can see the layers in the - Yocto Project Source Repositories + Yocto Project Source Repositories through a web interface at . If you go to that interface, you will find near the bottom of the list @@ -1486,7 +1486,7 @@ Designed to have a command interface somewhat like - Git, each + Git, each tool is structured as a set of sub-commands under a top-level command. The top-level command (yocto-bsp diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index dd74e7cd65..f04846ae36 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml @@ -1507,8 +1507,8 @@ For information on recipe syntax, see the - "Recipe Syntax" - section in the Yocto Project Reference Manual. + "Recipe Syntax" + section in the Yocto Project Overview Manual. @@ -1798,8 +1798,8 @@ You can find more information about the build process in - "The Yocto Project Development Environment" - chapter of the Yocto Project Reference Manual. + "The Yocto Project Development Environment" + chapter of the Yocto Project Overview Manual. @@ -1815,8 +1815,8 @@ Your recipe must have a SRC_URI variable that points to where the source is located. For a graphical representation of source locations, see the - "Sources" - section in the Yocto Project Reference Manual. + "Sources" + section in the Yocto Project Overview Manual. @@ -5183,7 +5183,7 @@ can use an existing file provided by the Wic installation. As shipped, kickstart files can be found in the Yocto Project - Source Repositories + Source Repositories in the following two locations: poky/meta-yocto-bsp/wic @@ -7458,7 +7458,7 @@ Some notes from Cal: connman.inc file in the meta/recipes-connectivity/connman/ directory of the poky - source repository. + source repository. You can also find examples in meta/classes/kernel.bbclass. diff --git a/documentation/dev-manual/dev-manual-newbie.xml b/documentation/dev-manual/dev-manual-newbie.xml index a0fbb4bfd1..638d9112c7 100644 --- a/documentation/dev-manual/dev-manual-newbie.xml +++ b/documentation/dev-manual/dev-manual-newbie.xml @@ -99,7 +99,7 @@ with the OpenEmbedded build system is advisable. Of the SCMs BitBake supports, the Yocto Project team strongly recommends using - Git. + Git. Git is a distributed system that is easy to backup, allows you to work remotely, and then connects back to the infrastructure. @@ -310,7 +310,8 @@ Consider the following: - Use Git + Use + Git as the source control system. @@ -324,7 +325,7 @@ Separate the project's Metadata and code by using separate Git repositories. See the - "Yocto Project Source Repositories" + "Yocto Project Source Repositories" section for information on these repositories. See the "Working With Yocto Project Source Files" @@ -548,8 +549,8 @@ pull the change into the component's upstream repository. You do this by pushing to a contribution repository that is upstream. See the - "Workflows" - section in the Yocto Project Reference Manual for additional + "Workflows" + section in the Yocto Project Overview Manual for additional concepts on working in the Yocto Project development environment. @@ -748,7 +749,7 @@ Search by File: - Using Git, + Using Git, you can enter the following command to bring up a short list of all commits against a specific file: diff --git a/documentation/dev-manual/dev-manual-start.xml b/documentation/dev-manual/dev-manual-start.xml index ff8b56e62b..64d048d240 100644 --- a/documentation/dev-manual/dev-manual-start.xml +++ b/documentation/dev-manual/dev-manual-start.xml @@ -262,13 +262,13 @@ For concepts and introductory information about Git as it is used in the Yocto Project, see the - "Git" - section in the Yocto Project Reference Manual. + "Git" + section in the Yocto Project Overview Manual. For concepts on Yocto Project source repositories, see the - "Yocto Project Source Repositories" - section in the Yocto Project Reference Manual." + "Yocto Project Source Repositories" + section in the Yocto Project Overview Manual." @@ -279,7 +279,7 @@ Working from a copy of the upstream Yocto Project - Source Repositories + Source Repositories is the preferred method for obtaining and using a Yocto Project release. You can view the Yocto Project Source Repositories at @@ -308,7 +308,7 @@ Find the URL Used to Clone the Repository: At the bottom of the page, note the URL used to - clone + clone that repository (e.g. &YOCTO_GIT_URL;/poky). @@ -468,7 +468,7 @@ You create your Source Directory by using - Git to clone a local + Git to clone a local copy of the upstream poky repository. Tip The preferred method of getting the Yocto Project Source @@ -734,8 +734,8 @@ Build Directory under tmp/deploy/images. For detailed information on the build process using BitBake, see the - "Images" - section in the Yocto Project Reference Manual. + "Images" + section in the Yocto Project Overview Manual. You can also reference the "Building Images" section in the Yocto Project Quick Start. diff --git a/documentation/kernel-dev/kernel-dev-advanced.xml b/documentation/kernel-dev/kernel-dev-advanced.xml index c3013b8f76..11ab37ffaf 100644 --- a/documentation/kernel-dev/kernel-dev-advanced.xml +++ b/documentation/kernel-dev/kernel-dev-advanced.xml @@ -21,7 +21,7 @@ Kernel Metadata exists in many places. One area in the Yocto Project - Source Repositories + Source Repositories is the yocto-kernel-cache Git repository. You can find this repository grouped under the "Yocto Linux Kernel" heading in the diff --git a/documentation/kernel-dev/kernel-dev-common.xml b/documentation/kernel-dev/kernel-dev-common.xml index b8fd870162..5b392a144c 100644 --- a/documentation/kernel-dev/kernel-dev-common.xml +++ b/documentation/kernel-dev/kernel-dev-common.xml @@ -79,7 +79,7 @@ The previous commands assume the - Source Repositories + Source Repositories (i.e. poky) have been cloned using Git and the local repository is named "poky". @@ -303,7 +303,7 @@ The previous commands assume the - Source Repositories + Source Repositories (i.e. poky) have been cloned using Git and the local repository is named "poky". diff --git a/documentation/kernel-dev/kernel-dev-concepts-appx.xml b/documentation/kernel-dev/kernel-dev-concepts-appx.xml index fbecc13875..231ef9a43d 100644 --- a/documentation/kernel-dev/kernel-dev-concepts-appx.xml +++ b/documentation/kernel-dev/kernel-dev-concepts-appx.xml @@ -49,7 +49,7 @@ You can find a web interface to the Yocto Linux kernels in the - Source Repositories + Source Repositories at . If you look at the interface, you will see to the left a @@ -239,8 +239,8 @@ . You can also get an introduction to Git as it applies to the Yocto Project in the - "Git" - section in the Yocto Project Reference Manual. + "Git" + section in the Yocto Project Overview Manual. The latter reference provides an overview of Git and presents a minimal set of Git commands that allows you to be functional using Git. @@ -381,7 +381,7 @@ generic kernel just for conceptual purposes. Also keep in mind that this structure represents the Yocto Project - Source Repositories + Source Repositories that are either pulled from during the build or established on the host development system prior to the build by either cloning a particular kernel's Git repository or by diff --git a/documentation/mega-manual/mega-manual.xml b/documentation/mega-manual/mega-manual.xml index 22b3a86a4d..68fb1e17d8 100644 --- a/documentation/mega-manual/mega-manual.xml +++ b/documentation/mega-manual/mega-manual.xml @@ -138,6 +138,9 @@ + + @@ -233,9 +236,6 @@ - - diff --git a/documentation/ref-manual/figures/analysis-for-package-splitting.png b/documentation/overview-manual/figures/analysis-for-package-splitting.png similarity index 100% rename from documentation/ref-manual/figures/analysis-for-package-splitting.png rename to documentation/overview-manual/figures/analysis-for-package-splitting.png diff --git a/documentation/ref-manual/figures/configuration-compile-autoreconf.png b/documentation/overview-manual/figures/configuration-compile-autoreconf.png similarity index 100% rename from documentation/ref-manual/figures/configuration-compile-autoreconf.png rename to documentation/overview-manual/figures/configuration-compile-autoreconf.png diff --git a/documentation/ref-manual/figures/git-workflow.png b/documentation/overview-manual/figures/git-workflow.png similarity index 100% rename from documentation/ref-manual/figures/git-workflow.png rename to documentation/overview-manual/figures/git-workflow.png diff --git a/documentation/ref-manual/figures/image-generation.png b/documentation/overview-manual/figures/image-generation.png similarity index 100% rename from documentation/ref-manual/figures/image-generation.png rename to documentation/overview-manual/figures/image-generation.png diff --git a/documentation/ref-manual/figures/images.png b/documentation/overview-manual/figures/images.png similarity index 100% rename from documentation/ref-manual/figures/images.png rename to documentation/overview-manual/figures/images.png diff --git a/documentation/ref-manual/figures/index-downloads.png b/documentation/overview-manual/figures/index-downloads.png similarity index 100% rename from documentation/ref-manual/figures/index-downloads.png rename to documentation/overview-manual/figures/index-downloads.png diff --git a/documentation/ref-manual/figures/layer-input.png b/documentation/overview-manual/figures/layer-input.png similarity index 100% rename from documentation/ref-manual/figures/layer-input.png rename to documentation/overview-manual/figures/layer-input.png diff --git a/documentation/ref-manual/figures/package-feeds.png b/documentation/overview-manual/figures/package-feeds.png similarity index 100% rename from documentation/ref-manual/figures/package-feeds.png rename to documentation/overview-manual/figures/package-feeds.png diff --git a/documentation/ref-manual/figures/patching.png b/documentation/overview-manual/figures/patching.png similarity index 100% rename from documentation/ref-manual/figures/patching.png rename to documentation/overview-manual/figures/patching.png diff --git a/documentation/ref-manual/figures/sdk-generation.png b/documentation/overview-manual/figures/sdk-generation.png similarity index 100% rename from documentation/ref-manual/figures/sdk-generation.png rename to documentation/overview-manual/figures/sdk-generation.png diff --git a/documentation/ref-manual/figures/sdk.png b/documentation/overview-manual/figures/sdk.png similarity index 100% rename from documentation/ref-manual/figures/sdk.png rename to documentation/overview-manual/figures/sdk.png diff --git a/documentation/ref-manual/figures/source-fetching.png b/documentation/overview-manual/figures/source-fetching.png similarity index 100% rename from documentation/ref-manual/figures/source-fetching.png rename to documentation/overview-manual/figures/source-fetching.png diff --git a/documentation/ref-manual/figures/source-input.png b/documentation/overview-manual/figures/source-input.png similarity index 100% rename from documentation/ref-manual/figures/source-input.png rename to documentation/overview-manual/figures/source-input.png diff --git a/documentation/overview-manual/figures/source-repos.png b/documentation/overview-manual/figures/source-repos.png new file mode 100644 index 0000000000..603300b6d2 Binary files /dev/null and b/documentation/overview-manual/figures/source-repos.png differ diff --git a/documentation/ref-manual/figures/user-configuration.png b/documentation/overview-manual/figures/user-configuration.png old mode 100755 new mode 100644 similarity index 100% rename from documentation/ref-manual/figures/user-configuration.png rename to documentation/overview-manual/figures/user-configuration.png diff --git a/documentation/ref-manual/figures/yocto-environment-ref.png b/documentation/overview-manual/figures/yocto-environment-ref.png similarity index 100% rename from documentation/ref-manual/figures/yocto-environment-ref.png rename to documentation/overview-manual/figures/yocto-environment-ref.png diff --git a/documentation/ref-manual/figures/yp-download.png b/documentation/overview-manual/figures/yp-download.png similarity index 100% rename from documentation/ref-manual/figures/yp-download.png rename to documentation/overview-manual/figures/yp-download.png diff --git a/documentation/ref-manual/ref-development-environment.xml b/documentation/overview-manual/overview-development-environment.xml similarity index 87% rename from documentation/ref-manual/ref-development-environment.xml rename to documentation/overview-manual/overview-development-environment.xml index 543a669e05..32fe1816ab 100644 --- a/documentation/ref-manual/ref-development-environment.xml +++ b/documentation/overview-manual/overview-development-environment.xml @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ %poky; ] > - + The Yocto Project Development Environment @@ -236,7 +236,7 @@ release to facilitate this workflow. You can find these scripts in the scripts folder of the - Source Directory. + Source Directory. For information on how to use these scripts, see the "Using Scripts to Push a Change Upstream and Request a Pull" section in the Yocto Project Development Tasks Manual. @@ -637,8 +637,8 @@ column and see the URL at the bottom of the page that you need to clone a Git repository for that particular item. Having a local Git repository of the - Source Directory, which is - usually named "poky", allows + Source Directory, + which is usually named "poky", allows you to make changes, contribute to the history, and ultimately enhance the Yocto Project's tools, Board Support Packages, and so forth. @@ -654,7 +654,7 @@ The recommended method for setting up the Yocto Project - Source Directory + Source Directory and the files for supported BSPs (e.g., meta-intel) is to use Git to create a local copy of @@ -663,7 +663,7 @@ Be sure to always work in matching branches for both the selected BSP repository and the - Source Directory + Source Directory (i.e. poky) repository. For example, if you have checked out the "master" branch of poky and you are going to use @@ -774,11 +774,11 @@ When you build an image using the Yocto Project, the build process uses a known list of licenses to ensure compliance. You can find this list in the - Source Directory at - meta/files/common-licenses. + Source Directory + at meta/files/common-licenses. Once the build completes, the list of all licenses found and used during that build are kept in the - Build Directory + Build Directory at tmp/deploy/licenses. @@ -809,7 +809,7 @@ You can find a list of the combined SPDX and OSI licenses that the Yocto Project uses in the meta/files/common-licenses directory in your - Source Directory. + Source Directory. @@ -1061,9 +1061,9 @@ You can use overrides to set a value conditionally, typically based on how the recipe is being built. For example, to set the - KBRANCH + KBRANCH variable's value to "standard/base" for any target - MACHINE, + MACHINE, except for qemuarm where it should be set to "standard/arm-versatile-926ejs", you would do the following: @@ -1074,9 +1074,9 @@ Overrides are also used to separate alternate values of a variable in other situations. For example, when setting variables such as - FILES + FILES and - RDEPENDS + RDEPENDS that are specific to individual packages produced by a recipe, you should always use an override that specifies the name of the package. @@ -1127,7 +1127,7 @@ The following diagram represents development at a high level. The remainder of this chapter expands on the fundamental input, output, process, and - Metadata) blocks + Metadata) blocks that make up development in the Yocto Project environment. @@ -1148,7 +1148,7 @@ Upstream releases, local projects, and SCMs. Build System: Processes under the control of - BitBake. + BitBake. This block expands on how BitBake fetches source, applies patches, completes compilation, analyzes output for package generation, creates and tests packages, generates images, and @@ -1187,7 +1187,7 @@ - + @@ -1195,7 +1195,7 @@ a build. These files are *.conf files. The minimally necessary ones reside as example files in the - Source Directory. + Source Directory. For simplicity, this section refers to the Source Directory as the "Poky Directory." @@ -1221,12 +1221,12 @@ configuration files when you source the build environment script (i.e. - &OE_INIT_FILE;). + &OE_INIT_FILE;). Sourcing the build environment script creates a - Build Directory + Build Directory if one does not already exist. BitBake uses the Build Directory for all its work during builds. The Build Directory has a conf directory that @@ -1273,26 +1273,26 @@ Parallelism Options: Controlled by the - BB_NUMBER_THREADS, - PARALLEL_MAKE, + BB_NUMBER_THREADS, + PARALLEL_MAKE, and BB_NUMBER_PARSE_THREADS variables. Target Machine Selection: Controlled by the - MACHINE + MACHINE variable. Download Directory: Controlled by the - DL_DIR + DL_DIR variable. Shared State Directory: Controlled by the - SSTATE_DIR + SSTATE_DIR variable. Build Output: Controlled by the - TMPDIR + TMPDIR variable. @@ -1332,11 +1332,11 @@ You can set these default build properties here. A good example is perhaps the packaging format to use through the - PACKAGE_CLASSES + PACKAGE_CLASSES variable. One useful scenario for using the conf/site.conf file is to extend your - BBPATH + BBPATH variable to include the path to a conf/site.conf. Then, when BitBake looks for Metadata using @@ -1495,7 +1495,8 @@ When your recipes inherit a class, they take on the settings and functions for that class. You can read more about class files in the - "Classes" section. + "Classes" + section of the Yocto Reference Manual. conf: This area holds configuration files for the @@ -1605,7 +1606,7 @@ BitBake uses the - SRC_URI + SRC_URI variable to point to source files regardless of their location. Each recipe must have a SRC_URI variable that points to the source. @@ -1614,13 +1615,13 @@ Another area that plays a significant role in where source files come from is pointed to by the - DL_DIR + DL_DIR variable. This area is a cache that can hold previously downloaded source. You can also instruct the OpenEmbedded build system to create tarballs from Git repositories, which is not the default behavior, and store them in the DL_DIR by using the - BB_GENERATE_MIRROR_TARBALLS + BB_GENERATE_MIRROR_TARBALLS variable. @@ -1671,7 +1672,7 @@ The canonical method through which to include a local project is to use the - externalsrc + externalsrc class to include that local project. You use either the local.conf or a recipe's append file to override or set the @@ -1682,7 +1683,7 @@ For information on how to use the externalsrc class, see the - "externalsrc.bbclass" + "externalsrc.bbclass" section. @@ -1695,9 +1696,9 @@ through an SCM such as Git or Subversion. In this case, a repository is cloned or checked out. The - do_fetch + do_fetch task inside BitBake uses - the SRC_URI + the SRC_URI variable and the argument's prefix to determine the correct fetcher module. @@ -1705,15 +1706,15 @@ For information on how to have the OpenEmbedded build system generate tarballs for Git repositories and place them in the - DL_DIR + DL_DIR directory, see the - BB_GENERATE_MIRROR_TARBALLS + BB_GENERATE_MIRROR_TARBALLS variable. When fetching a repository, BitBake uses the - SRCREV + SRCREV variable to determine the specific revision from which to build. @@ -1724,15 +1725,16 @@ Two kinds of mirrors exist: pre-mirrors and regular mirrors. - The PREMIRRORS + The + PREMIRRORS and - MIRRORS + MIRRORS variables point to these, respectively. BitBake checks pre-mirrors before looking upstream for any source files. Pre-mirrors are appropriate when you have a shared directory that is not a directory defined by the - DL_DIR + DL_DIR variable. A Pre-mirror typically points to a shared directory that is local to your organization. @@ -1752,7 +1754,7 @@ When the OpenEmbedded build system generates an image or an SDK, it gets the packages from a package feed area located in the - Build Directory. + Build Directory. The general Yocto Project Development Environment figure shows this package feeds area in the upper-right corner. @@ -1770,12 +1772,12 @@ The OpenEmbedded build system provides classes to generate different package types, and you specify which classes to enable through the - PACKAGE_CLASSES + PACKAGE_CLASSES variable. Before placing the packages into package feeds, the build process validates them with generated output quality assurance checks through the - insane + insane class. @@ -1789,7 +1791,7 @@ In particular, the following defines where package files are kept: - DEPLOY_DIR: + DEPLOY_DIR: Defined as tmp/deploy in the Build Directory. @@ -1797,14 +1799,14 @@ Depending on the package manager used, the package type sub-folder. Given RPM, IPK, or DEB packaging and tarball creation, the - DEPLOY_DIR_RPM, - DEPLOY_DIR_IPK, - DEPLOY_DIR_DEB, + DEPLOY_DIR_RPM, + DEPLOY_DIR_IPK, + DEPLOY_DIR_DEB, or - DEPLOY_DIR_TAR, + DEPLOY_DIR_TAR, variables are used, respectively. - PACKAGE_ARCH: + PACKAGE_ARCH: Defines architecture-specific sub-folders. For example, packages could exist for the i586 or qemux86 architectures. @@ -1817,11 +1819,11 @@ generate packages and place them into the package holding area (e.g. do_package_write_ipk for IPK packages). See the - "do_package_write_deb", - "do_package_write_ipk", - "do_package_write_rpm", + "do_package_write_deb", + "do_package_write_ipk", + "do_package_write_rpm", and - "do_package_write_tar" + "do_package_write_tar" sections for additional information. As an example, consider a scenario where an IPK packaging manager is being used and package architecture support for both i586 @@ -1838,7 +1840,7 @@ The OpenEmbedded build system uses - BitBake + BitBake to produce images. You can see from the general Yocto Project Development Environment figure, @@ -1864,15 +1866,15 @@ The - do_fetch + do_fetch and - do_unpack + do_unpack tasks fetch the source files and unpack them into the work directory. For every local file (e.g. file://) that is part of a recipe's - SRC_URI + SRC_URI statement, the OpenEmbedded build system takes a checksum of the file for the recipe and inserts the checksum into the signature for the do_fetch. @@ -1881,17 +1883,18 @@ depend on it are re-executed. By default, everything is accomplished in the - Build Directory, + Build Directory, which has a defined structure. For additional general information on the Build Directory, see the - "build/" - section. + "build/" + section in the Yocto Project Reference Manual. Unpacked source files are pointed to by the - S variable. + S + variable. Each recipe has an area in the Build Directory where the unpacked source code resides. The name of that directory for any given recipe is defined from @@ -1899,30 +1902,30 @@ You can see the variables that define these directories by looking at the figure: - TMPDIR - + TMPDIR - The base directory where the OpenEmbedded build system performs all its work during the build. - PACKAGE_ARCH - + PACKAGE_ARCH - The architecture of the built package or packages. - TARGET_OS - + TARGET_OS - The operating system of the target device. - PN - + PN - The name of the built package. - PV - + PV - The version of the recipe used to build the package. - PR - + PR - The revision of the recipe used to build the package. - WORKDIR - + WORKDIR - The location within TMPDIR where a specific package is built. - S - + S - Contains the unpacked source files for a given recipe. @@ -1940,10 +1943,10 @@ The - do_patch + do_patch task processes recipes by using the - SRC_URI + SRC_URI variable to locate applicable patch files, which by default are *.patch or *.diff files, or any file if @@ -1955,7 +1958,8 @@ BitBake finds and applies multiple patches for a single recipe in the order in which it finds the patches. Patches are applied to the recipe's source files located in the - S directory. + S + directory. @@ -1979,13 +1983,13 @@ This step in the build process consists of three tasks: - do_prepare_recipe_sysroot: + do_prepare_recipe_sysroot: This task sets up the two sysroots in - ${WORKDIR} + ${WORKDIR} (i.e. recipe-sysroot and recipe-sysroot-native) so that the sysroots contain the contents of the - do_populate_sysroot + do_populate_sysroot tasks of the recipes on which the recipe containing the tasks depends. A sysroot exists for both the target and for the native @@ -2002,18 +2006,19 @@ The configurations handled by the - do_configure + do_configure task are specific to source code configuration for the source code being built by the recipe. If you are using the - autotools + autotools class, you can add additional configuration options by using - the EXTRA_OECONF + the + EXTRA_OECONF or - PACKAGECONFIG_CONFARGS + PACKAGECONFIG_CONFARGS variables. For information on how this variable works within that class, see the @@ -2022,23 +2027,23 @@ do_compile: Once a configuration task has been satisfied, BitBake compiles the source using the - do_compile + do_compile task. Compilation occurs in the directory pointed to by the - B + B variable. Realize that the B directory is, by default, the same as the - S + S directory. do_install: Once compilation is done, BitBake executes the - do_install + do_install task. This task copies files from the B directory and places them in a holding area pointed to by the - D + D variable. @@ -2056,12 +2061,12 @@ The - do_package + do_package and - do_packagedata + do_packagedata tasks combine to analyze the files found in the - D directory + D directory and split them into subsets based on available packages and files. The analyzing process involves the following as well as other @@ -2074,29 +2079,29 @@ Working, staged, and intermediate results of the analysis and package splitting process use these areas: - PKGD - + PKGD - The destination directory for packages before they are split. - PKGDATA_DIR - + PKGDATA_DIR - A shared, global-state directory that holds data generated during the packaging process. - PKGDESTWORK - + PKGDESTWORK - A temporary work area used by the do_package task. - PKGDEST - + PKGDEST - The parent directory for packages after they have been split. - The FILES + The FILES variable defines the files that go into each package in - PACKAGES. + PACKAGES. If you want details on how this is accomplished, you can look at the - package + package class. @@ -2136,31 +2141,31 @@ The image generation process consists of several stages and depends on several tasks and variables. The - do_rootfs + do_rootfs task creates the root filesystem (file and directory structure) for an image. This task uses several key variables to help create the list of packages to actually install: - IMAGE_INSTALL: + IMAGE_INSTALL: Lists out the base set of packages to install from the Package Feeds area. - PACKAGE_EXCLUDE: + PACKAGE_EXCLUDE: Specifies packages that should not be installed. - IMAGE_FEATURES: + IMAGE_FEATURES: Specifies features to include in the image. Most of these features map to additional packages for installation. - PACKAGE_CLASSES: + PACKAGE_CLASSES: Specifies the package backend to use and consequently helps determine where to locate packages within the Package Feeds area. - IMAGE_LINGUAS: + IMAGE_LINGUAS: Determines the language(s) for which additional language support packages are installed. - PACKAGE_INSTALL: + PACKAGE_INSTALL: The final list of packages passed to the package manager for installation into the image. @@ -2169,7 +2174,7 @@ With - IMAGE_ROOTFS + IMAGE_ROOTFS pointing to the location of the filesystem under construction and the PACKAGE_INSTALL variable providing the final list of packages to install, the root file system is @@ -2207,11 +2212,11 @@ in the same directory as the root filesystem image. This file lists out, line-by-line, the installed packages. The manifest file is useful for the - testimage + testimage class, for example, to determine whether or not to run specific tests. See the - IMAGE_MANIFEST + IMAGE_MANIFEST variable for additional information. @@ -2219,7 +2224,7 @@ Optimizing processes run across the image include mklibs, prelink, and any other post-processing commands as defined by the - ROOTFS_POSTPROCESS_COMMAND + ROOTFS_POSTPROCESS_COMMAND variable. The mklibs process optimizes the size of the libraries, while the @@ -2231,11 +2236,11 @@ After the root filesystem is built, processing begins on the image through the - do_image + do_image task. The build system runs any pre-processing commands as defined by the - IMAGE_PREPROCESS_COMMAND + IMAGE_PREPROCESS_COMMAND variable. This variable specifies a list of functions to call before the OpenEmbedded build system creates the final image output @@ -2246,7 +2251,7 @@ The OpenEmbedded build system dynamically creates do_image_* tasks as needed, based on the image types specified in the - IMAGE_FSTYPES + IMAGE_FSTYPES variable. The process turns everything into an image file or a set of image files and compresses the root filesystem image to reduce @@ -2273,11 +2278,11 @@ The final task involved in image creation is the - do_image_complete + do_image_complete task. This task completes the image by applying any image post processing as defined through the - IMAGE_POSTPROCESS_COMMAND + IMAGE_POSTPROCESS_COMMAND variable. The variable specifies a list of functions to call once the OpenEmbedded build system has created the final image output @@ -2304,11 +2309,11 @@ For more information on the cross-development toolchain generation, see the - "Cross-Development Toolchain Generation" - section. + "Cross-Development Toolchain Generation" + section in the Yocto Project Reference Manual. For information on advantages gained when building a cross-development toolchain using the - do_populate_sdk + do_populate_sdk task, see the "Building an SDK Installer" section in the Yocto Project Application Development and the @@ -2334,7 +2339,7 @@ The target part is the part built for the target hardware and includes libraries and headers. The host part is the part of the SDK that runs on the - SDKMACHINE. + SDKMACHINE. @@ -2362,10 +2367,10 @@ For each task that completes successfully, BitBake writes a stamp file into the - STAMPS_DIR + STAMPS_DIR directory. The beginning of the stamp file's filename is determined by the - STAMP + STAMP variable, and the end of the name consists of the task's name and current input checksum. @@ -2392,9 +2397,9 @@ serve as a marker that some work has been done and that these files do not record task output. The actual task output would usually be somewhere in - TMPDIR + TMPDIR (e.g. in some recipe's - WORKDIR.) + WORKDIR.) What the sstate cache mechanism adds is a way to cache task output that can then be shared between build machines. @@ -2419,8 +2424,8 @@ For details on how to view information about a task's signature, see the - "Viewing Task Variable Dependencies" - section. + "Viewing Task Variable Dependencies" + section in the Yocto Project Reference Manual. @@ -2436,9 +2441,9 @@ shared state (sstate) cache. For information on variables affecting sstate, see the - SSTATE_DIR + SSTATE_DIR and - SSTATE_MIRRORS + SSTATE_MIRRORS variables. @@ -2454,21 +2459,22 @@ (e.g. generating package files in the do_package_write_* task). In other cases, it does not make sense, (e.g. a - do_patch + do_patch task or - do_unpack + do_unpack task) since the work involved would be equal to or greater than the underlying task. In the OpenEmbedded build system, the common tasks that have - setscene variants are do_package, + setscene variants are + do_package, do_package_write_*, - do_deploy, - do_packagedata, + do_deploy, + do_packagedata, and - do_populate_sysroot. + do_populate_sysroot. Notice that these are most of the tasks whose output is an end result. @@ -2556,27 +2562,30 @@ For a list of example images that the Yocto Project provides, see the - "Images" chapter. + "Images" + chapter in the Yocto Project Reference Manual. Images are written out to the - Build Directory - inside the tmp/deploy/images/machine/ + Build Directory + inside the + tmp/deploy/images/machine/ folder as shown in the figure. This folder contains any files expected to be loaded on the target device. The - DEPLOY_DIR + DEPLOY_DIR variable points to the deploy directory, while the - DEPLOY_DIR_IMAGE + DEPLOY_DIR_IMAGE variable points to the appropriate directory containing images for the current configuration. kernel-image: A kernel binary file. - The KERNEL_IMAGETYPE + The + KERNEL_IMAGETYPE variable setting determines the naming scheme for the kernel image file. Depending on that variable, the file could begin with @@ -2588,7 +2597,8 @@ Root filesystems for the target device (e.g. *.ext3 or *.bz2 files). - The IMAGE_FSTYPES + The + IMAGE_FSTYPES variable setting determines the root filesystem image type. The deploy/images/machine @@ -2598,7 +2608,7 @@ Tarballs that contain all the modules built for the kernel. Kernel module tarballs exist for legacy purposes and can be suppressed by setting the - MODULE_TARBALL_DEPLOY + MODULE_TARBALL_DEPLOY variable to "0". The deploy/images/machine directory can contain multiple kernel module tarballs @@ -2654,49 +2664,52 @@ the environment before using the tools. - - - The Yocto Project supports several methods by which you can - set up this cross-development environment. - These methods include downloading pre-built SDK installers - or building and installing your own SDK installer. - - - - For background information on cross-development toolchains - in the Yocto Project development environment, see the - "Cross-Development Toolchain Generation" - section. - For information on setting up a cross-development - environment, see the - Yocto Project Application Development and the Extensible Software Development Kit (eSDK) - manual. - + Notes + + + The Yocto Project supports several methods by which you can + set up this cross-development environment. + These methods include downloading pre-built SDK installers + or building and installing your own SDK installer. + + + For background information on cross-development toolchains + in the Yocto Project development environment, see the + "Cross-Development Toolchain Generation" + section in the Yocto Project Reference Manual. + + + For information on setting up a cross-development + environment, see the + Yocto Project Application Development and the Extensible Software Development Kit (eSDK) + manual. + + Once built, the SDK installers are written out to the deploy/sdk folder inside the - Build Directory + Build Directory as shown in the figure at the beginning of this section. Depending on the type of SDK, several variables exist that help configure these files. The following list shows the variables associated with a standard SDK: - DEPLOY_DIR: + DEPLOY_DIR: Points to the deploy directory. - SDKMACHINE: + SDKMACHINE: Specifies the architecture of the machine on which the cross-development tools are run to create packages for the target hardware. - SDKIMAGE_FEATURES: + SDKIMAGE_FEATURES: Lists the features to include in the "target" part of the SDK. - TOOLCHAIN_HOST_TASK: + TOOLCHAIN_HOST_TASK: Lists packages that make up the host part of the SDK (i.e. the part that runs on the SDKMACHINE). @@ -2706,12 +2719,12 @@ apply. This variable allows you to add more packages. - TOOLCHAIN_TARGET_TASK: + TOOLCHAIN_TARGET_TASK: Lists packages that make up the target part of the SDK (i.e. the part built for the target hardware). - SDKPATH: + SDKPATH: Defines the default SDK installation path offered by the installation script. @@ -2719,34 +2732,34 @@ This next list, shows the variables associated with an extensible SDK: - DEPLOY_DIR: + DEPLOY_DIR: Points to the deploy directory. - SDK_EXT_TYPE: + SDK_EXT_TYPE: Controls whether or not shared state artifacts are copied into the extensible SDK. By default, all required shared state artifacts are copied into the SDK. - SDK_INCLUDE_PKGDATA: + SDK_INCLUDE_PKGDATA: Specifies whether or not packagedata will be included in the extensible SDK for all recipes in the "world" target. - SDK_INCLUDE_TOOLCHAIN: + SDK_INCLUDE_TOOLCHAIN: Specifies whether or not the toolchain will be included when building the extensible SDK. - SDK_LOCAL_CONF_WHITELIST: + SDK_LOCAL_CONF_WHITELIST: A list of variables allowed through from the build system configuration into the extensible SDK configuration. - SDK_LOCAL_CONF_BLACKLIST: + SDK_LOCAL_CONF_BLACKLIST: A list of variables not allowed through from the build system configuration into the extensible SDK configuration. - SDK_INHERIT_BLACKLIST: + SDK_INHERIT_BLACKLIST: A list of classes to remove from the - INHERIT + INHERIT value globally within the extensible SDK configuration. diff --git a/documentation/overview-manual/overview-manual.xml b/documentation/overview-manual/overview-manual.xml index 9eda19a8f7..9af914a924 100644 --- a/documentation/overview-manual/overview-manual.xml +++ b/documentation/overview-manual/overview-manual.xml @@ -84,6 +84,8 @@ + +