documentation/pokt-ref-manual: Update with Yocto branding
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
parent
00e061b564
commit
4999f78874
|
@ -23,7 +23,7 @@ html:
|
||||||
xsltproc $(XSLTOPTS) -o bsp-guide.html $(XSL_XHTML_URI) bsp-guide.xml
|
xsltproc $(XSLTOPTS) -o bsp-guide.html $(XSL_XHTML_URI) bsp-guide.xml
|
||||||
|
|
||||||
tarball: html
|
tarball: html
|
||||||
tar -cvzf poky-ref-manual.tgz poky-ref-manual.html style.css screenshots/ss-sato.png poky-beaver.png poky-ref-manual.png
|
tar -cvzf poky-ref-manual.tgz poky-ref-manual.html style.css figures/yocto-project-transp.png
|
||||||
|
|
||||||
validate:
|
validate:
|
||||||
xmllint --postvalid --xinclude --noout poky-ref-manual.xml
|
xmllint --postvalid --xinclude --noout poky-ref-manual.xml
|
||||||
|
|
|
@ -41,181 +41,253 @@
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id="platdev-appdev-external-anjuta">
|
<section id="using-the-eclipse-and-anjuta-plug-ins">
|
||||||
<title>Developing externally using the Anjuta plugin</title>
|
<title>Using the Eclipse and Anjuta Plug-ins</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
An Anjuta IDE plugin exists to make developing software within the Poky framework
|
Yocto Project supports both Anjuta and Eclipse IDE plug-ins to make developing software
|
||||||
easier for the application developer. It presents a graphical IDE from which the
|
easier for the application developer. The plug-ins provide capability
|
||||||
developer can cross compile an application then deploy and execute the output in a QEMU
|
extensions to the graphical IDE allowing for cross compilation,
|
||||||
emulation session. It also supports cross debugging and profiling.
|
deployment and execution of the output in a QEMU emulation session.
|
||||||
</para>
|
Support of these plug-ins also supports cross debugging and
|
||||||
<!-- DISBALED, TOO BIG!
|
profiling. Additionally, the Eclipse plug-in provides a suite of tools
|
||||||
<screenshot>
|
that allows the developer to perform remote profiling, tracing, collection of
|
||||||
<mediaobject>
|
power data, collection of latency data and collection of performance data.
|
||||||
<imageobject>
|
|
||||||
<imagedata fileref="screenshots/ss-anjuta-poky-1.png" format="PNG"/>
|
|
||||||
</imageobject>
|
|
||||||
<caption>
|
|
||||||
<para>The Anjuta Poky SDK plugin showing an active QEMU session running Sato</para>
|
|
||||||
</caption>
|
|
||||||
</mediaobject>
|
|
||||||
</screenshot>
|
|
||||||
-->
|
|
||||||
<para>
|
|
||||||
To use the plugin, a toolchain and SDK built by Poky is required along with Anjuta it's development
|
|
||||||
headers and the Anjuta plugin. The Poky Anjuta plugin is available to download as a tarball at the
|
|
||||||
<ulink url='http://labs.o-hand.com/anjuta-poky-sdk-plugin/'>OpenedHand labs</ulink> page or
|
|
||||||
directly from the Poky Git repository located at git://git.pokylinux.org/anjuta-poky; a web interface
|
|
||||||
to the repository can be accessed at <ulink url='http://git.pokylinux.org/?p=anjuta-poky.git;a=summary'/>.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
See the README file contained in the project for more information on dependencies and building
|
|
||||||
the plugin. If you want to disable remote gdb debugging, please pass --diable-gdb-integration
|
|
||||||
switch when doing configure.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<section id="platdev-appdev-external-anjuta-setup">
|
<section id="the-eclipse-plug-in">
|
||||||
<title>Setting up the Anjuta plugin</title>
|
<title>The Eclipse Plug-in</title>
|
||||||
|
<para>
|
||||||
<para>Extract the tarball for the toolchain into / as root. The
|
To use the Eclipse plug-in, a toolchain and SDK built by Poky is required along with
|
||||||
toolchain will be installed into
|
the Eclipse Framework (Helios 3.6).
|
||||||
<filename class="directory">/opt/poky</filename>.</para>
|
To install the plug-in you need to be in the Eclipse IDE and select
|
||||||
|
the following menu:
|
||||||
<para>To use the plugin, first open or create an existing
|
<literallayout class='monospaced'>
|
||||||
project. If creating a new project the "C GTK+" project type
|
Help -> Install New Software
|
||||||
will allow itself to be cross-compiled. However you should be
|
</literallayout>
|
||||||
aware that this uses glade for the UI.</para>
|
Specify the target URL as http://yocto./download (real link needed).
|
||||||
|
</para>
|
||||||
<para>To activate the plugin go to
|
<para>
|
||||||
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>,
|
If you want to download the source code for the plug-in you can find it in the Poky
|
||||||
then choose <guilabel>General</guilabel> from the left hand side. Choose the
|
git repository, which has a web interface, and is located at
|
||||||
Installed plugins tab, scroll down to <guilabel>Poky
|
<ulink url="http://git.pokylinux.org/cgit.cgi/eclipse-poky"></ulink>.
|
||||||
SDK</guilabel> and check the
|
</para>
|
||||||
box. The plugin is now activated but first it must be
|
|
||||||
configured.</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id="platdev-appdev-external-anjuta-configuration">
|
|
||||||
<title>Configuring the Anjuta plugin</title>
|
|
||||||
|
|
||||||
<para>The configuration options for the SDK can be found by choosing
|
|
||||||
the <guilabel>Poky SDK</guilabel> icon from the left hand side. The following options
|
|
||||||
need to be set:</para>
|
|
||||||
|
|
||||||
|
<section id="installing-and-setting-up-the-eclipse-ide">
|
||||||
|
<title>Installing and Setting up the Eclipse IDE</title>
|
||||||
|
<para>
|
||||||
|
If you don't have the Eclipse IDE (Helios 3.6) on your system you need to
|
||||||
|
download and install it from <ulink url="http://www.eclipse.org/downloads"></ulink>.
|
||||||
|
Choose the Eclipse Classic, which contains the Eclipse Platform, Java Development
|
||||||
|
Tools (JDT), and the Plug-in Development Environment.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
NOTE: Due to the Java Virtual Machine's garbage collection (GC) process the
|
||||||
|
permanent generation space (PermGen) is not cleaned up. This space is used
|
||||||
|
to store meta-data descriptions of classes. The default value is set too small
|
||||||
|
and it could trigger an out of memory error like the following:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
Java.lang.OutOfMemoryError: PermGen space
|
||||||
|
</literallayout>
|
||||||
|
This error causes the applications to hang.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
To fix this issue you can use the <command>-vmargs</command>
|
||||||
|
option when you start Eclipse to increase the size of the permenant generation space:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
Eclipse -vmargs -XX:PermSize=256M
|
||||||
|
</literallayout>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The Eclipse plug-in depends several Eclipse projects plug-ins:
|
||||||
|
Eclipse C/C++ Development Tools (CDT), Autotools support for CDT (Incubation) and Target
|
||||||
|
Management (RSE).
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
After installing Eclipse and bringing up the IDE for the first
|
||||||
|
time you need to be sure the following four sites are available by adding them.
|
||||||
|
</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
<listitem>CDT - http://download.eclipse.org/tools/cdt/releases/helios</listitem>
|
||||||
<listitem><para><guilabel>SDK root</guilabel>: If we use external toolchain, we need to set SDK root.
|
<listitem>Helios - http://download.eclipse.org/releases/helios</listitem>
|
||||||
this is the root directory of the SDK's sysroot. For an i586 SDK this will be <filename
|
<listitem>Target Management
|
||||||
class="directory">/opt/poky/</filename>.
|
3.2 Updates - http://download.eclipse.org/dsdp/tm/updates/3.2</listitem>
|
||||||
This directory will contain directories named like "bin",
|
<listitem>The Eclipse Project Updates -
|
||||||
"include", "var", etc. under your selected target architecture subdirectory<filename class="directory">
|
http://download.eclipse.org/eclipse/updates/3.6</listitem>
|
||||||
/opt/poky/sysroot/i586-poky-linux/</filename>. Needed cross compile tools are under
|
|
||||||
<filename class ="directory">/opt/poky/sysroot/i586-pokysdk-linux/</filename>
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para><guilabel>Poky root</guilabel>: If we have local poky build tree, we need to set the Poky root.
|
|
||||||
this is the root directory of the poky build tree, if you build your i586 target architecture
|
|
||||||
under the subdirectory of build_x86 within your poky tree, the Poky root directory should be
|
|
||||||
<filename class="directory">${Poky_tree}/build_x86/</filename>.
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para><guilabel>Target Architecture</guilabel>: this is the cross compile
|
|
||||||
triplet, e.g. "i586-poky-linux". This target triplet is the prefix extracted from
|
|
||||||
the set up script file name. For examle, "i586-poky-linux" is extracted from set up script file
|
|
||||||
<filename>/opt/poky/environment-setup-i586-poky-linux</filename>
|
|
||||||
</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para><guilabel>Kernel</guilabel>: use the file chooser to select the kernel
|
|
||||||
to use with QEMU</para></listitem>
|
|
||||||
|
|
||||||
<listitem><para><guilabel>Root filesystem</guilabel>: use the file chooser to select
|
|
||||||
the root filesystem directory, this is the directory where you use "poky-extract-sdk" command to
|
|
||||||
extract the poky-image-sdk tarball.</para></listitem>
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
<!-- DISBALED, TOO BIG!
|
<para>
|
||||||
<screenshot>
|
Once these sites are available do the following:
|
||||||
<mediaobject>
|
<itemizedlist>
|
||||||
<imageobject>
|
<listitem>Use the "Work with:" drop down list and
|
||||||
<imagedata fileref="screenshots/ss-anjuta-poky-2.png" format="PNG"/>
|
select "All Available Sites--"</listitem>
|
||||||
</imageobject>
|
<listitem><emphasis>For CDT and Autotools support:</emphasis> Expand the
|
||||||
<caption>
|
"Programming Languages" list and select "Autotools support for CDT
|
||||||
<para>Anjuta Preferences Dialog</para>
|
(Incubation)" and "C/C++ Development Tools". Click "Next" and complete
|
||||||
</caption>
|
the update.</listitem>
|
||||||
</mediaobject>
|
<listitem><emphasis>For RSE support:</emphasis> Select "TM and
|
||||||
</screenshot>
|
RSE Main Features". Click "Next" and complete the update.</listitem>
|
||||||
-->
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id="platdev-appdev-external-anjuta-usage">
|
<section id="installing-the-yocto-plug-in">
|
||||||
<title>Using the Anjuta plugin</title>
|
<title>Installing the Yocto Plug-in</title>
|
||||||
|
<para>
|
||||||
|
Once you have the Eclipse IDE installed and configure you need to install the
|
||||||
|
Yocto plug-in. You do this similar to installing the Eclipse plug-ins in the
|
||||||
|
previous section.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Do the following to install the Yocto plug-in into the Eclipse IDE:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>Select the "Help -> Install New Software" item.</listitem>
|
||||||
|
<listitem>In the "Work with:" area click "Add..." and enter the URL for
|
||||||
|
the Yocto plug-in (we need to supply this URL).</listitem>
|
||||||
|
<listitem>Finish out the installation of the update similar to any other
|
||||||
|
Eclipse plug-in.</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
<para>As an example, cross-compiling a project, deploying it into
|
<section id="configuring-yocto-eclipse-plug-in">
|
||||||
QEMU and running a debugger against it and then doing a system
|
<title>Configuring Yocto Eclipse plug-in</title>
|
||||||
wide profile.</para>
|
<para>
|
||||||
|
To configure the Yocto Eclipse plug-in you need to select the mode and then the
|
||||||
|
architecture with which you will be working. Start by selecting "Preferences"
|
||||||
|
from the "Window" menu and then selecting "Yocto SDK".
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If you normally will use an installed Yocto
|
||||||
|
SDK (under /opt/poky) select “SDK Root Mode”. Otherwise, if your crosstool chain
|
||||||
|
and sysroot are within your poky tree, select “Poky Tree Mode”.
|
||||||
|
If you are in SDK Root Mode you will need to provide your poky tree path, for
|
||||||
|
example, $<Poky_tree>/build/.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Now you need to select the architecture.
|
||||||
|
Use the drop down list and select the architecture that you’ll be primarily
|
||||||
|
working against.
|
||||||
|
For target option, select your typical target QEMU vs External HW. If you
|
||||||
|
choose QEMU, you’ll need to specify your QEMU kernel file with full path and the
|
||||||
|
rootfs mount point. Yocto QEMU boots off user mode NFS, Please refer to QEMU
|
||||||
|
section for how to set it up. (Section TBD)
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Save all your settings and they become your defaults for every new Yocto project
|
||||||
|
created using the Eclipse IDE.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
<para>Choose <menuchoice><guimenu>Build</guimenu><guimenuitem>Run
|
<section id="using-the-yocto-eclipse-plug-in">
|
||||||
Configure</guimenuitem></menuchoice> or
|
<title>Using the Yocto Eclipse Plug-in</title>
|
||||||
<menuchoice><guimenu>Build</guimenu><guimenuitem>Run
|
<para>
|
||||||
Autogenerate</guimenuitem></menuchoice> to run "configure"
|
As an example, this section shows you how to cross-compile a Yocto C autotools
|
||||||
(or to run "autogen") for the project. This passes command line
|
based project, deploy it into QEMU, and then run the debugger against it.
|
||||||
arguments to instruct it to cross-compile.</para>
|
You need to configure the project, trigger <command> autogen.sh</command>, build
|
||||||
|
the image, start QEMU, and then debug.
|
||||||
|
</para>
|
||||||
|
<orderedlist>
|
||||||
|
<listitem>Creating a Yocto Autotools Based Project Using a Template:
|
||||||
|
Get to the Wizard selection by selecting the File -> New -> Project
|
||||||
|
menu. Expand "C/C++" and select "C Project". Click "Next" and select a template
|
||||||
|
to start with, for example "Hello World ANSI C Project". Complete the steps
|
||||||
|
to create a new Yocto autotools based project using this template.</listitem>
|
||||||
|
<listitem>Specify Specific Toolchain Configurations: By default the project
|
||||||
|
uses the Yocto preferences settings as defined using the procedure in
|
||||||
|
<link linkend="configuring-yocto-eclipse-plug-in"> the previous section</link>.
|
||||||
|
If there are any specific setup requirements for the newly created project
|
||||||
|
you need to reconfigure the Yocto plug-in through the menu selection
|
||||||
|
Project -> Invoke Yocto Tools -> Reconfigure Yocto. Use this dialogue
|
||||||
|
to specify specific toolchain and QEMU setups for the project.</listitem>
|
||||||
|
<listitem>Building the Project: Trigger <command>autogen.sh</command> through
|
||||||
|
Project -> Reconfigure Project. Then build the project using
|
||||||
|
Project -> Build.</listitem>
|
||||||
|
<listitem>Starting QEMU: Use the Run -> External Tools menu and see if there is
|
||||||
|
a QEMU instance for the desired target. If there is click on the instance
|
||||||
|
to start QEMU. If your target is not there then click "External Tools
|
||||||
|
Configuration". You should find an instance of QEMU for your architecture
|
||||||
|
under the entry under "Program". After the boot completes you are ready to
|
||||||
|
deploy the image into QEMU.</listitem>
|
||||||
|
<listitem>Debugging: To bring up your remote debugging configuration in the
|
||||||
|
right-hand window highlight your project in “Project Explorer”, select
|
||||||
|
the Run -> Debug Configurations menu item and expand “C/C++ Remote Application”.
|
||||||
|
Next, select projectname_ gdb_target-poky-linux.
|
||||||
|
You need to be sure that there is an
|
||||||
|
entry for the remote target you want to deploy and cross debug with. If there
|
||||||
|
is no entry then click "New..." to bring up the wizard. Using the wizard
|
||||||
|
select TCF and enter the IP address of you remote target in the
|
||||||
|
“Host name:” field. Back in the remote debug configure window,
|
||||||
|
you need to specify the absolute path for the program on the remote target
|
||||||
|
in the “Remote Absolute File Path for C/C++ Application” field. By default,
|
||||||
|
the program deploys into the remote target. If you don't want this then check
|
||||||
|
“Skip download to target path”. Finally, click "Debug” to start the remote
|
||||||
|
debugging session.</listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</section>
|
||||||
|
|
||||||
<para>Next do
|
<section id="using-yocto-eclipse-plug-in-remote-tools-suite">
|
||||||
<menuchoice><guimenu>Build</guimenu><guimenuitem>Build
|
<title>Using Yocto Eclipse plug-in Remote Tools Suite</title>
|
||||||
Project</guimenuitem></menuchoice> to build and compile the
|
<para>
|
||||||
project. If you have previously built the project in the same
|
Remote tools let you do things like perform system profiling, kernel tracing,
|
||||||
tree without using the cross-compiler you may find that your
|
examine power consumption, and so forth. To see and access the remote tools use the
|
||||||
project fails to link. Simply do
|
Window -> YoctoTools menu.
|
||||||
<menuchoice><guimenu>Build</guimenu><guimenuitem>Clean
|
</para>
|
||||||
Project</guimenuitem></menuchoice> to remove the old
|
<para>
|
||||||
binaries. You may then try building again.</para>
|
Once you pick a tool you need to configure it for the remote target. Every tool
|
||||||
|
needs to have the connection configured. You have to select an existing TCF-based
|
||||||
<para>Next start QEMU by using
|
RSE connection to the remote target. If one does not exist you need to create one
|
||||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Start
|
by clicking "New"
|
||||||
QEMU</guimenuitem></menuchoice>, this will start QEMU and
|
</para>
|
||||||
will show any error messages in the message view. Once Poky has
|
<para>
|
||||||
fully booted within QEMU you may now deploy into it.</para>
|
Here are some specifics about the remote tools:
|
||||||
|
<itemizedlist>
|
||||||
<para>Once built and QEMU is running, choose
|
<listitem>Oprofile: Selecting this tool causes the oprofile-server on the remote
|
||||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Deploy</guimenuitem></menuchoice>,
|
target to launch on the local host machine. To use the oprofile the oprofile-viewer
|
||||||
this will install the package into a temporary directory and
|
must be installed on the local host machine and the oprofile-server must be
|
||||||
then copy using rsync over SSH into the target. Progress and
|
installed on the remote target.</listitem>
|
||||||
messages will be shown in the message view.</para>
|
<listitem>lttng: Selecting this tool runs ustrace on the remote target, transfers
|
||||||
|
the output data back to the local host machine and uses lttv-gui to graphically
|
||||||
<para>To debug a program installed into onto the target choose
|
display the output. To use this tool the lttv-gui must be installed on the
|
||||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Debug
|
local host machine. See <ulink url="http://lttng.org/files/ust/manual/ust.html">
|
||||||
remote</guimenuitem></menuchoice>. This prompts for the
|
</ulink> for information on how to use <command>lttng</command> to trace an
|
||||||
local binary to debug and also the command line to run on the
|
application.
|
||||||
target. The command line to run should include the full path to
|
<para>
|
||||||
the to binary installed in the target. This will start a
|
For "Application" you must supply the absolute path name to the application to
|
||||||
gdbserver over SSH on the target and also an instance of a
|
be traced by user mode lttng. For example, typing <command>/path/to/foo"
|
||||||
cross-gdb in a local terminal. This will be preloaded to connect
|
</command> triggers <command>usttrace /path/to/foo</command> on the
|
||||||
to the server and use the <guilabel>SDK root</guilabel> to find
|
remote target to trace the program <command>/path/to/foo</command>.
|
||||||
symbols. This gdb will connect to the target and load in
|
</para>
|
||||||
various libraries and the target program. You should setup any
|
<para>
|
||||||
breakpoints or watchpoints now since you might not be able to
|
"Argument" is passed to "usttrace" running on the remote target.
|
||||||
interrupt the execution later. You may stop
|
</para>
|
||||||
the debugger on the target using
|
</listitem>
|
||||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Stop
|
<listitem>powertop: Selecting this tool runs <command>powertop</command> on the
|
||||||
debugger</guimenuitem></menuchoice>.</para>
|
remote target machine and displays the result in a new view called "powertop".
|
||||||
|
<para>
|
||||||
<para>It is also possible to execute a command in the target over
|
"Time to gather data(sec):" is the time passed in seconds before data is
|
||||||
SSH, the appropriate environment will be be set for the
|
gathered from the remote target for analysis.
|
||||||
execution. Choose
|
</para>
|
||||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Run
|
<para>
|
||||||
remote</guimenuitem></menuchoice> to do this. This will open
|
"show pids in wakeups list:" corresponds to the <command>-p</command>
|
||||||
a terminal with the SSH command inside.</para>
|
argument passed to <command>powertop</command>
|
||||||
|
</para>
|
||||||
<para>To do a system wide profile against the system running in
|
</listitem>
|
||||||
QEMU choose
|
<listitem>latencytop and perf: The <command>latencytop</command> identifies
|
||||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Profile
|
system latency, while <command>perf</command> monitors the system's performance
|
||||||
remote</guimenuitem></menuchoice>. This will start up
|
counter registers. Selecting either of these tools causes an RSE
|
||||||
OProfileUI with the appropriate parameters to connect to the
|
terminal view to appear in which you can run the tools. Both tools refresh the
|
||||||
server running inside QEMU and will also supply the path to the
|
entire screen to display results while they run.</listitem>
|
||||||
debug information necessary to get a useful profile.</para>
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="external-development-using-the-anjuta-plug-in">
|
||||||
|
<title>External Development Using the Anjuta Plug-in</title>
|
||||||
|
<para>
|
||||||
|
(Note: We will stop Anjuta plug-in support after Yocto project 0.9 release. Its source
|
||||||
|
code can be downloaded from git respository listed below, and free for the community to
|
||||||
|
continue supporting it moving forward.)
|
||||||
|
</para>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 8.4 KiB |
|
@ -4,43 +4,39 @@
|
||||||
<chapter id='intro'>
|
<chapter id='intro'>
|
||||||
<title>Introduction</title>
|
<title>Introduction</title>
|
||||||
|
|
||||||
<section id='intro-what-is'>
|
<section id='intro-welcome'>
|
||||||
|
<title>Welcome to Poky!</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Poky is the the build tool in Yocto Project.
|
||||||
|
It is at the heart of Yocto Project.
|
||||||
|
You use Poky within Yocto Project to build the images (kernel software) for targeted hardware.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Before jumping into Poky you should have an understanding of Yokto Project.
|
||||||
|
Be sure you are familiar with the information in the Yocto Project Quick Start.
|
||||||
|
You can find this documentation on the public <ulink rul='http://yoctoproject.org/'>Yocto Project Website</ulink>.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
<title>What is Poky?</title>
|
<title>What is Poky?</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
Poky provides an open source Linux, X11, Matchbox, GTK+, Pimlico, Clutter, and other <ulink url='http://gnome.org/mobile'>GNOME Mobile</ulink> technologies based full platform build tool within Yocto Project.
|
||||||
Poky is an open source platform build tool. It is a complete
|
It creates a focused, stable, subset of OpenEmbedded that can be easily and reliably built and developed upon.
|
||||||
software development environment for the creation of Linux
|
Poky fully supports a wide range of x86 ARM, MIPS and PowerPC hardware and device virtulisation.
|
||||||
devices. It aids the design, development, building, debugging,
|
|
||||||
simulation and testing of complete modern software stacks
|
|
||||||
using Linux, the X Window System and GNOME Mobile
|
|
||||||
based application frameworks. It is based on <ulink
|
|
||||||
url='http://openembedded.org/'>OpenEmbedded</ulink> but has
|
|
||||||
been customised with a particular focus.
|
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para> Poky was setup to:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Provide an open source Linux, X11, Matchbox, GTK+, Pimlico, Clutter, and other <ulink url='http://gnome.org/mobile'>GNOME Mobile</ulink> technologies based full platform build and development tool.</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>Create a focused, stable, subset of OpenEmbedded that can be easily and reliably built and developed upon.</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>Fully support a wide range of x86, ARM, MIPS, PowerPC hardware and device virtulisation</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Poky is primarily a platform builder which generates filesystem images
|
Poky is primarily a platform builder which generates filesystem images
|
||||||
based on open source software such as the Kdrive X server, the Matchbox
|
based on open source software such as the Kdrive X server, the Matchbox
|
||||||
window manager, the GTK+ toolkit and the D-Bus message bus system. Images
|
window manager, the GTK+ toolkit and the D-Bus message bus system. Images
|
||||||
for many kinds of devices can be generated, however the standard example
|
for many kinds of devices can be generated, however the standard example
|
||||||
machines target QEMU full system emulation(x86, ARM, MIPS and PowerPC) and the ARM based
|
machines target QEMU full system emulation(x86, ARM, MIPS and PowerPC) and
|
||||||
Sharp Zaurus series of devices. Poky's ability to boot inside a QEMU
|
real reference boards for each of these architectures.
|
||||||
|
Poky's ability to boot inside a QEMU
|
||||||
emulator makes it particularly suitable as a test platform for development
|
emulator makes it particularly suitable as a test platform for development
|
||||||
of embedded software.
|
of embedded software.
|
||||||
</para>
|
</para>
|
||||||
|
@ -76,222 +72,32 @@
|
||||||
|
|
||||||
<section id='intro-manualoverview'>
|
<section id='intro-manualoverview'>
|
||||||
<title>Documentation Overview</title>
|
<title>Documentation Overview</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The handbook is split into sections covering different aspects of Poky.
|
The Poky User Guide is split into sections covering different aspects of Poky.
|
||||||
The <link linkend='usingpoky'>'Using Poky' section</link> gives an overview
|
The <link linkend='usingpoky'>'Using Poky' section</link> gives an overview of the components that make up Poky followed by information about using Poky and debugging images created in Yocto Project.
|
||||||
of the components that make up Poky followed by information about using and
|
The <link linkend='extendpoky'>'Extending Poky' section</link> gives information about how to extend and customise Poky along with advice on how to manage these changes.
|
||||||
debugging the Poky build system. The <link linkend='extendpoky'>'Extending Poky' section</link>
|
The <link linkend='platdev'>'Platform Development with Poky' section</link> gives information about interaction between Poky and target hardware for common platform development tasks such as software development, debugging and profiling.
|
||||||
gives information about how to extend and customise Poky along with advice
|
The rest of the manual consists of several reference sections each giving details on a specific section of Poky functionality.
|
||||||
on how to manage these changes.
|
|
||||||
The <link linkend='bsp'>'Board Support Packages (BSP) - Developers Guide' section</link>
|
|
||||||
gives information about how to develop BSP such as the common layout, the
|
|
||||||
software hardware configuration options etc.
|
|
||||||
The <link linkend='platdev'>'Platform Development with Poky'
|
|
||||||
section</link> gives information about interaction between Poky and target
|
|
||||||
hardware for common platform development tasks such as software development,
|
|
||||||
debugging and profiling. The rest of the manual
|
|
||||||
consists of several reference sections each giving details on a specific
|
|
||||||
section of Poky functionality.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This manual applies to Poky Release 3.3 (Green).
|
This manual applies to Poky Release 3.3 (Green).
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
<section id='intro-requirements'>
|
<section id='intro-requirements'>
|
||||||
<title>System Requirements</title>
|
<title>System Requirements</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
We recommend Debian-based distributions, in particular a recent Ubuntu
|
We recommend Debian-based distributions, in particular a recent Ubuntu
|
||||||
release (10.04 or newer), as the host system for Poky. Nothing in Poky is
|
release (10.04 or newer), as the host system for Poky. Nothing in Poky is
|
||||||
distribution specific and
|
distribution specific and other distributions will most likely work as long
|
||||||
other distributions will most likely work as long as the appropriate
|
as the appropriate prerequisites are installed - we know of Poky being used
|
||||||
prerequisites are installed - we know of Poky being used successfully on Redhat,
|
successfully on Redhat, SUSE, Gentoo and Slackware host systems.
|
||||||
SUSE, Gentoo and Slackware host systems.
|
For information on what you need to develop images using Yocto Project and Poky
|
||||||
|
you should see the Yocto Project Quick Start on the public
|
||||||
|
<ulink rul='http://yoctoproject.org/'>Yocto Project Website</ulink>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>On a Debian-based system, you need the following packages installed:</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>build-essential</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>python (version 2.6 or later)</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>diffstat</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>texinfo</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>texi2html</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>cvs</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>subversion</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>wget</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>gawk</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>help2man</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>chrpath</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>mercurial</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
<para>Furthermore if you wish to run an emulated Poky image using <ulink url='http://qemu.org'>QEMU</ulink> (as in the quickstart below) you will need the following packages installed:</para>
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>libgl1-mesa-dev</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>libglu1-mesa-dev</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>libsdl1.2-dev</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>bochsbios (only to run qemux86 images)</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Debian users can add debian.o-hand.com to their APT sources (See
|
|
||||||
<ulink url='http://debian.o-hand.com'/>
|
|
||||||
for instructions on doing this) and then run <command>
|
|
||||||
"apt-get install qemu poky-depends poky-scripts"</command> which will
|
|
||||||
automatically install all these dependencies. Virtualisation images with
|
|
||||||
Poky and all dependencies can also easily be built if required.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Poky can use a system provided QEMU or build its own depending on how it's
|
|
||||||
configured. See the options in <filename>local.conf</filename> for more details.
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='intro-quickstart'>
|
|
||||||
<title>Quick Start</title>
|
|
||||||
|
|
||||||
<section id='intro-quickstart-build'>
|
|
||||||
<title>Building and Running an Image</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
If you want to try Poky, you can do so in a few commands. The example below
|
|
||||||
checks out the Poky source code, sets up a build environment, builds an
|
|
||||||
image and then runs that image under the QEMU emulator in x86 system emulation mode:
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
$ wget http://pokylinux.org/releases/poky-green-3.3.tar.bz2
|
|
||||||
$ tar xjvf poky-green-3.3.tar.bz2
|
|
||||||
$ cd green-3.3/
|
|
||||||
$ source poky-init-build-env
|
|
||||||
$ bitbake poky-image-sato
|
|
||||||
$ bitbake qemu-native
|
|
||||||
$ runqemu qemux86
|
|
||||||
</literallayout>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<note>
|
|
||||||
<para>
|
|
||||||
This process will need Internet access, about 20 GB of disk space
|
|
||||||
available, and you should expect the build to take about 4 - 5 hours since
|
|
||||||
it is building an entire Linux system from source including the toolchain!
|
|
||||||
</para>
|
|
||||||
</note>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To build for other machines see the <glossterm><link
|
|
||||||
linkend='var-MACHINE'>MACHINE</link></glossterm> variable in build/conf/local.conf.
|
|
||||||
This file contains other useful configuration information and the default version
|
|
||||||
has examples of common setup needs and is worth
|
|
||||||
reading. To take advantage of multiple processor cores to speed up builds for example, set the
|
|
||||||
<glossterm><link linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link></glossterm>
|
|
||||||
and <glossterm><link linkend='var-PARALLEL_MAKE'>PARALLEL_MAKE</link></glossterm> variables.
|
|
||||||
|
|
||||||
The images/kernels built by Poky are placed in the <filename class="directory">tmp/deploy/images</filename>
|
|
||||||
directory.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
You could also run <command>"poky-qemu zImage-qemuarm.bin poky-image-sato-qemuarm.ext2"
|
|
||||||
</command> within the images directory if you have the poky-scripts Debian package
|
|
||||||
installed from debian.o-hand.com. This allows the QEMU images to be used standalone
|
|
||||||
outside the Poky build environment.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
To setup networking within QEMU see the <link linkend='usingpoky-install-qemu-networking'>
|
|
||||||
QEMU/USB networking with IP masquerading</link> section.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
<section id='intro-quickstart-qemu'>
|
|
||||||
<title>Downloading and Using Prebuilt Images</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Prebuilt images from Poky are also available if you just want to run the system
|
|
||||||
under QEMU. To use these you need to:
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Add debian.o-hand.com to your APT sources (See
|
|
||||||
<ulink url='http://debian.o-hand.com'/> for instructions on doing this)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>Install patched QEMU and poky-scripts:</para>
|
|
||||||
<para>
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
$ apt-get install qemu poky-scripts
|
|
||||||
</literallayout>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Download a Poky QEMU release kernel (*zImage*qemu*.bin) and compressed
|
|
||||||
filesystem image (poky-image-*-qemu*.ext2.bz2) which
|
|
||||||
you'll need to decompress with 'bzip2 -d'. These are available from the
|
|
||||||
<ulink url='http://pokylinux.org/releases/green-3.3/'>last release</ulink>
|
|
||||||
or from the <ulink url='http://autobuilder.pokylinux.org/'>autobuilder</ulink>.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>Start the image:</para>
|
|
||||||
<para>
|
|
||||||
<literallayout class='monospaced'>
|
|
||||||
$ poky-qemu <kernel> <image>
|
|
||||||
</literallayout>
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
|
|
||||||
<note><para>
|
|
||||||
A patched version of QEMU is required at present. A suitable version is available from
|
|
||||||
<ulink url='http://debian.o-hand.com'/>, it can be built
|
|
||||||
by poky (bitbake qemu-native) or can be downloaded/built as part of the toolchain/SDK tarballs.
|
|
||||||
</para></note>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id='intro-getit'>
|
<section id='intro-getit'>
|
||||||
|
|
|
@ -6,17 +6,10 @@
|
||||||
xmlns="http://docbook.org/ns/docbook"
|
xmlns="http://docbook.org/ns/docbook"
|
||||||
>
|
>
|
||||||
<bookinfo>
|
<bookinfo>
|
||||||
|
|
||||||
<mediaobject>
|
|
||||||
<imageobject>
|
|
||||||
<imagedata fileref='poky-ref-manual.png'
|
|
||||||
format='SVG'
|
|
||||||
align='center' scalefit='1' width='100%'/>
|
|
||||||
</imageobject>
|
|
||||||
</mediaobject>
|
|
||||||
|
|
||||||
<title>Poky Reference Manual</title>
|
<title>Poky Reference Manual</title>
|
||||||
<subtitle>A Guide and Reference to Poky</subtitle>
|
<subtitle>A Guide and Reference to Poky
|
||||||
|
<imagedata fileref="figures/yocto-project-transp.png"
|
||||||
|
width="6in" depth="2in" align="center" scale="50" /></subtitle>
|
||||||
|
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
<author>
|
<author>
|
||||||
|
|
|
@ -118,14 +118,13 @@ h6 {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
padding-top: 256px;
|
padding-top: 256px;
|
||||||
background-image: url("poky-beaver.png");
|
background-image: url("white-on-black-50.png");
|
||||||
background-position: right top;
|
background-position: top;
|
||||||
float: right;
|
|
||||||
margin-top: -256px;
|
margin-top: -256px;
|
||||||
padding-right: 50px;
|
padding-right: 50px;
|
||||||
margin-left: 50px;
|
margin-left: 50px;
|
||||||
text-align: right;
|
text-align: center;
|
||||||
width: 200px;
|
width: 600px;
|
||||||
}
|
}
|
||||||
|
|
||||||
h3.author {
|
h3.author {
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 9.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
Loading…
Reference in New Issue