YOCTO #1419: General edits and fix for oprofile-server rev requirements.

I performed general edits to this chapter as well as addressed the two
items for the YOCTO #1419, which was re-opened.  These included
specifying oprofile version 0.9.4 required and the note that
oprofile-server is only installed by default in the core-image-sato-sdk
image.

(From yocto-docs rev: fdca6458d9cd431052126d31f6eb4396c3327982)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Scott Rifenbark 2011-09-01 09:19:36 -07:00 committed by Richard Purdie
parent 77d1ba446c
commit 04ca8b2862
1 changed files with 222 additions and 197 deletions

View File

@ -3,6 +3,7 @@
<chapter id='adt-eclipse'> <chapter id='adt-eclipse'>
<title>Working Within Eclipse</title> <title>Working Within Eclipse</title>
<para> <para>
The Eclipse IDE is a popular development environment and it fully supports The Eclipse IDE is a popular development environment and it fully supports
development using Yocto Project. development using Yocto Project.
@ -10,10 +11,10 @@
the Eclipse IDE, you maximize your Yocto Project design experience. the Eclipse IDE, you maximize your Yocto Project design experience.
Installing and configuring the Plug-in results in an environment that Installing and configuring the Plug-in results in an environment that
has extensions specifically designed to let you more easily develop software. has extensions specifically designed to let you more easily develop software.
These extensions allow for cross-compilation and deployment and execution of These extensions allow for cross-compilation, deployment, and execution of
your output into a QEMU emulation session. your output into a QEMU emulation session.
You can also perform cross-debugging and profiling. You can also perform cross-debugging and profiling.
The environment also has a suite of tools that allows you to perform The environment also supports a suite of tools that allows you to perform
remote profiling, tracing, collection of power data, collection of remote profiling, tracing, collection of power data, collection of
latency data, and collection of performance data. latency data, and collection of performance data.
</para> </para>
@ -24,19 +25,21 @@
<section id='setting-up-the-eclipse-ide'> <section id='setting-up-the-eclipse-ide'>
<title>Setting Up the Eclipse IDE</title> <title>Setting Up the Eclipse IDE</title>
<para> <para>
To develop within the Eclipse IDE you need to do the following: To develop within the Eclipse IDE, you need to do the following:
<orderedlist> <orderedlist>
<listitem><para>Be sure the optimal version of Eclipse IDE <listitem><para>Be sure the optimal version of Eclipse IDE
is installed.</para></listitem> is installed.</para></listitem>
<listitem><para>Install Eclipse plug-in requirements prior to installing <listitem><para>Install the Eclipse Plug-in requirements prior to installing
the Eclipse Yocto Plug-in.</para></listitem> the Eclipse Yocto Plug-in.</para></listitem>
<listitem><para>Configure the Eclipse Yocto Plug-in.</para></listitem> <listitem><para>Configure the Eclipse Yocto Plug-in.</para></listitem>
</orderedlist> </orderedlist>
</para> </para>
<section id='installing-eclipse-ide'> <section id='installing-eclipse-ide'>
<title>Installing Eclipse IDE</title> <title>Installing Eclipse IDE</title>
<para> <para>
It is recommended that you have the Indigo 3.7 version of the It is recommended that you have the Indigo 3.7 version of the
Eclipse IDE installed on your development system. Eclipse IDE installed on your development system.
@ -46,29 +49,32 @@
This version contains the Eclipse Platform, the Java Development This version contains the Eclipse Platform, the Java Development
Tools (JDT), and the Plug-in Development Environment. Tools (JDT), and the Plug-in Development Environment.
</para> </para>
<para> <para>
Once you have downloaded the tarball, extract it into a clean Once you have downloaded the tarball, extract it into a clean
directory and complete the installation. directory and complete the installation.
</para> </para>
<para> <para>
One issue exists that you need to be aware of regarding the Java One issue exists that you need to be aware of regarding the Java
Virtual machines garbage collection (GC) process. Virtual machines garbage collection (GC) process.
The GC process does not clean up the permanent generation The GC process does not clean up the permanent generation
space (PermGen). space (PermGen).
This space stores meta-data descriptions of classes. This space stores metadata descriptions of classes.
The default value is set too small and it could trigger an The default value is set too small and it could trigger an
out-of-memory error such as the following: out-of-memory error such as the following:
<literallayout class='monospaced'> <literallayout class='monospaced'>
Java.lang.OutOfMemoryError: PermGen space Java.lang.OutOfMemoryError: PermGen space
</literallayout> </literallayout>
</para> </para>
<para> <para>
This error causes the application to hang. This error causes the application to hang.
</para> </para>
<para> <para>
To fix this issue, you can use the <filename>--vmargs</filename> To fix this issue, you can use the <filename>--vmargs</filename>
option when you start option when you start Eclipse to increase the size of the permanent generation space:
Eclipse to increase the size of the permanent generation space:
<literallayout class='monospaced'> <literallayout class='monospaced'>
eclipse --vmargs --XX:PermSize=256M eclipse --vmargs --XX:PermSize=256M
</literallayout> </literallayout>
@ -77,118 +83,125 @@
<section id='installing-required-plug-ins-and-the-eclipse-yocto-plug-in'> <section id='installing-required-plug-ins-and-the-eclipse-yocto-plug-in'>
<title>Installing Required Plug-ins and the Eclipse Yocto Plug-in</title> <title>Installing Required Plug-ins and the Eclipse Yocto Plug-in</title>
<para> <para>
Before installing the Yocto Plug-in, you need to be sure that the Before installing the Yocto Plug-in, you need to be sure that the
<filename>CDT 8.0</filename>, <filename>RSE 3.2</filename>, and <filename>CDT 8.0</filename>, <filename>RSE 3.2</filename>, and
<filename>Autotools</filename> plug-ins are all installed in the <filename>Autotools</filename> plug-ins are all installed in the
following order. following order.
After installing these three plug-ins, you can install the After installing these three plug-ins, you can install the Eclipse Yocto Plug-in.
<filename>Eclipse Yocto</filename> plug-in.
Use the following URLs for the plug-ins: Use the following URLs for the plug-ins:
<orderedlist> <orderedlist>
<listitem><para><emphasis>CDT 8.0</emphasis> <listitem><para><emphasis>
<ulink url='http://download.eclipse.org/tools/cdt/releases/indigo/'></ulink>: <ulink url='http://download.eclipse.org/tools/cdt/releases/indigo/'>CDT 8.0:</ulink>
For <filename>CDT main features</filename>, select the checkbox so you get all items. </emphasis> For <filename>CDT main features</filename>, select the
For <filename>CDT optional features</filename> expand the selections and check checkbox so you get all items.
<filename>C/C++ Remote Launch</filename>.</para></listitem> For <filename>CDT optional features</filename> expand the selections and check
<listitem><para><emphasis>RSE 3.2</emphasis> <filename>C/C++ Remote Launch</filename>.</para></listitem>
<ulink url='http://download.eclipse.org/tm/updates/3.2'></ulink>: <listitem><para><emphasis>
Check the box next to <filename>TM and RSE Main Features</filename> so you select all <ulink url='http://download.eclipse.org/tm/updates/3.2'>RSE 3.2:</ulink></emphasis>
those items. Check the box next to <filename>TM and RSE Main Features</filename> so you select all
Note that all items in the main features depend on 3.2.1 version. those items.
Expand the items under <filename>TM and RSE Uncategorized 3.2.1</filename> and Note that all items in the main features depend on 3.2.1 version.
select the following: <filename>Remote System Explorer End-User Runtime</filename>, Expand the items under <filename>TM and RSE Uncategorized 3.2.1</filename> and
<filename>Remote System Explorer Extended SDK</filename>, select the following: <filename>Remote System Explorer End-User Runtime</filename>,
<filename>Remote System Explorer User Actions</filename>, <filename>Remote System Explorer Extended SDK</filename>,
<filename>RSE Core</filename>, <filename>RSE Terminals UI</filename>, <filename>Remote System Explorer User Actions</filename>,
and <filename>Target Management Terminal</filename>.</para></listitem> <filename>RSE Core</filename>, <filename>RSE Terminals UI</filename>,
<listitem><para><emphasis>Autotools</emphasis> and <filename>Target Management Terminal</filename>.</para></listitem>
<ulink url='http://download.eclipse.org/technology/linuxtools/update/'></ulink>: <listitem><para><emphasis>
Expand the items under “Linux Tools” and select “Autotools support for <ulink url='http://download.eclipse.org/technology/linuxtools/update/'>Autotools:</ulink>
CDT (Incubation)”.</para></listitem> </emphasis> Expand the items under “Linux Tools” and select “Autotools support for
<listitem><para><emphasis>Yocto Plug-in</emphasis> CDT (Incubation)”.</para></listitem>
<ulink url='http://www.yoctoproject.org/downloads/eclipse-plugin/1.0'></ulink>: <listitem><para><emphasis>
Check the box next to <filename>Development tools &amp; SDKs for Yocto Linux</filename> <ulink url='http://www.yoctoproject.org/downloads/eclipse-plugin/1.1'>Yocto Plug-in:
to select all the items.</para></listitem> </ulink></emphasis> Check the box next to
<filename>Development tools &amp; SDKs for Yocto Linux</filename>
to select all the items.</para></listitem>
</orderedlist> </orderedlist>
</para> </para>
<para> <para>
Follow these general steps to install a plug-in: Follow these general steps to install an Eclipse plug-in:
<orderedlist> <orderedlist>
<listitem><para>From within the Eclipse IDE select the <listitem><para>From within the Eclipse IDE, select the
<filename>Install New Software</filename> item from the <filename>Help</filename> <filename>Install New Software</filename> item from the <filename>Help</filename>
menu.</para></listitem> menu.</para></listitem>
<listitem><para>Click <filename>Add…</filename> in the <listitem><para>Click <filename>Add…</filename> in the
<filename>Work with:</filename> area.</para></listitem> <filename>Work with:</filename> area.</para></listitem>
<listitem><para>Enter the URL for the repository and leave the <filename>Name</filename> <listitem><para>Enter the URL for the repository and leave the <filename>Name</filename>
field blank.</para></listitem> field blank.</para></listitem>
<listitem><para>Check the boxes next to the software you need to <listitem><para>Check the boxes next to the software you need to
install and then complete the installation. install and then complete the installation.
For information on the specific software packages you need to include, For information on the specific software packages you need to include,
see the previous list.</para></listitem> see the previous list.</para></listitem>
</orderedlist> </orderedlist>
</para> </para>
</section> </section>
<section id='configuring-the-plug-in'> <section id='configuring-the-plug-in'>
<title>Configuring the Plug-in</title> <title>Configuring the Plug-in</title>
<para> <para>
Configuring the Eclipse Yocto Plug-in involves choosing the Cross Configuring the Eclipse Yocto Plug-in involves choosing the Cross
Compiler Options, selecting the Target Architecture, and choosing Compiler Options, selecting the Target Architecture, and choosing
the Target Options. the Target Options.
These settings are the default settings for all projects. The settings you choose become the default settings for all projects.
You do have opportunities to change them later if you choose to when You do have opportunities to change them later when
you configure the project (see the following section). you configure the project (see the following section).
</para> </para>
<para> <para>
To start, you need to do the following from within the Eclipse IDE: To start, you need to do the following from within the Eclipse IDE:
<itemizedlist> <itemizedlist>
<listitem><para>Choose <filename>Windows -&gt; Preferences</filename> to display <listitem><para>Choose <filename>Windows -&gt; Preferences</filename> to display
the Preferences Dialog</para></listitem> the Preferences Dialog</para></listitem>
<listitem><para>Click <filename>Yocto SDK</filename></para></listitem> <listitem><para>Click <filename>Yocto SDK</filename></para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
<section id='configuring-the-cross-compiler-options'> <section id='configuring-the-cross-compiler-options'>
<title>Configuring the Cross-Compiler Options</title> <title>Configuring the Cross-Compiler Options</title>
<para> <para>
Choose between <filename>Stand-alone Prebuilt Toolchain</filename> Choose between <filename>Stand-alone Prebuilt Toolchain</filename>
and <filename>Build System Derived Toolchain</filename> for Cross and <filename>Build System Derived Toolchain</filename> for Cross
Compiler Options. Compiler Options.
<itemizedlist> <itemizedlist>
<listitem><para><emphasis><filename>Stand-alone Prebuilt Toolchain</filename></emphasis> <listitem><para><emphasis><filename>Stand-alone Prebuilt Toolchain:</filename></emphasis>
Select this mode Select this mode
when you are not concerned with building a target image or you do not have when you are not concerned with building a target image or you do not have
a Yocto Project build tree on your development system. a Yocto Project build tree on your development system.
For example, suppose you are an application developer and do not For example, suppose you are an application developer and do not
need to build a target image. need to build a target image.
Instead, you just want to use an architecture-specific toolchain on an Instead, you just want to use an architecture-specific toolchain on an
existing kernel and target root filesystem. existing kernel and target root filesystem.
When you use <filename>Stand-alone Prebuilt Toolchain</filename> When you use <filename>Stand-alone Prebuilt Toolchain</filename>,
you are using the toolchain installed you are using the toolchain installed
in the <filename>/opt/poky</filename> directory.</para></listitem> in the <filename>/opt/poky</filename> directory.</para></listitem>
<listitem><para><emphasis><filename>Build System Derived Toolchain</filename></emphasis> <listitem><para><emphasis><filename>Build System Derived Toolchain:</filename></emphasis>
Select this mode Select this mode
if you are building images for target hardware or your if you are building images for target hardware or your
development environment already has a Yocto Project build tree. development environment already has a Yocto Project build tree.
In this case, you likely already have a Yocto Project build tree on In this case, you likely already have a Yocto Project build tree on
your system or you (or someone else) will be building one. your system or you (or someone else) will be building one.
When you select <filename>Build System Derived Toolchain</filename> When you select <filename>Build System Derived Toolchain</filename>,
you are using the toolchain bundled you are using the toolchain bundled
inside the Yocto Project build tree. inside the Yocto Project build tree.
If you use this mode, you must also supply the Yocto Project build directory If you use this mode, you must also supply the Yocto Project build directory
in the <filename>Preferences Dialog</filename>.</para></listitem> in the <filename>Preferences Dialog</filename>.</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
</section> </section>
<section id='configuring-the-sysroot'> <section id='configuring-the-sysroot'>
<title>Configuring the Sysroot</title> <title>Configuring the Sysroot</title>
<para> <para>
Specify the sysroot location, which is where the root filesystem for the Specify the sysroot location, which is where the root filesystem for the
target hardware is created on the development system by the ADT Installer. target hardware is created on the development system by the ADT Installer.
The QEMU user-space tools, the The QEMU user-space tools, the
NFS boot process and the cross-toolchain all use the sysroot location NFS boot process, and the cross-toolchain all use the sysroot location
regardless of whether you select regardless of whether you select
(<filename>Stand-alone Prebuilt Toolchain</filename> or (<filename>Stand-alone Prebuilt Toolchain</filename> or
<filename>Build System Derived Toolchain</filename>). <filename>Build System Derived Toolchain</filename>).
@ -197,59 +210,60 @@
<section id='selecting-the-target-architecture'> <section id='selecting-the-target-architecture'>
<title>Selecting the Target Architecture</title> <title>Selecting the Target Architecture</title>
<para> <para>
Use the pull-down <filename>Target Architecture</filename> menu and select the Use the pull-down <filename>Target Architecture</filename> menu and select the
target architecture. target architecture.
</para> </para>
<para> <para>
The target architecture is the type of hardware you are The target architecture is the type of hardware you are
going to use or emulate. going to use or emulate.
This pull-down menu should have the supported architectures. This pull-down menu should have the supported architectures.
If the architecture you need is not listed in the menu then you If the architecture you need is not listed in the menu, you
will need to re-visit will need to re-visit the section "<link linkend='adt-prepare'>Preparing to Use
<xref linkend='adt-prepare'> the Application Development Toolkit (ADT)</link>" earlier in this document.
Preparing to Use the Application Development Toolkit (ADT)</xref>
section earlier in this document.
</para> </para>
</section> </section>
<section id='choosing-the-target-options'> <section id='choosing-the-target-options'>
<title>Choosing the Target Options</title> <title>Choosing the Target Options</title>
<para> <para>
You can choose to emulate hardware using the QEMU emulator, or you You can choose to emulate hardware using the QEMU emulator, or you
can choose to use actual hardware. can choose to use actual hardware.
<itemizedlist> <itemizedlist>
<listitem><para><emphasis><filename>External HW</filename></emphasis> Select this option <listitem><para><emphasis><filename>External HW:</filename></emphasis> Select this option
if you will be using actual hardware.</para></listitem> if you will be using actual hardware.</para></listitem>
<listitem><para><emphasis><filename>QEMU</filename></emphasis> Select this option if <listitem><para><emphasis><filename>QEMU:</filename></emphasis> Select this option if
you will be using the QEMU emulator. you will be using the QEMU emulator.
If you are using the emulator, you also need to locate the kernel If you are using the emulator, you also need to locate the kernel
and specify any custom options.</para> and specify any custom options.</para>
<para>If you select <filename>Build System Derived Toolchain</filename>, <para>If you select <filename>Build System Derived Toolchain</filename>,
the target kernel you built will be located in the the target kernel you built will be located in the
Yocto Project build tree in <filename>tmp/deploy/images</filename> directory. Yocto Project build tree in <filename>tmp/deploy/images</filename> directory.
If you select <filename>Stand-alone Prebuilt Toolchain</filename>, the If you select <filename>Stand-alone Prebuilt Toolchain</filename>, the
pre-built kernel you downloaded is located pre-built kernel you downloaded is located
in the directory you specified when you downloaded the image.</para> in the directory you specified when you downloaded the image.</para>
<para>Most custom options are for advanced QEMU users to further <para>Most custom options are for advanced QEMU users to further
customize their QEMU instance. customize their QEMU instance.
These options are specified between paired angled brackets. These options are specified between paired angled brackets.
Some options must be specified outside the brackets. Some options must be specified outside the brackets.
In particular, the options <filename>serial</filename>, In particular, the options <filename>serial</filename>,
<filename>nographic</filename>, and <filename>kvm</filename> must all <filename>nographic</filename>, and <filename>kvm</filename> must all
be outside the brackets. be outside the brackets.
Use the <filename>man qemu</filename> command to get help on all the options Use the <filename>man qemu</filename> command to get help on all the options
and their use. and their use.
The following is an example: The following is an example:
<literallayout class='monospaced'> <literallayout class='monospaced'>
serial &lt;-m 256 -full-screen&gt; serial &lt;-m 256 -full-screen&gt;
</literallayout> </literallayout></para>
</para> <para>
<para> Regardless of the mode, Sysroot is already defined in the “Sysroot”
Regardless of the mode, Sysroot is already defined in the “Sysroot” field.</para></listitem>
field.</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
<para> <para>
Click the <filename>OK</filename> button to save your plug-in configurations. Click the <filename>OK</filename> button to save your plug-in configurations.
</para> </para>
@ -259,14 +273,15 @@
<section id='creating-the-project'> <section id='creating-the-project'>
<title>Creating the Project</title> <title>Creating the Project</title>
<para> <para>
You can create two types of projects: Autotools-based, or Makefile-based. You can create two types of projects: Autotools-based, or Makefile-based.
This section describes how to create autotools-based projects from within This section describes how to create autotools-based projects from within
the Eclipse IDE. the Eclipse IDE.
For information on creating projects in a terminal window see For information on creating Makefile-based projects in a terminal window see the section
<xref linkend='using-the-command-line'>Using the Command Line</xref> "<link linkend='using-the-command-line'>Using the Command Line</link>".
section.
</para> </para>
<para> <para>
To create a project based on a Yocto template and then display the source code, To create a project based on a Yocto template and then display the source code,
follow these steps: follow these steps:
@ -276,54 +291,56 @@
<listitem><para>Double click <filename>C Project</filename> to create the project.</para></listitem> <listitem><para>Double click <filename>C Project</filename> to create the project.</para></listitem>
<listitem><para>Double click <filename>Yocto SDK Project</filename>.</para></listitem> <listitem><para>Double click <filename>Yocto SDK Project</filename>.</para></listitem>
<listitem><para>Select <filename>Hello World ANSI C Autotools Project</filename>. <listitem><para>Select <filename>Hello World ANSI C Autotools Project</filename>.
This is an Autotools-based project based on a Yocto Project template.</para></listitem> This is an Autotools-based project based on a Yocto Project template.</para></listitem>
<listitem><para>Put a name in the <filename>Project name:</filename> field.</para></listitem> <listitem><para>Put a name in the <filename>Project name:</filename> field.</para></listitem>
<listitem><para>Click <filename>Next</filename>.</para></listitem> <listitem><para>Click <filename>Next</filename>.</para></listitem>
<listitem><para>Add information in the <filename>Author</filename> field.</para></listitem> <listitem><para>Add information in the <filename>Author</filename> field.</para></listitem>
<listitem><para>Use <filename>GNU General Public License v2.0</filename> <listitem><para>Use <filename>GNU General Public License v2.0</filename>
for the License.</para></listitem> for the License.</para></listitem>
<listitem><para>Click <filename>Finish</filename>.</para></listitem> <listitem><para>Click <filename>Finish</filename>.</para></listitem>
<listitem><para>Answer <filename>Yes</filename> to the open perspective prompt.</para></listitem> <listitem><para>Answer <filename>Yes</filename> to the open perspective prompt.</para></listitem>
<listitem><para>In the Project Explorer expand your project.</para></listitem> <listitem><para>In the Project Explorer expand your project.</para></listitem>
<listitem><para>Expand <filename>src</filename>.</para></listitem> <listitem><para>Expand <filename>src</filename>.</para></listitem>
<listitem><para>Double click on your source file and the code appears <listitem><para>Double click on your source file and the code appears
in the window. in the window.
This is the template.</para></listitem> This is the template.</para></listitem>
</orderedlist> </orderedlist>
</para> </para>
</section> </section>
<section id='configuring-the-cross-toolchains'> <section id='configuring-the-cross-toolchains'>
<title>Configuring the Cross-Toolchains</title> <title>Configuring the Cross-Toolchains</title>
<para> <para>
The previous section, <xref linkend='configuring-the-cross-compiler-options'> The previous section, "<link linkend='configuring-the-cross-compiler-options'>
Configuring the Cross-Compiler Options</xref>, set up the default project Configuring the Cross-Compiler Options</link>", set up the default project
configurations. configurations.
You can change these settings for a given project by following these steps: You can change these settings for a given project by following these steps:
<orderedlist> <orderedlist>
<listitem><para>Select <filename>Project -&gt; Invoke Yocto Tools -&gt; Reconfigure Yocto</filename> - <listitem><para>Select <filename>Project -&gt; Invoke Yocto Tools -&gt; Reconfigure Yocto</filename>:
This selection brings up the project's <filename>Yocto Settings</filename> Dialog. This selection brings up the project's <filename>Yocto Settings</filename> Dialog.
Settings are inherited from the default project configuration. Settings are inherited from the default project configuration.
The information in this dialog is identical to that chosen earlier The information in this dialog is identical to that chosen earlier
for the <filename>Cross Compiler Option</filename> for the <filename>Cross Compiler Option</filename>
(<filename>Stand-alone Prebuilt Toolchain</filename> or (<filename>Stand-alone Prebuilt Toolchain</filename> or
<filename>Build System Derived Toolchain</filename>), <filename>Build System Derived Toolchain</filename>),
the <filename>Target Architecture</filename>, and the the <filename>Target Architecture</filename>, and the
<filename>Target Options</filename>. <filename>Target Options</filename>.
The settings are inherited from the Yocto Plug-in configuration performed The settings are inherited from the Yocto Plug-in configuration performed
after installing the plug-in.</para></listitem> after installing the plug-in.</para></listitem>
<listitem><para><filename>Select Project -&gt; Reconfigure Project</filename> - <listitem><para><filename>Select Project -&gt; Reconfigure Project</filename>:
This selection runs the <filename>autogen.sh</filename> in the workspace for your project. This selection runs the <filename>autogen.sh</filename> in the workspace for your project.
The script runs <filename>libtoolize</filename>, <filename>aclocal</filename>, The script runs <filename>libtoolize</filename>, <filename>aclocal</filename>,
<filename>autoconf</filename>, <filename>autoheader</filename>, <filename>autoconf</filename>, <filename>autoheader</filename>,
<filename>automake --a</filename>, and <filename>automake --a</filename>, and
<filename>./configure</filename>.</para></listitem> <filename>./configure</filename>.</para></listitem>
</orderedlist> </orderedlist>
</para> </para>
</section> </section>
<section id='building-the-project'> <section id='building-the-project'>
<title>Building the Project</title> <title>Building the Project</title>
<para> <para>
To build the project, select <filename>Project -&gt; Build Project</filename>. To build the project, select <filename>Project -&gt; Build Project</filename>.
The console should update and you can note the cross-compiler you are using. The console should update and you can note the cross-compiler you are using.
@ -332,27 +349,30 @@
<section id='starting-qemu-in-user-space-nfs-mode'> <section id='starting-qemu-in-user-space-nfs-mode'>
<title>Starting QEMU in User Space NFS Mode</title> <title>Starting QEMU in User Space NFS Mode</title>
<para> <para>
To start the QEMU emulator from within Eclipse, follow these steps: To start the QEMU emulator from within Eclipse, follow these steps:
<orderedlist> <orderedlist>
<listitem><para>Select <filename>Run -&gt; External Tools -&gt; External Tools Configurations...</filename> <listitem><para>Select <filename>Run -&gt; External Tools -&gt; External Tools
- This selection brings up the <filename>External Tools Configurations</filename> Dialog.</para></listitem> Configurations...</filename>.
This selection brings up the <filename>External Tools Configurations</filename>
Dialog.</para></listitem>
<listitem><para>Go to the left navigation area and expand <filename>Program</filename>. <listitem><para>Go to the left navigation area and expand <filename>Program</filename>.
You should find the image listed. You should find the image listed.
For example, <filename>qemu-x86_64-poky-linux</filename>.</para></listitem> For example, <filename>qemu-x86_64-poky-linux</filename>.</para></listitem>
<listitem><para>Click on the image. <listitem><para>Click on the image.
This brings up a new environment in the main area of the This brings up a new environment in the main area of the
<filename>External Tools Configurations</filename> Dialog. <filename>External Tools Configurations</filename> Dialog.
The Main tab is selected.</para></listitem> The Main tab is selected.</para></listitem>
<listitem><para>Click <filename>Run</filename> next. <listitem><para>Click <filename>Run</filename> next.
This brings up a shell window.</para></listitem> This brings up a shell window.</para></listitem>
<listitem><para>Enter your host root password in the shell window at the prompt. <listitem><para>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 This sets up a <filename>Tap 0</filename> connection needed for running in user-space
NFS mode.</para></listitem> NFS mode.</para></listitem>
<listitem><para>Wait for QEMU to launch.</para></listitem> <listitem><para>Wait for QEMU to launch.</para></listitem>
<listitem><para>Once QEMU launches you need to determine the IP Address <listitem><para>Once QEMU launches you need to determine the IP Address
for the user-space NFS. for the user-space NFS.
You can do that by going to a terminal in the QEMU and entering the You can do that by going to a terminal in the QEMU and entering the
<filename>ipconfig</filename> command.</para></listitem> <filename>ipconfig</filename> command.</para></listitem>
</orderedlist> </orderedlist>
</para> </para>
@ -360,34 +380,35 @@
<section id='deploying-and-debugging-the-application'> <section id='deploying-and-debugging-the-application'>
<title>Deploying and Debugging the Application</title> <title>Deploying and Debugging the Application</title>
<para> <para>
Once QEMU is running, you can deploy your application and use the emulator Once QEMU is running, you can deploy your application and use the emulator
to perform debugging. to perform debugging.
Follow these steps to deploy the application. Follow these steps to deploy the application.
<orderedlist> <orderedlist>
<listitem><para>Select <filename>Run -&gt; Debug Configurations...</filename></para></listitem> <listitem><para>Select <filename>Run -&gt; Debug Configurations...</filename></para></listitem>
<listitem><para>In the left area expand <filename>C/C++Remote Application</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 <listitem><para>Locate your project and select it to bring up a new
tabbed view in the <filename>Debug Configurations</filename> Dialog.</para></listitem> tabbed view in the <filename>Debug Configurations</filename> Dialog.</para></listitem>
<listitem><para>Enter the absolute path into which you want to deploy <listitem><para>Enter the absolute path into which you want to deploy
the application. the application.
Use the <filename>Remote Absolute File Path</filename> for <filename>C/C++Application:</filename>. Use the <filename>Remote Absolute File Path</filename> for <filename>C/C++Application:</filename>.
For example, enter <filename>/usr/bin/&lt;programname&gt;</filename>.</para></listitem> For example, enter <filename>/usr/bin/&lt;programname&gt;</filename>.</para></listitem>
<listitem><para>Click on the <filename>Debugger</filename> tab to see the cross-tool debugger <listitem><para>Click on the <filename>Debugger</filename> tab to see the cross-tool debugger
you are using.</para></listitem> you are using.</para></listitem>
<listitem><para>Create a new connection to the QEMU instance <listitem><para>Create a new connection to the QEMU instance
by clicking on <filename>new</filename>.</para></listitem> by clicking on <filename>new</filename>.</para></listitem>
<listitem><para>Select <filename>TCF</filename>, which means Target Communication <listitem><para>Select <filename>TCF</filename>, which means Target Communication
Framework.</para></listitem> Framework.</para></listitem>
<listitem><para>Click <filename>Next</filename>.</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 <listitem><para>Clear out the <filename>host name</filename> field and enter the IP Address
determined earlier.</para></listitem> determined earlier.</para></listitem>
<listitem><para>Click <filename>Finish</filename> to close the new connections <listitem><para>Click <filename>Finish</filename> to close the new connections
Dialog.</para></listitem> Dialog.</para></listitem>
<listitem><para>Use the drop-down menu now in the <filename>Connection</filename> field and pick <listitem><para>Use the drop-down menu now in the <filename>Connection</filename> field and pick
the IP Address you entered.</para></listitem> the IP Address you entered.</para></listitem>
<listitem><para>Click <filename>Debug</filename> to bring up a login screen <listitem><para>Click <filename>Debug</filename> to bring up a login screen
and login.</para></listitem> and login.</para></listitem>
<listitem><para>Accept the debug perspective.</para></listitem> <listitem><para>Accept the debug perspective.</para></listitem>
</orderedlist> </orderedlist>
</para> </para>
@ -395,64 +416,68 @@
<section id='running-user-space-tools'> <section id='running-user-space-tools'>
<title>Running User-Space Tools</title> <title>Running User-Space Tools</title>
<para> <para>
As mentioned earlier in the manual several tools exist that enhance As mentioned earlier in the manual, several tools exist that enhance
your development experience. your development experience.
These tools are aids in developing and debugging applications and images. These tools are aids in developing and debugging applications and images.
You can run these user-space tools from within the Yocto Eclipse You can run these user-space tools from within the Eclipse IDE through the
Plug-in through the <filename>Window -&gt; YoctoTools</filename> menu. <filename>Window -&gt; YoctoTools</filename> menu.
</para> </para>
<para> <para>
Once you pick a tool, you need to configure it for the remote target. Once you pick a tool, you need to configure it for the remote target.
Every tool needs to have the connection configured. Every tool needs to have the connection configured.
You must select an existing TCF-based RSE connection to the remote target. 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. If one does not exist, click <filename>New</filename> to create one.
</para> </para>
<para> <para>
Here are some specifics about the remote tools: Here are some specifics about the remote tools:
<itemizedlist> <itemizedlist>
<listitem><para><emphasis><filename>OProfile</filename>:</emphasis> Selecting this tool causes <listitem><para><emphasis><filename>OProfile</filename>:</emphasis> Selecting this tool causes
the <filename>oprofile-server</filename> on the remote target to launch on the <filename>oprofile-server</filename> on the remote target to launch on
the local host machine. the local host machine.
The <filename>oprofile-viewer</filename> must be installed on the local host machine and the 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, <filename>oprofile-server</filename> must be installed on the remote target,
respectively, in order to use. respectively, in order to use.
You must compile and install the <filename>oprofile-viewer</filename> from the source code You must compile and install the <filename>oprofile-viewer</filename> from the source code
on your local host machine. on your local host machine.
Furthermore, in order to convert the target's sample format data into a form that the Furthermore, in order to convert the target's sample format data into a form that the
host can use, you must have <filename>oprofile-viewer</filename> version 0.9.4 or host can use, you must have <filename>oprofile</filename> version 0.9.4 or
greater installed on the host. greater installed on the host.</para>
The <filename>oprofile-server</filename> is installed by default in the image.</para> <para>You can locate both the viewer and server from
<para>You can locate both the viewer and server from <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/oprofileui/'></ulink>.
<ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/oprofileui/'></ulink>.</para></listitem> <note>The <filename>oprofile-server</filename> is installed by default on
<listitem><para><emphasis><filename>Lttng-ust</filename>:</emphasis> Selecting this tool runs the <filename>core-image-sato-sdk</filename> image.</note></para></listitem>
<filename>usttrace</filename> on the remote target, transfers the output data back to the <listitem><para><emphasis><filename>Lttng-ust</filename>:</emphasis> Selecting this tool runs
local host machine and uses <filename>lttv-gui</filename> to graphically display the output. <filename>usttrace</filename> on the remote target, transfers the output data back to the
The <filename>lttv-gui</filename> must be installed on the local host machine to use this tool. local host machine, and uses <filename>lttv-gui</filename> to graphically display the output.
For information on how to use <filename>lttng</filename> to trace an application, see The <filename>lttv-gui</filename> must be installed on the local host machine to use this tool.
<ulink url='http://lttng.org/files/ust/manual/ust.html'></ulink>.</para> For information on how to use <filename>lttng</filename> to trace an application, see
<para>For <filename>Application</filename>, you must supply the absolute path name of the <ulink url='http://lttng.org/files/ust/manual/ust.html'></ulink>.</para>
application to be traced by user mode <filename>lttng</filename>. <para>For <filename>Application</filename>, you must supply the absolute path name of the
For example, typing <filename>/path/to/foo</filename> triggers application to be traced by user mode <filename>lttng</filename>.
<filename>usttrace /path/to/foo</filename> on the remote target to trace the For example, typing <filename>/path/to/foo</filename> triggers
program <filename>/path/to/foo</filename>.</para> <filename>usttrace /path/to/foo</filename> on the remote target to trace the
<para><filename>Argument</filename> is passed to <filename>usttrace</filename> program <filename>/path/to/foo</filename>.</para>
running on the remote target.</para></listitem> <para><filename>Argument</filename> is passed to <filename>usttrace</filename>
<listitem><para><emphasis><filename>PowerTOP</filename>:</emphasis> Selecting this tool runs running on the remote target.</para></listitem>
<filename>powertop</filename> on the remote target machine and displays the results in a <listitem><para><emphasis><filename>PowerTOP</filename>:</emphasis> Selecting this tool runs
new view called <filename>powertop</filename>.</para> <filename>powertop</filename> on the remote target machine and displays the results in a
<para><filename>Time to gather data(sec):</filename> is the time passed in seconds before data new view called <filename>powertop</filename>.</para>
is gathered from the remote target for analysis.</para> <para><filename>Time to gather data(sec):</filename> is the time passed in seconds before data
<para><filename>show pids in wakeups list:</filename> corresponds to the is gathered from the remote target for analysis.</para>
<filename>-p</filename> argument <para><filename>show pids in wakeups list:</filename> corresponds to the
passed to <filename>powertop</filename>.</para></listitem> <filename>-p</filename> argument
<listitem><para><emphasis><filename>LatencyTOP and Perf</filename>:</emphasis> passed to <filename>powertop</filename>.</para></listitem>
<filename>latencytop</filename> identifies system latency, while <listitem><para><emphasis><filename>LatencyTOP and Perf</filename>:</emphasis>
<filename>perf</filename> monitors the system's <filename>latencytop</filename> identifies system latency, while
performance counter registers. <filename>perf</filename> monitors the system's
Selecting either of these tools causes an RSE terminal view to appear performance counter registers.
from which you can run the tools. Selecting either of these tools causes an RSE terminal view to appear
Both tools refresh the entire screen to display results while they run.</para></listitem> from which you can run the tools.
Both tools refresh the entire screen to display results while they run.</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
</section> </section>