398 lines
22 KiB
XML
398 lines
22 KiB
XML
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
|
|
|
<chapter id='adt-prepare'>
|
|
|
|
<title>Preparing to Use the Application Development Toolkit (ADT)</title>
|
|
|
|
<para>
|
|
In order to use the ADT, you must install it, <filename>source</filename> a script to set up the
|
|
environment, and be sure both the kernel and filesystem image specific to the target architecture
|
|
exist.
|
|
This chapter describes how to be sure you meet the ADT requirements.
|
|
</para>
|
|
|
|
<section id='installing-the-adt'>
|
|
<title>Installing the ADT</title>
|
|
|
|
<para>
|
|
The following list describes how you can install the ADT, which includes the cross-toolchain.
|
|
Regardless of the installation you choose, you must <filename>source</filename> the cross-toolchain
|
|
environment setup script before you use the toolchain.
|
|
See the "<link linkend='setting-up-the-cross-development-environment'>Setting Up the
|
|
Cross-Development Environment</link>"
|
|
section for more information.
|
|
<itemizedlist>
|
|
<listitem><para><emphasis>Use the ADT Installer Script:</emphasis>
|
|
This method is the recommended way to install the ADT because it
|
|
automates much of the process for you.
|
|
For example, you can configure the installation to install the QEMU emulator
|
|
and the user-space NFS, specify which root filesystem profiles to download,
|
|
and define the target sysroot location.</para></listitem>
|
|
<listitem><para><emphasis>Use an Existing Toolchain Tarball:</emphasis>
|
|
Using this method, you select and download an architecture-specific
|
|
toolchain tarball and then hand-install the toolchain.
|
|
If you use this method, you just get the cross-toolchain and QEMU - you do not
|
|
get any of the other mentioned benefits had you run the ADT Installer script.</para></listitem>
|
|
<listitem><para><emphasis>Use the Toolchain from within a Yocto Project Build Tree:</emphasis>
|
|
If you already have a Yocto Project build tree, you can build the cross-toolchain
|
|
within tree.
|
|
However, like the previous method mentioned, you only get the cross-toolchain and QEMU - you
|
|
do not get any of the other benefits without taking separate steps.</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<section id='using-the-adt-installer'>
|
|
<title>Using the ADT Installer</title>
|
|
|
|
<para>
|
|
To run the ADT Installer, you need to first get the ADT Installer tarball and then run the ADT
|
|
Installer Script.
|
|
</para>
|
|
|
|
<section id='getting-the-adt-installer-tarball'>
|
|
<title>Getting the ADT Installer Tarball</title>
|
|
|
|
<para>
|
|
The ADT Installer is contained in the ADT Installer tarball.
|
|
You can download the tarball into any directory from
|
|
<ulink url='http://autobuilder.yoctoproject.org/downloads/yocto-1.1/adt-installer/'></ulink>.
|
|
Or, you can use BitBake to generate the tarball inside the existing Yocto Project
|
|
build tree.
|
|
</para>
|
|
|
|
<para>
|
|
If you use BitBake to generate the ADT Installer tarball, you must
|
|
<filename>source</filename> the Yocto Project environment setup script
|
|
(<filename>oe-init-build-env</filename>) located
|
|
in the Yocto Project file structure before running the <filename>bitbake</filename>
|
|
command that creates the tarball.
|
|
</para>
|
|
|
|
<para>
|
|
The following example commands download the Yocto Project release tarball, set up the Yocto
|
|
Project files structure, set up the environment while also creating the
|
|
default Yocto Project build tree,
|
|
and run the <filename>bitbake</filename> command that results in the tarball
|
|
<filename>~/yocto-project/build/tmp/deploy/sdk/adt_installer.tar.bz2</filename>:
|
|
<literallayout class='monospaced'>
|
|
$ cd ~
|
|
$ mkdir yocto-project
|
|
$ cd yocto-project
|
|
$ wget http://www.yoctoproject.org/downloads/poky/poky-edison-6.0.tar.bz2
|
|
$ tar xjf poky-edison-6.0.tar.bz2
|
|
$ source poky-edison-6.0/oe-init-build-env
|
|
$ bitbake adt-installer
|
|
</literallayout>
|
|
</para>
|
|
</section>
|
|
|
|
<section id='configuring-and-running-the-adt-installer-script'>
|
|
<title>Configuring and Running the ADT Installer Script</title>
|
|
|
|
<para>
|
|
Before running the ADT Installer script, you need to unpack the tarball.
|
|
You can unpack the tarball in any directory you wish.
|
|
Unpacking it creates the directory <filename>adt-installer</filename>,
|
|
which contains the ADT Installer script (<filename>adt_installer</filename>)
|
|
and its configuration file (<filename>adt_installer.conf</filename>).
|
|
</para>
|
|
|
|
<para>
|
|
Before you run the script, however, you should examine the ADT Installer configuration
|
|
file and be sure you are going to get what you want.
|
|
Your configurations determine which kernel and filesystem image are downloaded.
|
|
</para>
|
|
|
|
<para>
|
|
The following list describes the configurations you can define for the ADT Installer.
|
|
For configuration values and restrictions, see the comments in
|
|
the <filename>adt-installer.conf</filename> file:
|
|
|
|
<itemizedlist>
|
|
<listitem><para><filename>YOCTOADT_REPO</filename>: This area
|
|
includes the IPKG-based packages and the root filesystem upon which
|
|
the installation is based.
|
|
If you want to set up your own IPKG repository pointed to by
|
|
<filename>YOCTOADT_REPO</filename>, you need to be sure that the
|
|
directory structure follows the same layout as the reference directory
|
|
set up at <ulink url='http://adtrepo.yoctoproject.org'></ulink>.
|
|
Also, your repository needs to be accessible through HTTP.</para></listitem>
|
|
<listitem><para><filename>YOCTOADT_TARGETS</filename>: The machine
|
|
target architectures for which you want to set up cross-development
|
|
environments.</para></listitem>
|
|
<listitem><para><filename>YOCTOADT_QEMU</filename>: Indicates whether
|
|
or not to install the emulator QEMU.</para></listitem>
|
|
<listitem><para><filename>YOCTOADT_NFS_UTIL</filename>: Indicates whether
|
|
or not to install user-mode NFS.
|
|
If you plan to use the Yocto Eclipse IDE plug-in against QEMU,
|
|
you should install NFS.
|
|
<note>To boot QEMU images using our userspace NFS server, you need
|
|
to be running <filename>portmap</filename> or <filename>rpcbind</filename>.
|
|
If you are running <filename>rpcbind</filename>, you will also need to add the
|
|
<filename>-i</filename> option when <filename>rpcbind</filename> starts up.
|
|
Please make sure you understand the security implications of doing this.
|
|
You might also have to modify your firewall settings to allow
|
|
NFS booting to work.</note></para></listitem>
|
|
<listitem><para><filename>YOCTOADT_ROOTFS_<arch></filename>: The root
|
|
filesystem images you want to download from the
|
|
<filename>YOCTOADT_IPKG_REPO</filename> repository.</para></listitem>
|
|
<listitem><para><filename>YOCTOADT_TARGET_SYSROOT_IMAGE_<arch></filename>: The
|
|
particular root filesystem used to extract and create the target sysroot.
|
|
The value of this variable must have been specified with
|
|
<filename>YOCTOADT_ROOTFS_<arch></filename>.
|
|
For example, if you downloaded both <filename>minimal</filename> and
|
|
<filename>sato-sdk</filename> images by setting
|
|
<filename>YOCTOADT_ROOTFS_<arch></filename>
|
|
to "minimal sato-sdk", then <filename>YOCTOADT_ROOTFS_<arch></filename>
|
|
must be set to either <filename>minimal</filename> or
|
|
<filename>sato-sdk</filename>.</para></listitem>
|
|
<listitem><para><filename>YOCTOADT_TARGET_SYSROOT_LOC_<arch></filename>: The
|
|
location on the development host where the target sysroot is created.
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
After you have configured the <filename>adt_installer.conf</filename> file,
|
|
run the installer using the following command:
|
|
<literallayout class='monospaced'>
|
|
$ adt_installer
|
|
</literallayout>
|
|
</para>
|
|
|
|
<note>
|
|
The ADT Installer requires the <filename>libtool</filename> package to complete.
|
|
If you install the recommended packages as described in the
|
|
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#packages'>Packages</ulink>"
|
|
section of
|
|
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
|
|
The Yocto Project Quick Start</ulink>, then you will have libtool installed.
|
|
</note>
|
|
|
|
<para>
|
|
Once the installer begins to run, you are asked whether you want to run in
|
|
interactive or silent mode.
|
|
If you want to closely monitor the installation, choose “I” for interactive
|
|
mode rather than “S” for silent mode.
|
|
Follow the prompts from the script to complete the installation.
|
|
</para>
|
|
|
|
<para>
|
|
Once the installation completes, the ADT, which includes the cross-toolchain, is installed.
|
|
You will notice environment setup files for the cross-toolchain in
|
|
<filename>/opt/poky/$SDKVERSION</filename>,
|
|
and image tarballs in the <filename>adt-installer</filename>
|
|
directory according to your installer configurations, and the target sysroot located
|
|
according to the <filename>YOCTOADT_TARGET_SYSROOT_LOC_<arch></filename> variable
|
|
also in your configuration file.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
|
|
<section id='using-an-existing-toolchain-tarball'>
|
|
<title>Using a Cross-Toolchain Tarball</title>
|
|
|
|
<para>
|
|
If you want to simply install the cross-toolchain by hand, you can do so by using an existing
|
|
cross-toolchain tarball.
|
|
If you use this method to install the cross-toolchain and you still need to install the target
|
|
sysroot, you will have to install sysroot separately.
|
|
</para>
|
|
|
|
<para>
|
|
Follow these steps:
|
|
<orderedlist>
|
|
<listitem><para>Go to
|
|
<ulink url='http://autobuilder.yoctoproject.org/downloads/yocto-1.1/toolchain'></ulink>
|
|
and find the folder that matches your host development system
|
|
(i.e. <filename>i586</filename> for 32-bit machines or
|
|
<filename>x86_64</filename> for 64-bit machines).</para></listitem>
|
|
<listitem><para>Go into that folder and download the toolchain tarball whose name
|
|
includes the appropriate target architecture.
|
|
For example, if your host development system is an Intel-based 64-bit system and
|
|
you are going to use your cross-toolchain for an Intel-based 32-bit target, go into the
|
|
<filename>x86_64</filename> folder and download the following tarball:
|
|
<literallayout class='monospaced'>
|
|
yocto-eglibc-x86_64-i586-toolchain-gmae-1.1.tar.bz2
|
|
</literallayout>
|
|
The cross-toolchain tarballs provided by the Yocto Project support development
|
|
of GNOME platforms on mobile devices (GMAE).
|
|
<note><para>As an alternative to steps one and two, you can build the toolchain tarball
|
|
if you have a Yocto Project build tree.
|
|
If you need GMAE, you should use the <filename>bitbake meta-toolchain-gmae</filename>
|
|
command.
|
|
The resulting tarball will support such development.
|
|
However, if you are not concerned with GMAE,
|
|
you can generate the tarball using <filename>bitbake meta-toolchain</filename>.</para>
|
|
<para>Use the appropriate <filename>bitbake</filename> command only after you have
|
|
sourced the <filename>oe-build-init-env</filename> script located in the Yocto
|
|
Project files.
|
|
When the <filename>bitbake</filename> command completes, the tarball will
|
|
be in <filename>tmp/deploy/sdk</filename> in the Yocto Project build tree.
|
|
</para></note></para></listitem>
|
|
<listitem><para>Make sure you are in the root directory with root privileges and then expand
|
|
the tarball.
|
|
The tarball expands into <filename>/opt/poky/$SDKVERSION</filename>.
|
|
Once the tarball is expanded, the cross-toolchain is installed.
|
|
You will notice environment setup files for the cross-toolchain in the directory.
|
|
</para></listitem>
|
|
</orderedlist>
|
|
</para>
|
|
</section>
|
|
|
|
<section id='using-the-toolchain-from-within-the-build-tree'>
|
|
<title>Using BitBake and the Yocto Project Build Tree</title>
|
|
|
|
<para>
|
|
A final way of installing just the cross-toolchain is to use BitBake to build the
|
|
toolchain within an existing Yocto Project build tree.
|
|
This method does not install the toolchain into the <filename>/opt</filename> directory.
|
|
As with the previous method, if you need to install the target sysroot, you must
|
|
do this separately.
|
|
</para>
|
|
|
|
<para>
|
|
Follow these steps to build and install the toolchain into the build tree:
|
|
<orderedlist>
|
|
<listitem><para>Source the environment setup script
|
|
<filename>oe-init-build-env</filename> located in the Yocto Project
|
|
files.</para></listitem>
|
|
<listitem><para>At this point, you should be sure that the
|
|
<filename>MACHINE</filename> variable
|
|
in the <filename>local.conf</filename> file found in the Yocto Project
|
|
file structure's <filename>conf</filename> directory
|
|
is set for the target architecture.
|
|
Comments within the <filename>local.conf</filename> file list the values you
|
|
can use for the <filename>MACHINE</filename> variable.
|
|
<note>You can populate the build tree with the cross-toolchains for more
|
|
than a single architecture.
|
|
You just need to edit the <filename>MACHINE</filename> variable in the
|
|
<filename>local.conf</filename> file and re-run the BitBake
|
|
command.</note></para></listitem>
|
|
<listitem><para>Run <filename>bitbake meta-ide-support</filename> to complete the
|
|
cross-toolchain installation.
|
|
<note>If change out of your working directory after you
|
|
<filename>source</filename> the environment setup script and before you run
|
|
the BitBake command, the command might not work.
|
|
Be sure to run the <filename>bitbake</filename> command immediately
|
|
after checking or editing the <filename>local.conf</filename> but without
|
|
changing out of your working directory.</note>
|
|
Once BitBake finishes, the cross-toolchain is installed within the Yocto Project
|
|
build tree.
|
|
You will notice environment setup files for the cross-toolchain in the
|
|
Yocto Project build tree in the <filename>tmp</filename> directory.
|
|
Setup script filenames contain the strings <filename>environment-setup</filename>.
|
|
</para></listitem>
|
|
</orderedlist>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
|
|
<section id='setting-up-the-cross-development-environment'>
|
|
<title>Setting Up the Cross-Development Environment</title>
|
|
|
|
<para>
|
|
Before you can develop using the cross-toolchain, you need to set up the
|
|
cross-development environment by sourcing the environment setup script.
|
|
If you used the ADT Installer or used an existing ADT tarball to install the ADT,
|
|
then you can find this script in the <filename>/opt/poky/$SDKVERSION</filename>
|
|
directory.
|
|
If you installed the toolchain in the build tree, you can find the environment setup
|
|
scripts in the Yocto Project build tree's <filename>tmp</filename> directory.
|
|
</para>
|
|
|
|
<para>
|
|
Be sure to run the environment setup script that matches the architecture for
|
|
which you are developing.
|
|
Environment setup scripts begin with the string “<filename>environment-setup</filename>”
|
|
and include as part of their name the architecture.
|
|
For example, the environment setup script for a 64-bit IA-based architecture would
|
|
be the following:
|
|
<literallayout class='monospaced'>
|
|
/opt/poky/1.1/environment-setup-x86_64-poky-linux
|
|
</literallayout>
|
|
</para>
|
|
</section>
|
|
|
|
<section id='securing-kernel-and-filesystem-images'>
|
|
<title>Securing Kernel and Filesystem Images</title>
|
|
|
|
<para>
|
|
You will need to have a kernel and filesystem image to boot using your
|
|
hardware or the QEMU emulator.
|
|
Furthermore, if you plan on booting your image using NFS or you want to use the root filesystem
|
|
as the target sysroot, you need to extract the root filesystem.
|
|
</para>
|
|
|
|
<section id='getting-the-images'>
|
|
<title>Getting the Images</title>
|
|
|
|
<para>
|
|
To get the kernel and filesystem images, you either have to build them or download
|
|
pre-built versions.
|
|
You can find examples for both these situations in the
|
|
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#test-run'>A
|
|
Quick Test Run</ulink>" section of
|
|
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
|
|
The Yocto Project Quick Start</ulink>.
|
|
<note><para>
|
|
The Yocto Project provides basic kernel and filesystem images for several
|
|
architectures (<filename>x86</filename>, <filename>x86-64</filename>,
|
|
<filename>mips</filename>, <filename>powerpc</filename>, and <filename>arm</filename>)
|
|
that you can use unaltered in the QEMU emulator.
|
|
These kernel images reside in the Yocto Project release
|
|
area - <ulink url='http://autobuilder.yoctoproject.org/downloads/yocto-1.1/machines/'></ulink>
|
|
and are ideal for experimentation within Yocto Project.</para>
|
|
<para>If you plan on remotely deploying and debugging your application from within the
|
|
Eclipse IDE, you must have an image that contains the Yocto Target Communication
|
|
Framework (TCF) agent (<filename>tcf-agent</filename>), which is the
|
|
<filename>core-image-sato-sdk</filename> image.
|
|
For information on the image types you can build using the Yocto Project, see
|
|
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>
|
|
Reference: Images</ulink> in
|
|
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
|
|
The Yocto Project Reference Manual</ulink>.</para>
|
|
</note>
|
|
</para>
|
|
</section>
|
|
|
|
<section id='extracting-the-root-filesystem'>
|
|
<title>Extracting the Root Filesystem</title>
|
|
|
|
<para>
|
|
You must extract the root filesystem if you want to boot the image using NFS
|
|
or 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.
|
|
Another example is if you want to develop your target application using the
|
|
root filesystem as the target sysroot.
|
|
</para>
|
|
|
|
<para>
|
|
To extract the root filesystem, first <filename>source</filename>
|
|
the cross-development environment setup script and then
|
|
use the <filename>runqemu-extract-sdk</filename> command on the
|
|
filesystem image.
|
|
For example, the following commands set up the environment and then extract
|
|
the root filesystem from a previously built filesystem image tarball named
|
|
<filename>core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2</filename>.
|
|
The example extracts the root filesystem into the <filename>$HOME/qemux86-sato</filename>
|
|
directory:
|
|
<literallayout class='monospaced'>
|
|
$ source $HOME/poky/build/tmp/environment-setup-i586-poky-linux
|
|
$ runqemu-extract-sdk \
|
|
tmp/deploy/images/core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2 \
|
|
$HOME/qemux86-sato
|
|
</literallayout>
|
|
In this case, you could now point to the target sysroot at
|
|
<filename>$HOME/qemux86-sato</filename>.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
|
|
</chapter>
|
|
<!--
|
|
vim: expandtab tw=80 ts=4
|
|
-->
|