]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
ref-manual, mega-manual: New section for images/SDK
authorScott Rifenbark <scott.m.rifenbark@intel.com>
Fri, 2 Aug 2013 13:56:40 +0000 (16:56 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 13 Aug 2013 12:18:47 +0000 (13:18 +0100)
Fixes [YOCTO #2808]

Added a new section for the closer look at how BitBake creates
images and the SDK installer files.  This included the section
itself, a new .PNG figure that had to be added to the figures
directory of both the ref-manual and the mega-manual.  Finally,
the Makefile needed to be edited so that the tarballs for the
ref-manual and mega-manual also included the new figure.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
documentation/Makefile
documentation/mega-manual/figures/images-sdk.png [new file with mode: 0644]
documentation/ref-manual/figures/images-sdk.png [new file with mode: 0644]
documentation/ref-manual/ref-structure.xml
documentation/ref-manual/technical-details.xml

index ca70bce772bfd528c81a2e97ac7aa212b16809aa..e286ea4ddcf4c4461228c8439c25d380e25514ca 100644 (file)
@@ -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 (file)
index 0000000..c124a45
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 (file)
index 0000000..c124a45
Binary files /dev/null and b/documentation/ref-manual/figures/images-sdk.png differ
index d4825115168a15879988eaf3147314e49fcee697..1d19ffd07f223addfe4a9bd3d877023326cbdea1 100644 (file)
         <title><filename>build/tmp/deploy/</filename></title>
 
         <para>
-            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 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>
+            variable points to this directory.
+            For more detail on the contents of the <filename>deploy</filename>
+            directory, see the
+            "<link linkend='images-and-application-development-sdk'>Images and Application Development SDK</link>"
+            section.
         </para>
     </section>
 
index c7a49da946a51952ddd7e87086669896afd109b2..6ae8ee50e0a8d96edfbe9ba50ae4b875e0e2e4f2 100644 (file)
             <filename>do_package_write_ipk</filename> for IPK packages).
         </para>
     </section>
+
+    <section id='images-and-application-development-sdk'>
+        <title>Images and Application Development SDK</title>
+
+        <para>
+            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
+            <link linkend='a-closer-look-at-the-yocto-project-development-environment'>Yocto Project Development Environment</link>
+            figure that the output (shown in red) are images and SDKs.
+            This section is going to look more closely at this output:
+            <imagedata fileref="figures/images-sdk.png" align="center" width="5in" depth="4in" />
+        </para>
+
+        <section id='images-dev-environment'>
+            <title>Images</title>
+
+            <para>
+                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
+                "<link linkend='ref-images'>Images</link>" chapter for a list
+                of example images that the Yocto Project provides.
+            </para>
+
+            <para>
+                Images are kept in the
+                <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
+                inside the <filename>deploy/images</filename> folder as shown
+                in the figure.
+                This folder contains any files expected to be loaded on the
+                target device.
+                The
+                <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>
+                variable points to the <filename>deploy</filename> directory.
+                <itemizedlist>
+                    <listitem><para><filename>&lt;image&gt;</filename>:
+                        A <filename>*.bin</filename> image file.
+                        The <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
+                        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 <filename>deploy/images</filename> directory can
+                        contain multiple image files.</para></listitem>
+                    <listitem><para><filename>&lt;root-filesystem&gt;</filename>:
+                        Root filesystems for the target device (e.g.
+                        <filename>*.ext3</filename> or <filename>*.bz2</filename>
+                        files).
+                        The <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
+                        variable setting determines the root filesystem
+                        type.
+                        The <filename>deploy/images</filename> directory can
+                        contain multiple root filesystems.</para></listitem>
+                    <listitem><para><filename>&lt;kernel-modules&gt;</filename>:
+                        Tarballs that contain all the modules used by the
+                        kernel.
+                        Kernel module tarballs exist for legacy purposes and
+                        can be suppressed by setting the
+                        <link linkend='var-MODULE_TARBALL_DEPLOY'><filename>MODULE_TARBALL_DEPLOY</filename></link>
+                        variable to "0".
+                        The <filename>deploy/images</filename> directory can
+                        contain multiple kernel module tarballs.
+                        </para></listitem>
+                    <listitem><para><filename>&lt;bootloaders&gt;</filename>:
+                        Bootloaders supporting the image.
+                        The <filename>deploy/images</filename> directory can
+                        contain multiple bootloaders.
+                        </para></listitem>
+                    <listitem><para><filename>&lt;symlinks&gt;</filename>:
+                        The <filename>images/deploy</filename> 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.</para></listitem>
+                </itemizedlist>
+            </para>
+        </section>
+
+        <section id='sdk-dev-environment'>
+            <title>Application Development SDK</title>
+
+            <para>
+                An Application Development SDK (referred to as an
+                "SDK installer" in this section) is a self-extracting SDK
+                installer file (<filename>*.sh</filename>) 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.
+            </para>
+
+            <note>
+                <para>
+                    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.
+                </para>
+
+                <para>
+                    For background information on cross-development toolchains
+                    in the Yocto Project development environment, see the
+                    "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
+                    section.
+                    For information on setting up a cross-development
+                    environment, see the
+                    "<ulink url='&YOCTO_DOCS_ADT_URL;#installing-the-adt'>Installing the ADT and Toolchains</ulink>"
+                    section in the Yocto Project Application Developer's Guide.
+                </para>
+            </note>
+
+            <para>
+                When built using BitBake, the SDK installers are kept in the
+                <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
+                inside the <filename>deploy/sdk</filename> folder as shown
+                in the figure at the beginning of this section.
+                Several variables exist that help configure these files:
+                <itemizedlist>
+                    <listitem><para><link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
+                        Points to the <filename>deploy</filename>
+                        directory.</para></listitem>
+                    <listitem><para><link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>:
+                        Specifies the architecture of the machine
+                        on which the cross-development tools are run to
+                        create packages for the target hardware.
+                        </para></listitem>
+                    <listitem><para><link linkend='var-SDKIMAGE_FEATURES'><filename>SDKIMAGE_FEATURES</filename></link>:
+                        Lists the features to include in the libraries.
+                        </para></listitem>
+                    <listitem><para><link linkend='var-TOOLCHAIN_HOSTS_TASKS'><filename>TOOLCHAIN_HOSTS_TASKS</filename></link>:
+                        Lists packages that make up the host
+                        part of the SDK installer (i.e. the part that runs on
+                        the <filename>SDKMACHINE</filename>).
+                        When you use <filename>bitbake sdk_populate</filename>
+                        to create the SDK installer, a set of default tasks
+                        apply.
+                        This variable allows you to add more tasks.
+                        </para></listitem>
+                    <listitem><para><link linkend='var-TOOLCHAIN_TARGET_TASKS'><filename>TOOLCHAIN_TARGET_TASKS</filename></link>:
+                        Lists packages that make up the target part
+                        of the SDK installer (i.e. the part built for the
+                        target hardware).
+                        </para></listitem>
+                </itemizedlist>
+            </para>
+        </section>
+    </section>
 </section>
 
 <section id="cross-development-toolchain-generation">