summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/technical-details.xml
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2013-08-05 13:45:59 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-08-13 13:18:47 +0100
commit93c76f4c65b6981701bdb91671b2bccde8d84eed (patch)
treedcac912bc8672a88c3750509c00de6912df7c1e6 /documentation/ref-manual/technical-details.xml
parent4b23d26063790c4dad466cf8a0af8ba4a0970f1d (diff)
downloadpoky-93c76f4c65b6981701bdb91671b2bccde8d84eed.tar.gz
ref-manual, mega-manual, Makefile: Updates to expanded dev section
Fixes [YOCTO #2808] Applied review comments to the "Images" and SDK sections that are part of the "A Closer Look at the Yocto Project Development Environment" section. Comments from Paul. They resulted in a single figure being removed and split into two new figures - one for the image part and one for the sdk part. Some terminology issues were cleaned up in the main sections as well as the documented variables sections. Makefile changes involved adding the two new figures and removing the old combined one. (From yocto-docs rev: a32908fa68b9786e295097c16f70a5a9c3cc4c1e) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/ref-manual/technical-details.xml')
-rw-r--r--documentation/ref-manual/technical-details.xml295
1 files changed, 149 insertions, 146 deletions
diff --git a/documentation/ref-manual/technical-details.xml b/documentation/ref-manual/technical-details.xml
index 6ae8ee50e0..97fd629a74 100644
--- a/documentation/ref-manual/technical-details.xml
+++ b/documentation/ref-manual/technical-details.xml
@@ -172,7 +172,7 @@
172 </para> 172 </para>
173 173
174 <para> 174 <para>
175 The generalized Yocto Project Devevelopment Environment consists of 175 The generalized Yocto Project Development Environment consists of
176 several functional areas: 176 several functional areas:
177 <itemizedlist> 177 <itemizedlist>
178 <listitem><para><emphasis>User Configuration:</emphasis> 178 <listitem><para><emphasis>User Configuration:</emphasis>
@@ -797,167 +797,170 @@
797 </para> 797 </para>
798 </section> 798 </section>
799 799
800 <section id='images-and-application-development-sdk'> 800 <section id='images-dev-environment'>
801 <title>Images and Application Development SDK</title> 801 <title>Images</title>
802 802
803 <para> 803 <para>
804 The purpose of using the OpenEmbedded build system is to produce 804 The images produced by the OpenEmbedded build system
805 an image or a Software Development Kit (SDK). 805 are compressed forms of the
806 root filesystems that are ready to boot on a target device.
806 You can see from the main 807 You can see from the main
807 <link linkend='a-closer-look-at-the-yocto-project-development-environment'>Yocto Project Development Environment</link> 808 <link linkend='a-closer-look-at-the-yocto-project-development-environment'>Yocto Project Development Environment</link>
808 figure that the output (shown in red) are images and SDKs. 809 figure that BitBake output in part consists of images.
809 This section is going to look more closely at this output: 810 This section is going to look more closely at this output:
810 <imagedata fileref="figures/images-sdk.png" align="center" width="5in" depth="4in" /> 811 <imagedata fileref="figures/images.png" align="center" width="5in" depth="4in" />
811 </para> 812 </para>
812 813
813 <section id='images-dev-environment'> 814 <para>
814 <title>Images</title> 815 For a list of example images that the Yocto Project provides,
816 the
817 "<link linkend='ref-images'>Images</link>" chapter.
818 </para>
815 819
816 <para> 820 <para>
817 The images produced by BitBake are compressed forms of the 821 Images are written out to the
818 root filesystems that are ready to boot on a target device. 822 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
819 You can see the 823 inside the <filename>deploy/images</filename> folder as shown
820 "<link linkend='ref-images'>Images</link>" chapter for a list 824 in the figure.
821 of example images that the Yocto Project provides. 825 This folder contains any files expected to be loaded on the
822 </para> 826 target device.
827 The
828 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>
829 variable points to the <filename>deploy</filename> directory.
830 <itemizedlist>
831 <listitem><para><filename>&lt;kernel-image&gt;</filename>:
832 A kernel binary file.
833 The <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
834 variable setting determines the naming scheme for the
835 kernel image file.
836 Depending on that variable, the file could begin with
837 a variety of naming strings.
838 The <filename>deploy/images</filename> directory can
839 contain multiple image files.</para></listitem>
840 <listitem><para><filename>&lt;root-filesystem-image&gt;</filename>:
841 Root filesystems for the target device (e.g.
842 <filename>*.ext3</filename> or <filename>*.bz2</filename>
843 files).
844 The <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
845 variable setting determines the root filesystem image
846 type.
847 The <filename>deploy/images</filename> directory can
848 contain multiple root filesystems.</para></listitem>
849 <listitem><para><filename>&lt;kernel-modules&gt;</filename>:
850 Tarballs that contain all the modules used by the
851 kernel.
852 Kernel module tarballs exist for legacy purposes and
853 can be suppressed by setting the
854 <link linkend='var-MODULE_TARBALL_DEPLOY'><filename>MODULE_TARBALL_DEPLOY</filename></link>
855 variable to "0".
856 The <filename>deploy/images</filename> directory can
857 contain multiple kernel module tarballs.
858 </para></listitem>
859 <listitem><para><filename>&lt;bootloaders&gt;</filename>:
860 Bootloaders supporting the image, if applicable to the
861 target machine.
862 The <filename>deploy/images</filename> directory can
863 contain multiple bootloaders.
864 </para></listitem>
865 <listitem><para><filename>&lt;symlinks&gt;</filename>:
866 The <filename>images/deploy</filename> folder contains
867 a symbolic link that points to the most recently built file
868 for each machine.
869 These links might be useful for external scripts that
870 need to obtain the latest version of each file.
871 </para></listitem>
872 </itemizedlist>
873 </para>
874 </section>
823 875
824 <para> 876 <section id='sdk-dev-environment'>
825 Images are kept in the 877 <title>Application Development SDK</title>
826 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
827 inside the <filename>deploy/images</filename> folder as shown
828 in the figure.
829 This folder contains any files expected to be loaded on the
830 target device.
831 The
832 <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>
833 variable points to the <filename>deploy</filename> directory.
834 <itemizedlist>
835 <listitem><para><filename>&lt;image&gt;</filename>:
836 A <filename>*.bin</filename> image file.
837 The <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
838 variable setting determines the naming scheme for the
839 image file.
840 Depending on that variable, the file could begin with
841 a variety of naming strings.
842 The <filename>deploy/images</filename> directory can
843 contain multiple image files.</para></listitem>
844 <listitem><para><filename>&lt;root-filesystem&gt;</filename>:
845 Root filesystems for the target device (e.g.
846 <filename>*.ext3</filename> or <filename>*.bz2</filename>
847 files).
848 The <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
849 variable setting determines the root filesystem
850 type.
851 The <filename>deploy/images</filename> directory can
852 contain multiple root filesystems.</para></listitem>
853 <listitem><para><filename>&lt;kernel-modules&gt;</filename>:
854 Tarballs that contain all the modules used by the
855 kernel.
856 Kernel module tarballs exist for legacy purposes and
857 can be suppressed by setting the
858 <link linkend='var-MODULE_TARBALL_DEPLOY'><filename>MODULE_TARBALL_DEPLOY</filename></link>
859 variable to "0".
860 The <filename>deploy/images</filename> directory can
861 contain multiple kernel module tarballs.
862 </para></listitem>
863 <listitem><para><filename>&lt;bootloaders&gt;</filename>:
864 Bootloaders supporting the image.
865 The <filename>deploy/images</filename> directory can
866 contain multiple bootloaders.
867 </para></listitem>
868 <listitem><para><filename>&lt;symlinks&gt;</filename>:
869 The <filename>images/deploy</filename> folder contains
870 a symbolic link for each actual file in the folder.
871 Links exist for all types of files (i.e. images,
872 root filesystems, bootloaders, and kernel module
873 tarballs).
874 The link scheme for images is such that a single link
875 exists for the most recently built image.
876 In addition to that single image link, additional
877 links exist on a one-for-one basis that map to each
878 physical image file.</para></listitem>
879 </itemizedlist>
880 </para>
881 </section>
882 878
883 <section id='sdk-dev-environment'> 879 <para>
884 <title>Application Development SDK</title> 880 In the overview figure of the
881 <link linkend='a-closer-look-at-the-yocto-project-development-environment'>Yocto Project Development Environment</link>
882 the output labeled "Application Development SDK" represents an
883 SDK.
884 This section is going to take a closer look at this output:
885 <imagedata fileref="figures/sdk.png" align="center" width="5in" depth="4in" />
886 </para>
885 887
888 <para>
889 The specific form of this output is a self-extracting
890 SDK installer (<filename>*.sh</filename>) that, when run,
891 installs the SDK image, which consists of a cross-development
892 toolchain, a set of libraries and headers, and an SDK
893 environment setup script.
894 Running this installer essentially sets up your
895 cross-development environment.
896 You can think of the cross-toolchains as the "host" part
897 because they run on the SDK machine.
898 You can think of the libraries and headers as the "target"
899 part because they are built for the target hardware.
900 The setup script is added so that you can initialize the
901 environment before using the tools.
902 </para>
903
904 <note>
886 <para> 905 <para>
887 An Application Development SDK (referred to as an 906 The Yocto Project supports several methods by which you can
888 "SDK installer" in this section) is a self-extracting SDK 907 set up this cross-development environment.
889 installer file (<filename>*.sh</filename>) that, when run, 908 These methods include downloading pre-built SDK installers,
890 installs a cross-development toolchain, a set of libraries 909 building and installing your own SDK installer, or running
891 and headers, and an SDK environment setup script. 910 an Application Development Toolkit (ADT) installer to
892 Running this installer essentially sets up your 911 install not just cross-development toolchains
893 cross-development environment. 912 but also additional tools to help in this type of
894 You can think of the cross-toolchains as the "host" part 913 development.
895 because they run on the SDK machine.
896 You can think of the libraries and headers as the "target"
897 part because they are built for the target hardware.
898 The setup script is added so that you can initialize the
899 environment before using the tools.
900 </para> 914 </para>
901 915
902 <note>
903 <para>
904 The Yocto Project supports several methods by which you can
905 set up this cross-development environment.
906 These methods include downloading pre-built SDK installers,
907 building and installing your own SKD installer, or running
908 an Application Development Toolkit (ADT) installer to
909 install not just cross-development toolchains
910 but also additional tools to help in this type of
911 development.
912 </para>
913
914 <para>
915 For background information on cross-development toolchains
916 in the Yocto Project development environment, see the
917 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
918 section.
919 For information on setting up a cross-development
920 environment, see the
921 "<ulink url='&YOCTO_DOCS_ADT_URL;#installing-the-adt'>Installing the ADT and Toolchains</ulink>"
922 section in the Yocto Project Application Developer's Guide.
923 </para>
924 </note>
925
926 <para> 916 <para>
927 When built using BitBake, the SDK installers are kept in the 917 For background information on cross-development toolchains
928 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> 918 in the Yocto Project development environment, see the
929 inside the <filename>deploy/sdk</filename> folder as shown 919 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
930 in the figure at the beginning of this section. 920 section.
931 Several variables exist that help configure these files: 921 For information on setting up a cross-development
932 <itemizedlist> 922 environment, see the
933 <listitem><para><link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>: 923 "<ulink url='&YOCTO_DOCS_ADT_URL;#installing-the-adt'>Installing the ADT and Toolchains</ulink>"
934 Points to the <filename>deploy</filename> 924 section in the Yocto Project Application Developer's Guide.
935 directory.</para></listitem>
936 <listitem><para><link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>:
937 Specifies the architecture of the machine
938 on which the cross-development tools are run to
939 create packages for the target hardware.
940 </para></listitem>
941 <listitem><para><link linkend='var-SDKIMAGE_FEATURES'><filename>SDKIMAGE_FEATURES</filename></link>:
942 Lists the features to include in the libraries.
943 </para></listitem>
944 <listitem><para><link linkend='var-TOOLCHAIN_HOSTS_TASKS'><filename>TOOLCHAIN_HOSTS_TASKS</filename></link>:
945 Lists packages that make up the host
946 part of the SDK installer (i.e. the part that runs on
947 the <filename>SDKMACHINE</filename>).
948 When you use <filename>bitbake sdk_populate</filename>
949 to create the SDK installer, a set of default tasks
950 apply.
951 This variable allows you to add more tasks.
952 </para></listitem>
953 <listitem><para><link linkend='var-TOOLCHAIN_TARGET_TASKS'><filename>TOOLCHAIN_TARGET_TASKS</filename></link>:
954 Lists packages that make up the target part
955 of the SDK installer (i.e. the part built for the
956 target hardware).
957 </para></listitem>
958 </itemizedlist>
959 </para> 925 </para>
960 </section> 926 </note>
927
928 <para>
929 Once built, the SDK installers are written out to the
930 <filename>deploy/sdk</filename> folder inside the
931 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
932 as shown in the figure at the beginning of this section.
933 Several variables exist that help configure these files:
934 <itemizedlist>
935 <listitem><para><link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>:
936 Points to the <filename>deploy</filename>
937 directory.</para></listitem>
938 <listitem><para><link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>:
939 Specifies the architecture of the machine
940 on which the cross-development tools are run to
941 create packages for the target hardware.
942 </para></listitem>
943 <listitem><para><link linkend='var-SDKIMAGE_FEATURES'><filename>SDKIMAGE_FEATURES</filename></link>:
944 Lists the features to include in the "target" part
945 of the SDK.
946 </para></listitem>
947 <listitem><para><link linkend='var-TOOLCHAIN_HOST_TASK'><filename>TOOLCHAIN_HOST_TASK</filename></link>:
948 Lists packages that make up the host
949 part of the SDK installer (i.e. the part that runs on
950 the <filename>SDKMACHINE</filename>).
951 When you use
952 <filename>bitbake -c populate_sdk &lt;imagename&gt;</filename>
953 to create the SDK installer, a set of default packages
954 apply.
955 This variable allows you to add more packages.
956 </para></listitem>
957 <listitem><para><link linkend='var-TOOLCHAIN_TARGET_TASK'><filename>TOOLCHAIN_TARGET_TASK</filename></link>:
958 Lists packages that make up the target part
959 of the SDK installer (i.e. the part built for the
960 target hardware).
961 </para></listitem>
962 </itemizedlist>
963 </para>
961 </section> 964 </section>
962</section> 965</section>
963 966