diff --git a/documentation/Makefile b/documentation/Makefile index ca70bce772..e286ea4ddc 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -198,7 +198,7 @@ TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png figures figures/sched-wakeup-profile.png figures/sysprof-callers.png \ figures/sysprof-copy-from-user.png figures/sysprof-copy-to-user.png figures/cross-development-toolchains.png \ figures/yocto-environment-ref.png figures/user-configuration.png figures/source-input.png \ - figures/package-feeds.png figures/layer-input.png + figures/package-feeds.png figures/layer-input.png figures/images-sdk.png endif MANUALS = $(DOC)/$(DOC).html @@ -214,7 +214,8 @@ TARFILES = ref-manual.html ref-style.css figures/poky-title.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/user-configuration.png figures/yocto-environment-ref.png \ + figures/images-sdk.png MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse FIGURES = figures STYLESHEET = $(DOC)/*.css diff --git a/documentation/mega-manual/figures/images-sdk.png b/documentation/mega-manual/figures/images-sdk.png new file mode 100644 index 0000000000..c124a452a3 Binary files /dev/null and b/documentation/mega-manual/figures/images-sdk.png differ diff --git a/documentation/ref-manual/figures/images-sdk.png b/documentation/ref-manual/figures/images-sdk.png new file mode 100644 index 0000000000..c124a452a3 Binary files /dev/null and b/documentation/ref-manual/figures/images-sdk.png differ diff --git a/documentation/ref-manual/ref-structure.xml b/documentation/ref-manual/ref-structure.xml index d482511516..1d19ffd07f 100644 --- a/documentation/ref-manual/ref-structure.xml +++ b/documentation/ref-manual/ref-structure.xml @@ -356,7 +356,14 @@ <filename>build/tmp/deploy/</filename> - This directory contains any "end result" output from the OpenEmbedded build process. + This directory contains any "end result" output from the + OpenEmbedded build process. + The DEPLOY_DIR + variable points to this directory. + For more detail on the contents of the deploy + directory, see the + "Images and Application Development SDK" + section. diff --git a/documentation/ref-manual/technical-details.xml b/documentation/ref-manual/technical-details.xml index c7a49da946..6ae8ee50e0 100644 --- a/documentation/ref-manual/technical-details.xml +++ b/documentation/ref-manual/technical-details.xml @@ -796,6 +796,169 @@ do_package_write_ipk for IPK packages). + +
+ Images and Application Development SDK + + + The purpose of using the OpenEmbedded build system is to produce + an image or a Software Development Kit (SDK). + You can see from the main + Yocto Project Development Environment + figure that the output (shown in red) are images and SDKs. + This section is going to look more closely at this output: + + + +
+ Images + + + The images produced by BitBake are compressed forms of the + root filesystems that are ready to boot on a target device. + You can see the + "Images" chapter for a list + of example images that the Yocto Project provides. + + + + Images are kept in the + Build Directory + inside the deploy/images folder as shown + in the figure. + This folder contains any files expected to be loaded on the + target device. + The + DEPLOY_DIR + variable points to the deploy directory. + + <image>: + A *.bin image file. + The KERNEL_IMAGETYPE + variable setting determines the naming scheme for the + image file. + Depending on that variable, the file could begin with + a variety of naming strings. + The deploy/images directory can + contain multiple image files. + <root-filesystem>: + Root filesystems for the target device (e.g. + *.ext3 or *.bz2 + files). + The IMAGE_FSTYPES + variable setting determines the root filesystem + type. + The deploy/images directory can + contain multiple root filesystems. + <kernel-modules>: + Tarballs that contain all the modules used by the + kernel. + Kernel module tarballs exist for legacy purposes and + can be suppressed by setting the + MODULE_TARBALL_DEPLOY + variable to "0". + The deploy/images directory can + contain multiple kernel module tarballs. + + <bootloaders>: + Bootloaders supporting the image. + The deploy/images directory can + contain multiple bootloaders. + + <symlinks>: + The images/deploy folder contains + a symbolic link for each actual file in the folder. + Links exist for all types of files (i.e. images, + root filesystems, bootloaders, and kernel module + tarballs). + The link scheme for images is such that a single link + exists for the most recently built image. + In addition to that single image link, additional + links exist on a one-for-one basis that map to each + physical image file. + + +
+ +
+ Application Development SDK + + + An Application Development SDK (referred to as an + "SDK installer" in this section) is a self-extracting SDK + installer file (*.sh) that, when run, + installs a cross-development toolchain, a set of libraries + and headers, and an SDK environment setup script. + Running this installer essentially sets up your + cross-development environment. + You can think of the cross-toolchains as the "host" part + because they run on the SDK machine. + You can think of the libraries and headers as the "target" + part because they are built for the target hardware. + The setup script is added so that you can initialize 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, + building and installing your own SKD installer, or running + an Application Development Toolkit (ADT) installer to + install not just cross-development toolchains + but also additional tools to help in this type of + development. + + + + 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 + "Installing the ADT and Toolchains" + section in the Yocto Project Application Developer's Guide. + + + + + When built using BitBake, the SDK installers are kept in the + Build Directory + inside the deploy/sdk folder as shown + in the figure at the beginning of this section. + Several variables exist that help configure these files: + + DEPLOY_DIR: + Points to the deploy + directory. + SDKMACHINE: + Specifies the architecture of the machine + on which the cross-development tools are run to + create packages for the target hardware. + + SDKIMAGE_FEATURES: + Lists the features to include in the libraries. + + TOOLCHAIN_HOSTS_TASKS: + Lists packages that make up the host + part of the SDK installer (i.e. the part that runs on + the SDKMACHINE). + When you use bitbake sdk_populate + to create the SDK installer, a set of default tasks + apply. + This variable allows you to add more tasks. + + TOOLCHAIN_TARGET_TASKS: + Lists packages that make up the target part + of the SDK installer (i.e. the part built for the + target hardware). + + + +
+