summaryrefslogtreecommitdiff
path: root/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml')
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml386
1 files changed, 274 insertions, 112 deletions
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml b/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml
index d0cbf9c85e..ab9055e628 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml
@@ -18,37 +18,78 @@
</para>
<para>
- You can find SDK installers here:
- <itemizedlist>
- <listitem><para><emphasis>Standard SDK Installers:</emphasis>
+ Follow these steps to locate and hand-install the toolchain:
+ <orderedlist>
+ <listitem><para>
+ <emphasis>Go to the Installers Directory:</emphasis>
Go to <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>
- and find the folder that matches your host development system
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Open the Folder for Your Development System:</emphasis>
+ Open the folder that matches your host development system
(i.e. <filename>i686</filename> for 32-bit machines or
- <filename>x86_64</filename> for 64-bit machines).</para>
+ <filename>x86_64</filename> for 64-bit machines).
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Locate and Download the SDK Installer:</emphasis>
+ You need to find and download the installer appropriate for
+ your development system, target hardware, and image type.
+ </para>
+
+ <para>The installer files (<filename>*.sh</filename>) follow
+ this naming convention:
+ <literallayout class='monospaced'>
+ poky-eglibc-<replaceable>host_system</replaceable>-core-image-<replaceable>type</replaceable>-<replaceable>arch</replaceable>-toolchain-ext-<replaceable>release</replaceable>.sh
+
+ Where:
+ <replaceable>host_system</replaceable> is a string representing your development system:
+ i686 or x86_64.
+
+ <replaceable>type</replaceable> is a string representing either a "sato" or "minimal"
+ image.
+
+ <replaceable>arch</replaceable> is a string representing the target architecture:
+ aarch64, armv5e, core2-64, coretexa8hf-neon, i586, mips3242,
+ mips64, or ppc7400.
- <para>Go into that folder and download the SDK installer
- whose name includes the appropriate target architecture.
+ <replaceable>release</replaceable> is the version of Yocto Project.
+
+ NOTE:
+ The standard SDK installer does not have the "-ext" string as
+ part of the filename.
+
+ </literallayout>
The toolchains provided by the Yocto Project are based off of
- the <filename>core-image-sato</filename> image and contain
- libraries appropriate for developing against that image.
- For example, if your host development system is a 64-bit x86
- system and you are going to use your cross-toolchain for a
- 32-bit x86 target, go into the <filename>x86_64</filename>
+ the <filename>core-image-sato</filename> and
+ <filename>core-image-minimal</filename> images and contain
+ libraries appropriate for developing against those images.
+ </para>
+
+ <para>For example, if your host development system is a
+ 64-bit x86 system and you are need an extended SDK for a
+ 64-bit core2 target, go into the <filename>x86_64</filename>
folder and download the following installer:
<literallayout class='monospaced'>
- poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
+ poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
</literallayout>
</para></listitem>
- <listitem><para><emphasis>Extensible SDK Installers:</emphasis>
- Installers for the extensible SDK are also located in
- <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
- These installers have the string
- <filename>ext</filename> as part of their names:
+ <listitem><para>
+ <emphasis>Run the Installer:</emphasis>
+ Be sure you have execution privileges and run the installer.
+ Following is an example from the <filename>Downloads</filename>
+ directory:
<literallayout class='monospaced'>
- poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
+ $ ~/Downloads/poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
</literallayout>
+ During execution of the script, you choose the root location
+ for the toolchain.
+ See the
+ "<link linkend='sdk-installed-standard-sdk-directory-structure'>Installed Standard SDK Directory Structure</link>"
+ section and the
+ "<link linkend='sdk-installed-extensible-sdk-directory-structure'>Installed Extensible SDK Directory Structure</link>"
+ section for more information.
</para></listitem>
- </itemizedlist>
+ </orderedlist>
</para>
</section>
@@ -57,65 +98,135 @@
<para>
As an alternative to locating and downloading a SDK installer,
- you can build the SDK installer assuming you have first sourced
- the environment setup script.
- See the
- "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
- section in the Yocto Project Quick Start for steps that show you
- how to set up the Yocto Project environment.
- In particular, you need to be sure the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
- variable matches the architecture for which you are building and that
- the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-SDKMACHINE'><filename>SDKMACHINE</filename></ulink>
- variable is correctly set if you are building a toolchain designed to
- run on an architecture that differs from your current development host
- machine (i.e. the build machine).
- </para>
-
- <para>
- To build the SDK installer for a standard SDK and populate
- the SDK image, use the following command:
- <literallayout class='monospaced'>
+ you can build the SDK installer.
+ Follow these steps:
+ <orderedlist>
+ <listitem><para>
+ <emphasis>Set Up the Build Environment:</emphasis>
+ Be sure you are set up to use BitBake in a shell.
+ See the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-the-development-host-to-use-the-yocto-project'>Setting Up the Development Host to Use the Yocto Project</ulink>"
+ section in the Yocto Project Development Tasks Manual for
+ information on how to get a build host ready that is either a
+ native Linux machine or a machine that uses CROPS.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Clone the <filename>poky</filename> Repository:</emphasis>
+ You need to have a local copy of the Yocto Project
+ <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
+ (i.e. a local <filename>poky</filename> repository).
+ See the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#cloning-the-poky-repository'>Cloning the <filename>poky</filename> Repository</ulink>"
+ and possibly the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#checking-out-by-branch-in-poky'>Checking Out by Branch in Poky</ulink>"
+ and
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#checkout-out-by-tag-in-poky'>Checking Out by Tag in Poky</ulink>"
+ sections all in the Yocto Project Development Tasks Manual for
+ information on how to clone the <filename>poky</filename>
+ repository and check out the appropriate branch for your work.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Initialize the Build Environment:</emphasis>
+ While in the root directory of the Source Directory (i.e.
+ <filename>poky</filename>), run the
+ <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
+ environment setup script to define the OpenEmbedded
+ build environment on your build host.
+ <literallayout class='monospaced'>
+ $ source &OE_INIT_FILE;
+ </literallayout>
+ Among other things, the script creates the
+ <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>,
+ which is <filename>build</filename> in this case
+ and is located in the
+ <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
+ After the script runs, your current working directory
+ is set to the <filename>build</filename> directory.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Make Sure You Are Building an Installer for the Correct Machine:</emphasis>
+ Check to be sure that your
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
+ variable in the <filename>local.conf</filename> file in your
+ <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>
+ matches the architecture for which you are building.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Make Sure Your SDK Machine is Correctly Set:</emphasis>
+ If you are building a toolchain designed to run on an
+ architecture that differs from your current development host
+ machine (i.e. the build machine), be sure that the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SDKMACHINE'><filename>SDKMACHINE</filename></ulink>
+ variable in the <filename>local.conf</filename> file in your
+ Build Directory is correctly set.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Build the SDK Installer:</emphasis>
+ To build the SDK installer for a standard SDK and populate
+ the SDK image, use the following command form.
+ Be sure to replace <replaceable>image</replaceable> with
+ an image (e.g. "core-image-sato"):
+ <literallayout class='monospaced'>
$ bitbake <replaceable>image</replaceable> -c populate_sdk
- </literallayout>
- You can do the same for the extensible SDK using this command:
- <literallayout class='monospaced'>
+ </literallayout>
+ You can do the same for the extensible SDK using this command
+ form:
+ <literallayout class='monospaced'>
$ bitbake <replaceable>image</replaceable> -c populate_sdk_ext
- </literallayout>
- These commands result in a SDK installer that contains the sysroot
- that matches your target root filesystem.
- </para>
+ </literallayout>
+ These commands result in a SDK installer that contains the
+ sysroot that matches your target root filesystem.</para>
- <para>
- When the <filename>bitbake</filename> command completes, the SDK
- installer will be in
- <filename>tmp/deploy/sdk</filename> in the Build Directory.
- <note><title>Notes</title>
- <itemizedlist>
- <listitem><para>
- By default, this toolchain does not build static binaries.
- If you want to use the toolchain to build these types of
- libraries, you need to be sure your SDK has the
- appropriate static development libraries.
- Use the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-TOOLCHAIN_TARGET_TASK'><filename>TOOLCHAIN_TARGET_TASK</filename></ulink>
- variable inside your <filename>local.conf</filename> file
- to install the appropriate library packages in the SDK.
- Following is an example using <filename>libc</filename>
- static development libraries:
- <literallayout class='monospaced'>
+ <para>When the <filename>bitbake</filename> command completes,
+ the SDK installer will be in
+ <filename>tmp/deploy/sdk</filename> in the Build Directory.
+ <note><title>Notes</title>
+ <itemizedlist>
+ <listitem><para>
+ By default, this toolchain does not build static
+ binaries.
+ If you want to use the toolchain to build these
+ types of libraries, you need to be sure your SDK
+ has the appropriate static development libraries.
+ Use the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-TOOLCHAIN_TARGET_TASK'><filename>TOOLCHAIN_TARGET_TASK</filename></ulink>
+ variable inside your <filename>local.conf</filename>
+ file to install the appropriate library packages
+ in the SDK.
+ Following is an example using
+ <filename>libc</filename> static development
+ libraries:
+ <literallayout class='monospaced'>
TOOLCHAIN_TARGET_TASK_append = " libc-staticdev"
- </literallayout>
- </para></listitem>
- <listitem><para>
- For additional information on building the installer,
- see the
- <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>Cookbook guide to Making an Eclipse Debug Capable Image</ulink>
- wiki page.
- </para></listitem>
- </itemizedlist>
- </note>
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ For additional information on building the
+ installer, see the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>Cookbook guide to Making an Eclipse Debug Capable Image</ulink>
+ wiki page.
+ </para></listitem>
+ </itemizedlist>
+ </note>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Run the Installer:</emphasis>
+ You can now run the SDK installer from
+ <filename>tmp/deploy/sdk</filename> in the Build Directory.
+ Following is an example:
+ <literallayout class='monospaced'>
+ $ cd ~/poky/build/tmp/deploy/sdk
+ $ ./poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
+ </literallayout>
+ During execution of the script, you choose the root location
+ for the toolchain.
+ See the
+ "<link linkend='sdk-installed-standard-sdk-directory-structure'>Installed Standard SDK Directory Structure</link>"
+ section and the
+ "<link linkend='sdk-installed-extensible-sdk-directory-structure'>Installed Extensible SDK Directory Structure</link>"
+ section for more information.
+ </para></listitem>
+ </orderedlist>
</para>
</section>
@@ -126,55 +237,106 @@
After installing the toolchain, for some use cases you
might need to separately extract a root filesystem:
<itemizedlist>
- <listitem><para>You want to boot the image using NFS.
+ <listitem><para>
+ You want to boot the image using NFS.
</para></listitem>
- <listitem><para>You want to use the root filesystem as the
+ <listitem><para>
+ You want to use the root filesystem as the
target sysroot.
For example, the Eclipse IDE environment with the Eclipse
Yocto Plug-in installed allows you to use QEMU to boot
- under NFS.</para></listitem>
- <listitem><para>You want to develop your target application
+ under NFS.
+ </para></listitem>
+ <listitem><para>
+ You want to develop your target application
using the root filesystem as the target sysroot.
</para></listitem>
</itemizedlist>
</para>
<para>
- To extract the root filesystem, first <filename>source</filename>
- the cross-development environment setup script to establish
- necessary environment variables.
- If you built the toolchain in the Build Directory, you will find
- the toolchain environment script in the
- <filename>tmp</filename> directory.
- If you installed the toolchain by hand, the environment setup
- script is located in <filename>/opt/poky/&DISTRO;</filename>.
- </para>
+ Follow these steps to extract the root filesystem:
+ <orderedlist>
+ <listitem><para>
+ <emphasis>Locate and Download the Tarball for the Pre-Built
+ Root Filesystem Image File:</emphasis>
+ You need to find and download the root filesystem image
+ file that is appropriate for your target system.
+ These files are kept in the
+ <ulink url='&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;/machines/'>Index of Releases</ulink>
+ in the "machines" directory.</para>
- <para>
- After sourcing the environment script, use the
- <filename>runqemu-extract-sdk</filename> command and provide the
- filesystem image.
- </para>
+ <para>The "machines" directory contains tarballs
+ (<filename>*.tar.bz2</filename>) for supported machines.
+ The directory also contains flattened root filesystem
+ image files (<filename>*.ext4</filename>), which you can use
+ with QEMU directly.</para>
- <para>
- Following is an example.
- The second command sets up the environment.
- In this case, the setup script is located in the
- <filename>/opt/poky/&DISTRO;</filename> directory.
- The third command extracts the root filesystem from a previously
- built filesystem that is located in the
- <filename>~/Downloads</filename> directory.
- Furthermore, this command extracts the root filesystem into the
- <filename>qemux86-sato</filename> directory:
- <literallayout class='monospaced'>
- $ cd ~
- $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
- $ runqemu-extract-sdk \
- ~/Downloads/core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2 \
- $HOME/qemux86-sato
- </literallayout>
- You could now point to the target sysroot at
- <filename>qemux86-sato</filename>.
+ <para>The pre-built root filesystem image files
+ follow these naming conventions:
+ <literallayout class='monospaced'>
+ core-image-<replaceable>profile</replaceable>-<replaceable>arch</replaceable>.tar.bz2
+
+ Where:
+ <replaceable>profile</replaceable> is the filesystem image's profile:
+ lsb, lsb-dev, lsb-sdk, lsb-qt3, minimal, minimal-dev, sato,
+ sato-dev, sato-sdk, minimal-initramfs, or sdk-ptest. For
+ information on these types of image profiles, see the
+ "Images" chapter in the Yocto Project Reference Manual.
+
+ <replaceable>arch</replaceable> is a string representing the target architecture:
+ beaglebone, edgerouter, genericx86, genericx86-64, mpc8315e-rdb,
+ qemuarm, qemuarm64, qemumips, qemumips64, qemuppc, qemux86, or
+ qemux86-64.
+
+ </literallayout>
+ The root filesystems provided by the Yocto Project are based
+ off of the <filename>core-image-sato</filename> and
+ <filename>core-image-minimal</filename> images.
+ </para>
+
+ <para>For example, if your target hardware system is a
+ BeagleBone board and your image is a
+ <filename>core-image-minimal</filename> image, you need
+ to download the following root filesystem image file:
+ <literallayout class='monospaced'>
+ core-image-minimal-beaglebone.tar.bz2
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Initialize the Cross-Development Environment:</emphasis>
+ You must <filename>source</filename>
+ the cross-development environment setup script to establish
+ necessary environment variables.</para>
+
+ <para>This script is located in the top-level directory in
+ which you installed the toolchain (e.g.
+ <filename>poky_sdk</filename>).</para>
+
+ <para>Following is an example for the Core2 64-bit
+ architecture:
+ <literallayout class='monospaced'>
+ $ source ~/poky_sdk/environment-setup-core2-64-poky-linux
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Extract the Root Filesystem:</emphasis>
+ Use the <filename>runqemu-extract-sdk</filename> command
+ and provide the root filesystem image.</para>
+
+ <para>Following is an example command that extracts the root
+ filesystem from a previously built root filesystem image that
+ was downloaded from the
+ <ulink url='&YOCTO_DOCS_REF_URL;#index-downloads'>Index of Releases</ulink>.
+ This command extracts the root filesystem into the
+ <filename>core2-64-sato</filename> directory:
+ <literallayout class='monospaced'>
+ $ runqemu-extract-sdk ~/Downloads/core-image-sato-core2-64.tar.bz2 ~/core2-64-sato
+ </literallayout>
+ You could now point to the target sysroot at
+ <filename>core2-64-sato</filename>.
+ </para></listitem>
+ </orderedlist>
</para>
</section>