mirror of
https://git.yoctoproject.org/poky
synced 2026-02-07 01:06:37 +01:00
Changes throughout the manual that either eliminate or change many of the "Yocto Project" strings. The file structure for the meta data is now called "source directory." The build directory is referred as just that - "build directory." Any where the build system is referred to it is called the "OpenEmbedded build system." (From yocto-docs rev: 1210c19f90d4a52042fec12657212ae3e58e13d6) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
741 lines
44 KiB
XML
741 lines
44 KiB
XML
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
||
|
||
<chapter id='adt-eclipse'>
|
||
<title>Working Within Eclipse</title>
|
||
|
||
<para>
|
||
The Eclipse IDE is a popular development environment and it fully supports
|
||
development using the Yocto Project.
|
||
When you install and configure the Eclipse Yocto Project Plug-in into
|
||
the Eclipse IDE, you maximize your Yocto Project experience.
|
||
Installing and configuring the Plug-in results in an environment that
|
||
has extensions specifically designed to let you more easily develop software.
|
||
These extensions allow for cross-compilation, deployment, and execution of
|
||
your output into a QEMU emulation session.
|
||
You can also perform cross-debugging and profiling.
|
||
The environment also supports a suite of tools that allows you to perform
|
||
remote profiling, tracing, collection of power data, collection of
|
||
latency data, and collection of performance data.
|
||
</para>
|
||
<para>
|
||
This section describes how to install and configure the Eclipse IDE
|
||
Yocto Plug-in and how to use it to develop your application.
|
||
</para>
|
||
|
||
<section id='setting-up-the-eclipse-ide'>
|
||
<title>Setting Up the Eclipse IDE</title>
|
||
|
||
<para>
|
||
To develop within the Eclipse IDE, you need to do the following:
|
||
<orderedlist>
|
||
<listitem><para>Install the optimal version of the Eclipse IDE.</para></listitem>
|
||
<listitem><para>Configure the Eclipse IDE.</para></listitem>
|
||
<listitem><para>Install the Eclipse Yocto Plug-in.</para></listitem>
|
||
<listitem><para>Configure the Eclipse Yocto Plug-in.</para></listitem>
|
||
</orderedlist>
|
||
<note>
|
||
Do not install Eclipse from your distribution's package repository.
|
||
Be sure to install Eclipse from the official Eclipse download site as directed
|
||
in the next section.
|
||
</note>
|
||
</para>
|
||
|
||
<section id='installing-eclipse-ide'>
|
||
<title>Installing the Eclipse IDE</title>
|
||
|
||
<para>
|
||
It is recommended that you have the Indigo 3.7.2 version of the
|
||
Eclipse IDE installed on your development system.
|
||
If you don’t have this version, you can find it at
|
||
<ulink url='&ECLIPSE_MAIN_URL;'></ulink>.
|
||
From that site, choose the Eclipse Classic version particular to your development
|
||
host.
|
||
This version contains the Eclipse Platform, the Java Development
|
||
Tools (JDT), and the Plug-in Development Environment.
|
||
</para>
|
||
|
||
<para>
|
||
Once you have downloaded the tarball, extract it into a clean
|
||
directory.
|
||
For example, the following commands unpack and install the Eclipse IDE
|
||
tarball found in the <filename>Downloads</filename> area
|
||
into a clean directory using the default name <filename>eclipse</filename>:
|
||
<literallayout class='monospaced'>
|
||
$ cd ~
|
||
$ tar -xzvf ~/Downloads/eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz
|
||
</literallayout>
|
||
</para>
|
||
|
||
<para>
|
||
One issue exists that you need to be aware of regarding the Java
|
||
Virtual machine’s garbage collection (GC) process.
|
||
The GC process does not clean up the permanent generation
|
||
space (PermGen).
|
||
This space stores metadata descriptions of classes.
|
||
The default value is set too small and it could trigger an
|
||
out-of-memory error such as the following:
|
||
<literallayout class='monospaced'>
|
||
Java.lang.OutOfMemoryError: PermGen space
|
||
</literallayout>
|
||
</para>
|
||
|
||
<para>
|
||
This error causes the application to hang.
|
||
</para>
|
||
|
||
<para>
|
||
To fix this issue, you can use the <filename>--vmargs</filename>
|
||
option when you start Eclipse to increase the size of the permanent generation space:
|
||
<literallayout class='monospaced'>
|
||
eclipse --vmargs --XX:PermSize=256M
|
||
</literallayout>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='configuring-the-eclipse-ide'>
|
||
<title>Configuring the Eclipse IDE</title>
|
||
|
||
<para>
|
||
Before installing and configuring the Eclipse Yocto Plug-in, you need to configure
|
||
the Eclipse IDE.
|
||
Follow these general steps to configure Eclipse:
|
||
<orderedlist>
|
||
<listitem><para>Start the Eclipse IDE.</para></listitem>
|
||
<listitem><para>Make sure you are in your Workbench and select
|
||
"Install New Software" from the "Help" pull-down menu.
|
||
</para></listitem>
|
||
<listitem><para>Select <filename>indigo - &ECLIPSE_INDIGO_URL;</filename>
|
||
from the "Work with:" pull-down menu.</para></listitem>
|
||
<listitem><para>Expand the box next to <filename>Programming Languages</filename>
|
||
and select the <filename>Autotools Support for CDT (incubation)</filename>
|
||
and <filename>C/C++ Development Tools</filename> boxes.</para></listitem>
|
||
<listitem><para>Expand the box next to "Linux Tools" and select the
|
||
"LTTng - Linux Tracing Toolkit(incubation)" boxes.</para></listitem>
|
||
<listitem><para>Complete the installation and restart the Eclipse IDE.</para></listitem>
|
||
<listitem><para>After the Eclipse IDE restarts and from the Workbench, select
|
||
"Install New Software" from the "Help" pull-down menu.</para></listitem>
|
||
<listitem><para>Click the
|
||
"Available Software Sites" link.</para></listitem>
|
||
<listitem><para>Check the box next to
|
||
<filename>&ECLIPSE_UPDATES_URL;</filename>
|
||
and click "OK".</para></listitem>
|
||
<listitem><para>Select <filename>&ECLIPSE_UPDATES_URL;</filename>
|
||
from the "Work with:" pull-down menu.</para></listitem>
|
||
<listitem><para>Check the box next to <filename>TM and RSE Main Features</filename>.
|
||
</para></listitem>
|
||
<listitem><para>Expand the box next to <filename>TM and RSE Optional Add-ons</filename>
|
||
and select every item except <filename>RSE Unit Tests</filename> and
|
||
<filename>RSE WinCE Services (incubation)</filename>.</para></listitem>
|
||
<listitem><para>Complete the installation and restart the Eclipse IDE.</para></listitem>
|
||
<listitem><para>If necessary, select
|
||
"Install New Software" from the "Help" pull-down menu so you can click the
|
||
"Available Software Sites" link again.</para></listitem>
|
||
<listitem><para>After clicking "Available Software Sites", check the box next to
|
||
<filename>http://download.eclipse.org/tools/cdt/releases/indigo</filename>
|
||
and click "OK".</para></listitem>
|
||
<listitem><para>Select <filename>&ECLIPSE_INDIGO_CDT_URL;</filename>
|
||
from the "Work with:" pull-down menu.</para></listitem>
|
||
<listitem><para>Check the box next to <filename>CDT Main Features</filename>.
|
||
</para></listitem>
|
||
<listitem><para>Expand the box next to <filename>CDT Optional Features</filename>
|
||
and select <filename>C/C++ Remote Launch</filename> and
|
||
<filename>Target Communication Framework (incubation)</filename>.</para></listitem>
|
||
<listitem><para>Complete the installation and restart the Eclipse IDE.</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='installing-the-eclipse-yocto-plug-in'>
|
||
<title>Installing or Accessing the Eclipse Yocto Plug-in</title>
|
||
|
||
<para>
|
||
You can install the Eclipse Yocto Plug-in into the Eclipse IDE
|
||
one of two ways: use the Yocto Project's Eclipse Update site to install the pre-built plug-in,
|
||
or build and install the plug-in from the latest source code.
|
||
If you don't want to permanently install the plug-in but just want to try it out
|
||
within the Eclipse environment, you can import the plug-in project from the
|
||
Yocto Project source repositories.
|
||
</para>
|
||
|
||
<section id='new-software'>
|
||
<title>Installing the Pre-built Plug-in from the Yocto Project Eclipse Update Site</title>
|
||
|
||
<para>
|
||
To install the Eclipse Yocto Plug-in from the update site,
|
||
follow these steps:
|
||
<orderedlist>
|
||
<listitem><para>Start up the Eclipse IDE.</para></listitem>
|
||
<listitem><para>In Eclipse, select "Install New Software" from the "Help" menu.</para></listitem>
|
||
<listitem><para>Click "Add..." in the "Work with:" area.</para></listitem>
|
||
<listitem><para>Enter
|
||
<filename>&ECLIPSE_DL_PLUGIN_URL;</filename>
|
||
in the URL field and provide a meaningful name in the "Name" field.</para></listitem>
|
||
<listitem><para>Click "OK" to have the entry added to the "Work with:"
|
||
drop-down list.</para></listitem>
|
||
<listitem><para>Select the entry for the plug-in from the "Work with:" drop-down
|
||
list.</para></listitem>
|
||
<listitem><para>Check the box next to <filename>Development tools and SDKs for Yocto Linux</filename>.
|
||
</para></listitem>
|
||
<listitem><para>Complete the remaining software installation steps and
|
||
then restart the Eclipse IDE to finish the installation of the plug-in.
|
||
</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='zip-file-method'>
|
||
<title>Installing the Plug-in Using the Latest Source Code</title>
|
||
<para>
|
||
To install the Eclipse Yocto Plug-in from the latest source code, follow these steps:
|
||
<orderedlist>
|
||
<listitem><para>Open a shell and create a Git repository with:
|
||
<literallayout class='monospaced'>
|
||
$ git clone git://git.yoctoproject.org/eclipse-poky yocto-eclipse
|
||
</literallayout>
|
||
For this example, the repository is named
|
||
<filename>~/yocto-eclipse</filename>.</para></listitem>
|
||
<listitem><para>Locate the <filename>build.sh</filename> script in the
|
||
Git repository you created in the previous step.
|
||
The script is located in the <filename>scripts</filename>.</para></listitem>
|
||
<listitem><para>Be sure to set and export the <filename>ECLIPSE_HOME</filename> environment
|
||
variable to the top-level directory in which you installed the Indigo
|
||
version of Eclipse.
|
||
For example, if your Eclipse directory is <filename>$HOME/eclipse</filename>,
|
||
use the following:
|
||
<literallayout class='monospaced'>
|
||
$ export ECLIPSE_HOME=$HOME/eclipse
|
||
</literallayout></para></listitem>
|
||
<listitem><para>Run the <filename>build.sh</filename> script and provide the
|
||
name of the Git branch along with the Yocto Project release you are
|
||
using.
|
||
Here is an example that uses the <filename>master</filename> Git repository
|
||
and the <filename>1.1M4</filename> release:
|
||
<literallayout class='monospaced'>
|
||
$ scripts/build.sh master 1.1M4
|
||
</literallayout>
|
||
After running the script, the file
|
||
<filename>org.yocto.sdk-<release>-<date>-archive.zip</filename>
|
||
is in the current directory.</para></listitem>
|
||
<listitem><para>If necessary, start the Eclipse IDE and be sure you are in the
|
||
Workbench.</para></listitem>
|
||
<listitem><para>Select "Install New Software" from the "Help" pull-down menu.
|
||
</para></listitem>
|
||
<listitem><para>Click "Add".</para></listitem>
|
||
<listitem><para>Provide anything you want in the "Name" field.</para></listitem>
|
||
<listitem><para>Click "Archive" and browse to the ZIP file you built
|
||
in step four.
|
||
This ZIP file should not be "unzipped", and must be the
|
||
<filename>*archive.zip</filename> file created by running the
|
||
<filename>build.sh</filename> script.</para></listitem>
|
||
<listitem><para>Check the box next to the new entry in the installation window and complete
|
||
the installation.</para></listitem>
|
||
<listitem><para>Restart the Eclipse IDE if necessary.</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
|
||
<para>
|
||
At this point you should be able to configure the Eclipse Yocto Plug-in as described in the
|
||
"<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse Yocto Plug-in</link>"
|
||
section.</para>
|
||
</section>
|
||
|
||
<section id='yocto-project-source'>
|
||
<title>Importing the Plug-in Project into the Eclipse Environment</title>
|
||
<para>
|
||
Importing the Eclipse Yocto Plug-in project from the Yocto Project source repositories
|
||
is useful when you want to try out the latest plug-in from the tip of plug-in's
|
||
development tree.
|
||
It is important to understand when you import the plug-in you are not installing
|
||
it into the Eclipse application.
|
||
Rather, you are importing the project and just using it.
|
||
To import the plug-in project, follow these steps:
|
||
<orderedlist>
|
||
<listitem><para>Open a shell and create a Git repository with:
|
||
<literallayout class='monospaced'>
|
||
$ git clone git://git.yoctoproject.org/eclipse-poky yocto-eclipse
|
||
</literallayout>
|
||
For this example, the repository is named
|
||
<filename>~/yocto-eclipse</filename>.</para></listitem>
|
||
<listitem><para>In Eclipse, select "Import" from the "File" menu.</para></listitem>
|
||
<listitem><para>Expand the "General" box and select "existing projects into workspace"
|
||
and then click "Next".</para></listitem>
|
||
<listitem><para>Select the root directory and browse to
|
||
<filename>~/yocto-eclipse/plugins</filename>.</para></listitem>
|
||
<listitem><para>Three plug-ins exist: "org.yocto.bc.ui", "org.yocto.sdk.ide", and
|
||
"org.yocto.sdk.remotetools".
|
||
Select and import all of them.</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
|
||
<para>
|
||
The left navigation pane in the Eclipse application shows the default projects.
|
||
Right-click on one of these projects and run it as an Eclipse application.
|
||
This brings up a second instance of Eclipse IDE that has the Yocto Plug-in.
|
||
</para>
|
||
</section>
|
||
</section>
|
||
|
||
<section id='configuring-the-eclipse-yocto-plug-in'>
|
||
<title>Configuring the Eclipse Yocto Plug-in</title>
|
||
|
||
<para>
|
||
Configuring the Eclipse Yocto Plug-in involves setting the Cross
|
||
Compiler options and the Target options.
|
||
The configurations you choose become the default settings for all projects.
|
||
You do have opportunities to change them later when
|
||
you configure the project (see the following section).
|
||
</para>
|
||
|
||
<para>
|
||
To start, you need to do the following from within the Eclipse IDE:
|
||
<itemizedlist>
|
||
<listitem><para>Choose <filename>Windows -> Preferences</filename> to display
|
||
the <filename>Preferences</filename> Dialog</para></listitem>
|
||
<listitem><para>Click <filename>Yocto Project ADT</filename></para></listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
|
||
<section id='configuring-the-cross-compiler-options'>
|
||
<title>Configuring the Cross-Compiler Options</title>
|
||
|
||
<para>
|
||
To configure the Cross Compiler Options, you must select the type of toolchain,
|
||
point to the toolchain, specify the sysroot location, and select the target architecture.
|
||
<itemizedlist>
|
||
<listitem><para><emphasis>Selecting the Toolchain Type:</emphasis>
|
||
Choose between <filename>Standalone pre-built toolchain</filename>
|
||
and <filename>Build system derived toolchain</filename> for Cross
|
||
Compiler Options.
|
||
<itemizedlist>
|
||
<listitem><para><emphasis>
|
||
<filename>Standalone Pre-built Toolchain:</filename></emphasis>
|
||
Select this mode when you are using a stand-alone cross-toolchain.
|
||
For example, suppose you are an application developer and do not
|
||
need to build a target image.
|
||
Instead, you just want to use an architecture-specific toolchain on an
|
||
existing kernel and target root filesystem.
|
||
</para></listitem>
|
||
<listitem><para><emphasis>
|
||
<filename>Build System Derived Toolchain:</filename></emphasis>
|
||
Select this mode if the cross-toolchain has been installed and built
|
||
as part of the build directory.
|
||
When you select <filename>Build system derived toolchain</filename>,
|
||
you are using the toolchain bundled
|
||
inside the build directory.
|
||
</para></listitem>
|
||
</itemizedlist>
|
||
</para></listitem>
|
||
<listitem><para><emphasis>Point to the Toolchain:</emphasis>
|
||
If you are using a stand-alone pre-built toolchain, you should be pointing to the
|
||
<filename>&YOCTO_ADTPATH_DIR;</filename> directory.
|
||
This is the location for toolchains installed by the ADT Installer or by hand.
|
||
Sections "<link linkend='configuring-and-running-the-adt-installer-script'>Configuring
|
||
and Running the ADT Installer Script</link>" and
|
||
"<link linkend='using-an-existing-toolchain-tarball'>Using a Cross-Toolchain
|
||
Tarball</link>" describe two ways to install
|
||
a stand-alone cross-toolchain in the
|
||
<filename>/opt/poky</filename> directory.
|
||
<note>It is possible to install a stand-alone cross-toolchain in a directory
|
||
other than <filename>/opt/poky</filename>.
|
||
However, doing so is discouraged.</note></para>
|
||
<para>If you are using a system-derived toolchain, the path you provide
|
||
for the <filename>Toolchain Root Location</filename>
|
||
field is the build directory.
|
||
See section "<link linkend='using-the-toolchain-from-within-the-build-tree'>Using
|
||
BitBake and the build directory</link>" for
|
||
information on how to install the toolchain into the build directory.</para></listitem>
|
||
<listitem><para><emphasis>Specify the Sysroot Location:</emphasis>
|
||
This location is where the root filesystem for the
|
||
target hardware is created on the development system by the ADT Installer.
|
||
The QEMU user-space tools, the
|
||
NFS boot process, and the cross-toolchain all use the sysroot location.
|
||
</para></listitem>
|
||
<listitem><para><emphasis>Select the Target Architecture:</emphasis>
|
||
The target architecture is the type of hardware you are
|
||
going to use or emulate.
|
||
Use the pull-down <filename>Target Architecture</filename> menu to make
|
||
your selection.
|
||
The pull-down menu should have the supported architectures.
|
||
If the architecture you need is not listed in the menu, you
|
||
will need to build the image.
|
||
See the "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section
|
||
of The Yocto Project Quick Start for more information.</para></listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='configuring-the-target-options'>
|
||
<title>Configuring the Target Options</title>
|
||
|
||
<para>
|
||
You can choose to emulate hardware using the QEMU emulator, or you
|
||
can choose to run your image on actual hardware.
|
||
<itemizedlist>
|
||
<listitem><para><emphasis><filename>QEMU:</filename></emphasis> Select this option if
|
||
you will be using the QEMU emulator.
|
||
If you are using the emulator, you also need to locate the kernel
|
||
and specify any custom options.</para>
|
||
<para>If you selected <filename>Build system derived toolchain</filename>,
|
||
the target kernel you built will be located in the
|
||
build directory in <filename>tmp/deploy/images</filename> directory.
|
||
If you selected <filename>Standalone pre-built toolchain</filename>, the
|
||
pre-built image you downloaded is located
|
||
in the directory you specified when you downloaded the image.</para>
|
||
<para>Most custom options are for advanced QEMU users to further
|
||
customize their QEMU instance.
|
||
These options are specified between paired angled brackets.
|
||
Some options must be specified outside the brackets.
|
||
In particular, the options <filename>serial</filename>,
|
||
<filename>nographic</filename>, and <filename>kvm</filename> must all
|
||
be outside the brackets.
|
||
Use the <filename>man qemu</filename> command to get help on all the options
|
||
and their use.
|
||
The following is an example:
|
||
<literallayout class='monospaced'>
|
||
serial ‘<-m 256 -full-screen>’
|
||
</literallayout></para>
|
||
<para>
|
||
Regardless of the mode, Sysroot is already defined as part of the
|
||
Cross Compiler Options configuration in the
|
||
<filename>Sysroot Location:</filename> field.</para></listitem>
|
||
<listitem><para><emphasis><filename>External HW:</filename></emphasis> Select this option
|
||
if you will be using actual hardware.</para></listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
|
||
<para>
|
||
Click the <filename>OK</filename> button to save your plug-in configurations.
|
||
</para>
|
||
</section>
|
||
</section>
|
||
</section>
|
||
|
||
<section id='creating-the-project'>
|
||
<title>Creating the Project</title>
|
||
|
||
<para>
|
||
You can create two types of projects: Autotools-based, or Makefile-based.
|
||
This section describes how to create Autotools-based projects from within
|
||
the Eclipse IDE.
|
||
For information on creating Makefile-based projects in a terminal window, see the section
|
||
"<link linkend='using-the-command-line'>Using the Command Line</link>".
|
||
</para>
|
||
|
||
<para>
|
||
To create a project based on a Yocto template and then display the source code,
|
||
follow these steps:
|
||
<orderedlist>
|
||
<listitem><para>Select <filename>File -> New -> Project</filename>.</para></listitem>
|
||
<listitem><para>Double click <filename>CC++</filename>.</para></listitem>
|
||
<listitem><para>Double click <filename>C Project</filename> to create the project.</para></listitem>
|
||
<listitem><para>Expand <filename>Yocto Project ADT Project</filename>.</para></listitem>
|
||
<listitem><para>Select <filename>Hello World ANSI C Autotools Project</filename>.
|
||
This is an Autotools-based project based on a Yocto template.</para></listitem>
|
||
<listitem><para>Put a name in the <filename>Project name:</filename> field.
|
||
Do not use hyphens as part of the name.</para></listitem>
|
||
<listitem><para>Click <filename>Next</filename>.</para></listitem>
|
||
<listitem><para>Add information in the <filename>Author</filename> and
|
||
<filename>Copyright notice</filename> fields.</para></listitem>
|
||
<listitem><para>Be sure the <filename>License</filename> field is correct.</para></listitem>
|
||
<listitem><para>Click <filename>Finish</filename>.</para></listitem>
|
||
<listitem><para>If the "open perspective" prompt appears, click "Yes" so that you
|
||
in the C/C++ perspective.</para></listitem>
|
||
<listitem><para>The left-hand navigation pane shows your project.
|
||
You can display your source by double clicking the project's source file.
|
||
</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='configuring-the-cross-toolchains'>
|
||
<title>Configuring the Cross-Toolchains</title>
|
||
|
||
<para>
|
||
The earlier section, "<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring
|
||
the Eclipse Yocto Plug-in</link>", sets up the default project
|
||
configurations.
|
||
You can override these settings for a given project by following these steps:
|
||
<orderedlist>
|
||
<listitem><para>Select <filename>Project -> Change Yocto Project Settings</filename>:
|
||
This selection brings up the <filename>Yocot Project Settings</filename> Dialog
|
||
and allows you to make changes specific to an individual project.
|
||
</para>
|
||
<para>By default, the Cross Compiler Options and Target Options for a project
|
||
are inherited from settings you provide using the <filename>Preferences</filename>
|
||
Dialog as described earlier
|
||
in the "<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse
|
||
Yocto Plug-in</link>" section.
|
||
The <filename>Yocto Project Settings</filename>
|
||
Dialog allows you to override those default settings
|
||
for a given project.</para></listitem>
|
||
<listitem><para>Make your configurations for the project and click "OK".</para></listitem>
|
||
<listitem><para>Select <filename>Project -> Reconfigure Project</filename>:
|
||
This selection reconfigures the project by running
|
||
<filename>autogen.sh</filename> in the workspace for your project.
|
||
The script also runs <filename>libtoolize</filename>, <filename>aclocal</filename>,
|
||
<filename>autoconf</filename>, <filename>autoheader</filename>,
|
||
<filename>automake --a</filename>, and
|
||
<filename>./configure</filename>.
|
||
Click on the <filename>Console</filename> tab beneath your source code to
|
||
see the results of reconfiguring your project.</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='building-the-project'>
|
||
<title>Building the Project</title>
|
||
|
||
<para>
|
||
To build the project, select <filename>Project -> Build Project</filename>.
|
||
The console should update and you can note the cross-compiler you are using.
|
||
</para>
|
||
</section>
|
||
|
||
<section id='starting-qemu-in-user-space-nfs-mode'>
|
||
<title>Starting QEMU in User Space NFS Mode</title>
|
||
|
||
<para>
|
||
To start the QEMU emulator from within Eclipse, follow these steps:
|
||
<orderedlist>
|
||
<listitem><para>Expose the <filename>Run -> External Tools</filename> menu.
|
||
Your image should appear as a selectable menu item.
|
||
</para></listitem>
|
||
<listitem><para>Select your image from the menu to launch the
|
||
emulator in a new window.</para></listitem>
|
||
<listitem><para>If needed, enter your host root password in the shell window at the prompt.
|
||
This sets up a <filename>Tap 0</filename> connection needed for running in user-space
|
||
NFS mode.</para></listitem>
|
||
<listitem><para>Wait for QEMU to launch.</para></listitem>
|
||
<listitem><para>Once QEMU launches, you can begin operating within that
|
||
environment.
|
||
For example, you could determine the IP Address
|
||
for the user-space NFS by using the <filename>ifconfig</filename> command.
|
||
</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='deploying-and-debugging-the-application'>
|
||
<title>Deploying and Debugging the Application</title>
|
||
|
||
<para>
|
||
Once the QEMU emulator is running the image, using the Eclipse IDE
|
||
you can deploy your application and use the emulator to perform debugging.
|
||
Follow these steps to deploy the application.
|
||
<orderedlist>
|
||
<listitem><para>Select <filename>Run -> Debug Configurations...</filename></para></listitem>
|
||
<listitem><para>In the left area, expand <filename>C/C++Remote Application</filename>.</para></listitem>
|
||
<listitem><para>Locate your project and select it to bring up a new
|
||
tabbed view in the <filename>Debug Configurations</filename> Dialog.</para></listitem>
|
||
<listitem><para>Enter the absolute path into which you want to deploy
|
||
the application.
|
||
Use the <filename>Remote Absolute File Path for C/C++Application:</filename> field.
|
||
For example, enter <filename>/usr/bin/<programname></filename>.</para></listitem>
|
||
<listitem><para>Click on the <filename>Debugger</filename> tab to see the cross-tool debugger
|
||
you are using.</para></listitem>
|
||
<listitem><para>Click on the <filename>Main</filename> tab.</para></listitem>
|
||
<listitem><para>Create a new connection to the QEMU instance
|
||
by clicking on <filename>new</filename>.</para></listitem>
|
||
<listitem><para>Select <filename>TCF</filename>, which means Target Communication
|
||
Framework.</para></listitem>
|
||
<listitem><para>Click <filename>Next</filename>.</para></listitem>
|
||
<listitem><para>Clear out the <filename>host name</filename> field and enter the IP Address
|
||
determined earlier.</para></listitem>
|
||
<listitem><para>Click <filename>Finish</filename> to close the
|
||
<filename>New Connections</filename> Dialog.</para></listitem>
|
||
<listitem><para>Use the drop-down menu now in the <filename>Connection</filename> field and pick
|
||
the IP Address you entered.</para></listitem>
|
||
<listitem><para>Click <filename>Debug</filename> to bring up a login screen
|
||
and login.</para></listitem>
|
||
<listitem><para>Accept the debug perspective.</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='running-user-space-tools'>
|
||
<title>Running User-Space Tools</title>
|
||
|
||
<para>
|
||
As mentioned earlier in the manual, several tools exist that enhance
|
||
your development experience.
|
||
These tools are aids in developing and debugging applications and images.
|
||
You can run these user-space tools from within the Eclipse IDE through the
|
||
<filename>YoctoTools</filename> menu.
|
||
</para>
|
||
|
||
<para>
|
||
Once you pick a tool, you need to configure it for the remote target.
|
||
Every tool needs to have the connection configured.
|
||
You must select an existing TCF-based RSE connection to the remote target.
|
||
If one does not exist, click <filename>New</filename> to create one.
|
||
</para>
|
||
|
||
<para>
|
||
Here are some specifics about the remote tools:
|
||
<itemizedlist>
|
||
<listitem><para><emphasis><filename>OProfile</filename>:</emphasis> Selecting this tool causes
|
||
the <filename>oprofile-server</filename> on the remote target to launch on
|
||
the local host machine.
|
||
The <filename>oprofile-viewer</filename> must be installed on the local host machine and the
|
||
<filename>oprofile-server</filename> must be installed on the remote target,
|
||
respectively, in order to use.
|
||
You must compile and install the <filename>oprofile-viewer</filename> from the source code
|
||
on your local host machine.
|
||
Furthermore, in order to convert the target's sample format data into a form that the
|
||
host can use, you must have <filename>oprofile</filename> version 0.9.4 or
|
||
greater installed on the host.</para>
|
||
<para>You can locate both the viewer and server from
|
||
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/oprofileui/'></ulink>.
|
||
<note>The <filename>oprofile-server</filename> is installed by default on
|
||
the <filename>core-image-sato-sdk</filename> image.</note></para></listitem>
|
||
<listitem><para><emphasis><filename>Lttng-ust</filename>:</emphasis> Selecting this tool runs
|
||
<filename>usttrace</filename> on the remote target, transfers the output data back
|
||
to the local host machine, and uses the <filename>lttng</filename> Eclipse plug-in to
|
||
graphically display the output.
|
||
For information on how to use <filename>lttng</filename> to trace an application, see
|
||
<ulink url='http://lttng.org/files/ust/manual/ust.html'></ulink>.</para>
|
||
<para>For <filename>Application</filename>, you must supply the absolute path name of the
|
||
application to be traced by user mode <filename>lttng</filename>.
|
||
For example, typing <filename>/path/to/foo</filename> triggers
|
||
<filename>usttrace /path/to/foo</filename> on the remote target to trace the
|
||
program <filename>/path/to/foo</filename>.</para>
|
||
<para><filename>Argument</filename> is passed to <filename>usttrace</filename>
|
||
running on the remote target.</para>
|
||
<para>Before you use the <filename>lttng-ust</filename> tool, you need to setup
|
||
the <filename>lttng</filename> Eclipse plug-in and create a <filename>lttng</filename>
|
||
project.
|
||
Do the following:
|
||
<orderedlist>
|
||
<listitem><para>Follow these
|
||
<ulink url='http://wiki.eclipse.org/Linux_Tools_Project/LTTng#Downloading_and_installing_the_LTTng_parser_library'>instructions</ulink>
|
||
to download and install the <filename>lttng</filename> parser library.
|
||
</para></listitem>
|
||
<listitem><para>Select <filename>Window -> Open Perspective -> Other</filename>
|
||
and then select <filename>LTTng</filename>.</para></listitem>
|
||
<listitem><para>Click <filename>OK</filename> to change the Eclipse perspective
|
||
into the <filename>LTTng</filename> perspective.</para></listitem>
|
||
<listitem><para>Create a new <filename>LTTng</filename> project by selecting
|
||
<filename>File -> New -> Project</filename>.</para></listitem>
|
||
<listitem><para>Choose <filename>LTTng -> LTTng Project</filename>.</para></listitem>
|
||
<listitem><para>Click <filename>YoctoTools -> lttng-ust</filename> to start user mode
|
||
<filename>lttng</filename> on the remote target.</para></listitem>
|
||
</orderedlist></para>
|
||
<para>After the output data has been transferred from the remote target back to the local
|
||
host machine, new traces will be imported into the selected <filename>LTTng</filename> project.
|
||
Then you can go to the <filename>LTTng</filename> project, right click the imported
|
||
trace, and set the trace type as the <filename>LTTng</filename> kernel trace.
|
||
Finally, right click the imported trace and select <filename>Open</filename>
|
||
to display the data graphically.</para></listitem>
|
||
<listitem><para><emphasis><filename>PowerTOP</filename>:</emphasis> Selecting this tool runs
|
||
<filename>powertop</filename> on the remote target machine and displays the results in a
|
||
new view called <filename>powertop</filename>.</para>
|
||
<para><filename>Time to gather data(sec):</filename> is the time passed in seconds before data
|
||
is gathered from the remote target for analysis.</para>
|
||
<para><filename>show pids in wakeups list:</filename> corresponds to the
|
||
<filename>-p</filename> argument
|
||
passed to <filename>powertop</filename>.</para></listitem>
|
||
<listitem><para><emphasis><filename>LatencyTOP and Perf</filename>:</emphasis>
|
||
<filename>latencytop</filename> identifies system latency, while
|
||
<filename>perf</filename> monitors the system's
|
||
performance counter registers.
|
||
Selecting either of these tools causes an RSE terminal view to appear
|
||
from which you can run the tools.
|
||
Both tools refresh the entire screen to display results while they run.</para></listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='customizing-an-image-using-a-bitbake-commander-project-and-hob'>
|
||
<title>Customizing an Image Using a BitBake Commander Project and Hob</title>
|
||
|
||
<para>
|
||
Within Eclipse, you can create a Yocto BitBake Commander project,
|
||
edit the metadata, and then use the
|
||
<ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> to build a customized
|
||
image all within one IDE.
|
||
</para>
|
||
|
||
<section id='creating-the-yocto-bitbake-commander-project'>
|
||
<title>Creating the Yocto BitBake Commander Project</title>
|
||
|
||
<para>
|
||
To create a Yocto BitBake Commander project, follow these steps:
|
||
<orderedlist>
|
||
<listitem><para>Select <filename>Window -> Open Perspective -> Other</filename>
|
||
and then choose <filename>Bitbake Commander</filename>.</para></listitem>
|
||
<listitem><para>Click <filename>OK</filename> to change the Eclipse perspective into the
|
||
Bitbake Commander perspective.</para></listitem>
|
||
<listitem><para>Select <filename>File -> New -> Project</filename> to create a new Yocto
|
||
Bitbake Commander project.</para></listitem>
|
||
<listitem><para>Choose <filename>Yocto Project Bitbake Commander -> New Yocto Project</filename>
|
||
and click <filename>Next</filename>.</para></listitem>
|
||
<listitem><para>Enter the Project Name and choose the Project Location.
|
||
The Yocto project's metadata files will be put under the directory
|
||
<filename><project_location>/<project_name></filename>.
|
||
If that directory does not exist, you need to check
|
||
the "Clone from Yocto Git Repository" box, which would execute a
|
||
<filename>git clone</filename> command to get the project's metadata files.
|
||
</para></listitem>
|
||
<listitem><para>Select <filename>Finish</filename> to create the project.</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='editing-the-metadata-files'>
|
||
<title>Editing the Metadata Files</title>
|
||
|
||
<para>
|
||
After you create the Yocto Bitbake Commander project, you can modify the metadata files
|
||
by opening them in the project.
|
||
When editing recipe files (<filename>.bb</filename> files), you can view BitBake
|
||
variable values and information by hovering the mouse pointer over the variable name and
|
||
waiting a few seconds.
|
||
</para>
|
||
|
||
<para>
|
||
To edit the metadata, follow these steps:
|
||
<orderedlist>
|
||
<listitem><para>Select your Yocto Bitbake Commander project.</para></listitem>
|
||
<listitem><para>Select <filename>File -> New -> Yocto BitBake Commander -> BitBake Recipe</filename>
|
||
to open a new recipe wizard.</para></listitem>
|
||
<listitem><para>Point to your source by filling in the "SRC_URL" field.
|
||
For example, you can add a recipe to your
|
||
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-source-files'>source directory structure</ulink>
|
||
by defining "SRC_URL" as follows:
|
||
<literallayout class='monospaced'>
|
||
ftp://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
|
||
</literallayout></para></listitem>
|
||
<listitem><para>Click "Populate" to calculate the archive md5, sha256,
|
||
license checksum values and to auto-generate the recipe filename.</para></listitem>
|
||
<listitem><para>Fill in the "Description" field.</para></listitem>
|
||
<listitem><para>Be sure values for all required fields exist.</para></listitem>
|
||
<listitem><para>Click <filename>Finish</filename>.</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='buiding-and-customizing-the-image'>
|
||
<title>Building and Customizing the Image</title>
|
||
|
||
<para>
|
||
To build and customize the image in Eclipse, follow these steps:
|
||
<orderedlist>
|
||
<listitem><para>Select your Yocto Bitbake Commander project.</para></listitem>
|
||
<listitem><para>Select <filename>Project -> Launch HOB</filename>.</para></listitem>
|
||
<listitem><para>Enter the build directory where you want to put your final images.</para></listitem>
|
||
<listitem><para>Click <filename>OK</filename> to launch Hob.</para></listitem>
|
||
<listitem><para>Use Hob to customize and build your own images.
|
||
For information on Hob, see the
|
||
<ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob Project Page</ulink> on the
|
||
Yocto Project website.</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</section>
|
||
</section>
|
||
</chapter>
|
||
<!--
|
||
vim: expandtab tw=80 ts=4
|
||
-->
|