2012-12-11 18:07:58 +00:00
|
|
|
|
<!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; ] >
|
|
|
|
|
|
2015-01-16 17:59:06 +00:00
|
|
|
|
<chapter id='ref-manual-intro'>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<title>Introduction</title>
|
|
|
|
|
|
|
|
|
|
<section id='intro-welcome'>
|
|
|
|
|
<title>Introduction</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
2016-03-21 15:47:26 +00:00
|
|
|
|
This manual provides reference information for the current release
|
|
|
|
|
of the Yocto Project.
|
|
|
|
|
The Yocto Project is an open-source collaboration project focused
|
|
|
|
|
on embedded Linux developers.
|
|
|
|
|
Amongst other things, the Yocto Project uses the OpenEmbedded build
|
|
|
|
|
system, which is based on the Poky project, to construct complete
|
|
|
|
|
Linux images.
|
|
|
|
|
You can find complete introductory and getting started information
|
|
|
|
|
on the Yocto Project by reading the
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
|
2016-03-21 15:47:26 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
For task-based information using the Yocto Project, see the
|
2013-01-25 20:49:29 +00:00
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;'>Yocto Project Development Manual</ulink>
|
|
|
|
|
and the <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>.
|
2013-05-09 11:51:30 +00:00
|
|
|
|
For Board Support Package (BSP) structure information, see the
|
2013-03-26 16:35:59 +00:00
|
|
|
|
<ulink url='&YOCTO_DOCS_BSP_URL;'>Yocto Project Board Support Package (BSP) Developer's Guide</ulink>.
|
2016-03-21 15:47:26 +00:00
|
|
|
|
For information on how to use a Software Development Kit, (SDK), see the
|
|
|
|
|
<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
|
2014-03-28 13:55:28 +00:00
|
|
|
|
You can find information on tracing and profiling in the
|
2015-04-21 20:46:57 +00:00
|
|
|
|
<ulink url='&YOCTO_DOCS_PROF_URL;'>Yocto Project Profiling and Tracing Manual</ulink>.
|
2014-03-28 13:55:28 +00:00
|
|
|
|
For information on BitBake, which is the task execution tool the
|
|
|
|
|
OpenEmbedded build system is based on, see the
|
|
|
|
|
<ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual'>BitBake User Manual</ulink>.
|
|
|
|
|
Finally, you can also find lots of Yocto Project information on the
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<ulink url="&YOCTO_HOME_URL;">Yocto Project website</ulink>.
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section id='intro-manualoverview'>
|
|
|
|
|
<title>Documentation Overview</title>
|
|
|
|
|
<para>
|
|
|
|
|
This reference manual consists of the following:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para><emphasis>
|
2013-05-09 11:51:30 +00:00
|
|
|
|
<link linkend='usingpoky'>Using the Yocto Project</link>:</emphasis>
|
2013-03-26 16:43:08 +00:00
|
|
|
|
Provides an overview of the components that make up the Yocto Project
|
2016-09-01 23:57:45 +00:00
|
|
|
|
followed by information about debugging images created in the Yocto Project.
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</para></listitem>
|
2014-03-28 13:44:15 +00:00
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='closer-look'>A Closer Look at the Yocto Project Development Environment</link>:</emphasis>
|
|
|
|
|
Provides a more detailed look at the Yocto Project development
|
|
|
|
|
environment within the context of development.
|
|
|
|
|
</para></listitem>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='technical-details'>Technical Details</link>:</emphasis>
|
2013-03-26 16:43:08 +00:00
|
|
|
|
Describes fundamental Yocto Project components as well as an explanation
|
2012-12-11 18:07:58 +00:00
|
|
|
|
behind how the Yocto Project uses shared state (sstate) cache to speed build time.
|
|
|
|
|
</para></listitem>
|
2014-03-28 13:44:15 +00:00
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='migration'>Migrating to a Newer Yocto Project Release</link>:</emphasis>
|
|
|
|
|
Describes release-specific information that helps you move from
|
|
|
|
|
one Yocto Project Release to another.
|
|
|
|
|
</para></listitem>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='ref-structure'>Directory Structure</link>:</emphasis>
|
2013-03-26 16:43:08 +00:00
|
|
|
|
Describes the
|
2013-03-26 16:38:22 +00:00
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> created
|
2012-12-11 18:07:58 +00:00
|
|
|
|
either by unpacking a released Yocto Project tarball on your host development system,
|
|
|
|
|
or by cloning the upstream
|
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink> Git repository.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='ref-classes'>Classes</link>:</emphasis>
|
2013-03-26 16:43:08 +00:00
|
|
|
|
Describes the classes used in the Yocto Project.</para></listitem>
|
2014-05-09 07:36:57 +00:00
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='ref-tasks'>Tasks</link>:</emphasis>
|
|
|
|
|
Describes the tasks defined by the OpenEmbedded build system.
|
|
|
|
|
</para></listitem>
|
2016-09-19 20:52:07 +00:00
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='ref-devtool-reference'><filename>devtool</filename> Quick Reference</link>:</emphasis>
|
|
|
|
|
Provides a quick reference for the <filename>devtool</filename>
|
|
|
|
|
command.
|
|
|
|
|
</para></listitem>
|
2014-10-16 18:09:02 +00:00
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='ref-qa-checks'>QA Error and Warning Messages</link>:</emphasis>
|
|
|
|
|
Lists and describes QA warning and error messages.
|
|
|
|
|
</para></listitem>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='ref-images'>Images</link>:</emphasis>
|
2013-03-26 16:43:08 +00:00
|
|
|
|
Describes the standard images that the Yocto Project supports.
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='ref-features'>Features</link>:</emphasis>
|
2013-03-26 16:43:08 +00:00
|
|
|
|
Describes mechanisms for creating distribution, machine, and image
|
2012-12-11 18:07:58 +00:00
|
|
|
|
features during the build process using the OpenEmbedded build system.</para></listitem>
|
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='ref-variables-glos'>Variables Glossary</link>:</emphasis>
|
2013-03-26 16:43:08 +00:00
|
|
|
|
Presents most variables used by the OpenEmbedded build system, which
|
2013-03-26 16:44:37 +00:00
|
|
|
|
uses BitBake.
|
2012-12-11 18:07:58 +00:00
|
|
|
|
Entries describe the function of the variable and how to apply them.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='ref-varlocality'>Variable Context</link>:</emphasis>
|
2013-03-26 16:43:08 +00:00
|
|
|
|
Provides variable locality or context.</para></listitem>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='faq'>FAQ</link>:</emphasis>
|
2013-03-26 16:43:08 +00:00
|
|
|
|
Provides answers for commonly asked questions in the Yocto Project
|
2012-12-11 18:07:58 +00:00
|
|
|
|
development environment.</para></listitem>
|
|
|
|
|
<listitem><para><emphasis>
|
|
|
|
|
<link linkend='resources'>Contributing to the Yocto Project</link>:</emphasis>
|
2013-03-26 16:43:08 +00:00
|
|
|
|
Provides guidance on how you can contribute back to the Yocto
|
2012-12-11 18:07:58 +00:00
|
|
|
|
Project.</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<section id='intro-requirements'>
|
|
|
|
|
<title>System Requirements</title>
|
|
|
|
|
<para>
|
|
|
|
|
For general Yocto Project system requirements, see the
|
2015-05-21 17:12:19 +00:00
|
|
|
|
"<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>" section
|
2012-12-11 18:07:58 +00:00
|
|
|
|
in the Yocto Project Quick Start.
|
|
|
|
|
The remainder of this section provides details on system requirements
|
|
|
|
|
not covered in the Yocto Project Quick Start.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<section id='detailed-supported-distros'>
|
|
|
|
|
<title>Supported Linux Distributions</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
2013-06-18 11:54:54 +00:00
|
|
|
|
Currently, the Yocto Project is supported on the following
|
2013-07-31 04:14:25 +00:00
|
|
|
|
distributions:
|
2013-07-31 04:47:25 +00:00
|
|
|
|
<note>
|
2013-08-02 10:58:47 +00:00
|
|
|
|
<para>
|
|
|
|
|
Yocto Project releases are tested against the stable Linux
|
|
|
|
|
distributions in the following list.
|
|
|
|
|
The Yocto Project should work on other distributions but
|
|
|
|
|
validation is not performed against them.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
In particular, the Yocto Project does not support
|
2013-08-13 12:44:55 +00:00
|
|
|
|
and currently has no plans to support
|
|
|
|
|
rolling-releases or development distributions due to their
|
2013-08-02 10:58:47 +00:00
|
|
|
|
constantly changing nature.
|
|
|
|
|
We welcome patches and bug reports, but keep in mind that
|
|
|
|
|
our priority is on the supported platforms listed below.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
If you encounter problems, please go to
|
|
|
|
|
<ulink url='&YOCTO_BUGZILLA_URL;'>Yocto Project Bugzilla</ulink>
|
|
|
|
|
and submit a bug.
|
|
|
|
|
We are interested in hearing about your experience.
|
|
|
|
|
</para>
|
2013-07-31 04:47:25 +00:00
|
|
|
|
</note>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<itemizedlist>
|
2015-04-01 13:38:43 +00:00
|
|
|
|
<!--
|
|
|
|
|
<listitem><para>Ubuntu 10.04</para></listitem>
|
|
|
|
|
<listitem><para>Ubuntu 11.10</para></listitem>
|
2013-05-10 08:25:03 +00:00
|
|
|
|
<listitem><para>Ubuntu 12.04 (LTS)</para></listitem>
|
2015-04-01 13:38:43 +00:00
|
|
|
|
<listitem><para>Ubuntu 13.10</para></listitem> -->
|
2014-04-21 15:08:03 +00:00
|
|
|
|
<listitem><para>Ubuntu 14.04 (LTS)</para></listitem>
|
2015-04-01 13:38:43 +00:00
|
|
|
|
<listitem><para>Ubuntu 14.10</para></listitem>
|
2015-11-03 16:22:13 +00:00
|
|
|
|
<listitem><para>Ubuntu 15.04</para></listitem>
|
|
|
|
|
<listitem><para>Ubuntu 15.10</para></listitem>
|
2016-11-03 20:21:35 +00:00
|
|
|
|
<listitem><para>Ubuntu 16.04</para></listitem>
|
2013-10-01 16:21:17 +00:00
|
|
|
|
<!-- <listitem><para>Fedora 16 (Verne)</para></listitem>
|
2015-04-01 13:38:43 +00:00
|
|
|
|
<listitem><para>Fedora 17 (Spherical)</para></listitem>
|
2013-10-01 16:21:17 +00:00
|
|
|
|
<listitem><para>Fedora release 19 (Schrödinger's Cat)</para></listitem>
|
2015-04-01 13:38:43 +00:00
|
|
|
|
<listitem><para>Fedora release 20 (Heisenbug)</para></listitem> -->
|
2015-11-03 16:22:13 +00:00
|
|
|
|
<listitem><para>Fedora release 22</para></listitem>
|
2016-11-03 20:21:35 +00:00
|
|
|
|
<listitem><para>Fedora release 23</para></listitem>
|
|
|
|
|
<listitem><para>Fedora release 24</para></listitem>
|
2013-10-01 16:21:17 +00:00
|
|
|
|
<!-- <listitem><para>CentOS release 5.6 (Final)</para></listitem>
|
2013-09-30 20:53:33 +00:00
|
|
|
|
<listitem><para>CentOS release 5.7 (Final)</para></listitem>
|
|
|
|
|
<listitem><para>CentOS release 5.8 (Final)</para></listitem>
|
2016-11-03 20:21:35 +00:00
|
|
|
|
<listitem><para>CentOS release 6.3 (Final)</para></listitem>
|
|
|
|
|
<listitem><para>CentOS release 6.x</para></listitem> -->
|
2015-01-19 15:04:59 +00:00
|
|
|
|
<listitem><para>CentOS release 7.x</para></listitem>
|
2016-11-03 20:21:35 +00:00
|
|
|
|
<!-- <listitem><para>Debian GNU/Linux 6.0 (Squeeze)</para></listitem>
|
|
|
|
|
<listitem><para>Debian GNU/Linux 7.x (Wheezy)</para></listitem> -->
|
2015-04-01 13:38:43 +00:00
|
|
|
|
<listitem><para>Debian GNU/Linux 8.x (Jessie)</para></listitem>
|
2015-01-13 21:00:12 +00:00
|
|
|
|
<!-- <listitem><para>Debian GNU/Linux 7.1 (Wheezy)</para></listitem>
|
2014-04-21 15:08:03 +00:00
|
|
|
|
<listitem><para>Debian GNU/Linux 7.2 (Wheezy)</para></listitem>
|
|
|
|
|
<listitem><para>Debian GNU/Linux 7.3 (Wheezy)</para></listitem>
|
|
|
|
|
<listitem><para>Debian GNU/Linux 7.4 (Wheezy)</para></listitem>
|
2014-10-27 16:13:15 +00:00
|
|
|
|
<listitem><para>Debian GNU/Linux 7.5 (Wheezy)</para></listitem>
|
2015-01-13 21:00:12 +00:00
|
|
|
|
<listitem><para>Debian GNU/Linux 7.6 (Wheezy)</para></listitem> -->
|
2013-10-01 16:21:17 +00:00
|
|
|
|
<!-- <listitem><para>openSUSE 11.4</para></listitem>
|
2015-04-01 13:38:43 +00:00
|
|
|
|
<listitem><para>openSUSE 12.1</para></listitem>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<listitem><para>openSUSE 12.2</para></listitem>
|
2013-04-16 23:45:09 +00:00
|
|
|
|
<listitem><para>openSUSE 12.3</para></listitem>
|
2015-04-01 13:38:43 +00:00
|
|
|
|
<listitem><para>openSUSE 13.1</para></listitem> -->
|
|
|
|
|
<listitem><para>openSUSE 13.2</para></listitem>
|
2016-11-07 17:28:26 +00:00
|
|
|
|
<listitem><para>openSUSE 42.1</para></listitem>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<note>
|
2013-06-18 11:54:54 +00:00
|
|
|
|
While the Yocto Project Team attempts to ensure all Yocto Project
|
|
|
|
|
releases are one hundred percent compatible with each officially
|
|
|
|
|
supported Linux distribution, instances might exist where you
|
|
|
|
|
encounter a problem while using the Yocto Project on a specific
|
|
|
|
|
distribution.
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</note>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section id='required-packages-for-the-host-development-system'>
|
|
|
|
|
<title>Required Packages for the Host Development System</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
The list of packages you need on the host development system can
|
|
|
|
|
be large when covering all build scenarios using the Yocto Project.
|
2013-03-26 16:50:07 +00:00
|
|
|
|
This section provides required packages according to
|
|
|
|
|
Linux distribution and function.
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<section id='ubuntu-packages'>
|
2013-08-09 14:12:10 +00:00
|
|
|
|
<title>Ubuntu and Debian</title>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
The following list shows the required packages by function
|
2013-08-09 14:12:10 +00:00
|
|
|
|
given a supported Ubuntu or Debian Linux distribution:
|
2015-05-21 17:12:19 +00:00
|
|
|
|
<note>
|
|
|
|
|
If your build system has the
|
|
|
|
|
<filename>oss4-dev</filename> package installed, you
|
|
|
|
|
might experience QEMU build failures due to the package
|
|
|
|
|
installing its own custom
|
|
|
|
|
<filename>/usr/include/linux/soundcard.h</filename> on
|
|
|
|
|
the Debian system.
|
|
|
|
|
If you run into this situation, either of the following
|
|
|
|
|
solutions exist:
|
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$ sudo apt-get build-dep qemu
|
|
|
|
|
$ sudo apt-get remove oss4-dev
|
|
|
|
|
</literallayout>
|
|
|
|
|
</note>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para><emphasis>Essentials:</emphasis>
|
|
|
|
|
Packages needed to build an image on a headless
|
|
|
|
|
system:
|
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
|
|
|
|
|
</literallayout></para></listitem>
|
2014-03-25 17:34:01 +00:00
|
|
|
|
<listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
|
|
|
|
|
Packages recommended if the host system has graphics
|
|
|
|
|
support or if you are going to use the Eclipse
|
|
|
|
|
IDE:
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$ sudo apt-get install libsdl1.2-dev xterm
|
|
|
|
|
</literallayout></para></listitem>
|
|
|
|
|
<listitem><para><emphasis>Documentation:</emphasis>
|
|
|
|
|
Packages needed if you are going to build out the
|
|
|
|
|
Yocto Project documentation manuals:
|
|
|
|
|
<literallayout class='monospaced'>
|
2013-05-20 15:10:46 +00:00
|
|
|
|
$ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</literallayout></para></listitem>
|
2015-09-23 15:34:53 +00:00
|
|
|
|
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
|
|
|
|
|
Packages needed if you are going to run
|
|
|
|
|
<filename>oe-selftest</filename>:
|
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$ sudo apt-get install python-git
|
|
|
|
|
</literallayout>
|
|
|
|
|
</para></listitem>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section id='fedora-packages'>
|
|
|
|
|
<title>Fedora Packages</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
The following list shows the required packages by function
|
|
|
|
|
given a supported Fedora Linux distribution:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para><emphasis>Essentials:</emphasis>
|
|
|
|
|
Packages needed to build an image for a headless
|
|
|
|
|
system:
|
|
|
|
|
<literallayout class='monospaced'>
|
2015-09-16 18:09:54 +00:00
|
|
|
|
$ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</literallayout></para></listitem>
|
2014-03-25 17:34:01 +00:00
|
|
|
|
<listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
|
|
|
|
|
Packages recommended if the host system has graphics
|
|
|
|
|
support or if you are going to use the Eclipse
|
|
|
|
|
IDE:
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<literallayout class='monospaced'>
|
2015-11-18 16:00:49 +00:00
|
|
|
|
$ sudo dnf install SDL-devel xterm
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</literallayout></para></listitem>
|
|
|
|
|
<listitem><para><emphasis>Documentation:</emphasis>
|
|
|
|
|
Packages needed if you are going to build out the
|
|
|
|
|
Yocto Project documentation manuals:
|
|
|
|
|
<literallayout class='monospaced'>
|
2015-09-16 18:09:54 +00:00
|
|
|
|
$ sudo dnf install make docbook-style-dsssl docbook-style-xsl \
|
2015-04-01 16:18:24 +00:00
|
|
|
|
docbook-dtds docbook-utils fop libxslt dblatex xmlto xsltproc
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</literallayout></para></listitem>
|
2015-09-23 15:34:53 +00:00
|
|
|
|
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
|
|
|
|
|
Packages needed if you are going to run
|
|
|
|
|
<filename>oe-selftest</filename>:
|
|
|
|
|
<literallayout class='monospaced'>
|
2016-09-01 23:06:53 +00:00
|
|
|
|
$ sudo dnf install python3-GitPython
|
2015-09-23 15:34:53 +00:00
|
|
|
|
</literallayout>
|
|
|
|
|
</para></listitem>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section id='opensuse-packages'>
|
2013-11-05 18:34:12 +00:00
|
|
|
|
<title>openSUSE Packages</title>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
The following list shows the required packages by function
|
2013-11-05 18:34:12 +00:00
|
|
|
|
given a supported openSUSE Linux distribution:
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para><emphasis>Essentials:</emphasis>
|
|
|
|
|
Packages needed to build an image for a headless
|
|
|
|
|
system:
|
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
|
|
|
|
|
</literallayout></para></listitem>
|
2014-03-25 17:34:01 +00:00
|
|
|
|
<listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
|
|
|
|
|
Packages recommended if the host system has graphics
|
|
|
|
|
support or if you are going to use the Eclipse
|
|
|
|
|
IDE:
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$ sudo zypper install libSDL-devel xterm
|
|
|
|
|
</literallayout></para></listitem>
|
|
|
|
|
<listitem><para><emphasis>Documentation:</emphasis>
|
|
|
|
|
Packages needed if you are going to build out the
|
|
|
|
|
Yocto Project documentation manuals:
|
|
|
|
|
<literallayout class='monospaced'>
|
2013-05-20 15:10:46 +00:00
|
|
|
|
$ sudo zypper install make fop xsltproc dblatex xmlto
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</literallayout></para></listitem>
|
2015-09-23 15:34:53 +00:00
|
|
|
|
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
|
|
|
|
|
Packages needed if you are going to run
|
|
|
|
|
<filename>oe-selftest</filename>:
|
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$ sudo zypper install python-GitPython
|
|
|
|
|
</literallayout></para></listitem>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section id='centos-packages'>
|
|
|
|
|
<title>CentOS Packages</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
The following list shows the required packages by function
|
|
|
|
|
given a supported CentOS Linux distribution:
|
2014-07-25 05:35:24 +00:00
|
|
|
|
<note>
|
|
|
|
|
For CentOS 6.x, some of the versions of the components
|
|
|
|
|
provided by the distribution are too old (e.g. Git, Python,
|
|
|
|
|
and tar).
|
|
|
|
|
It is recommended that you install the buildtools in order
|
|
|
|
|
to provide versions that will work with the OpenEmbedded
|
|
|
|
|
build system.
|
|
|
|
|
For information on how to install the buildtools tarball,
|
|
|
|
|
see the
|
|
|
|
|
"<link linkend='required-git-tar-and-python-versions'>Required Git, Tar, and Python Versions</link>"
|
|
|
|
|
section.
|
2013-06-18 11:54:54 +00:00
|
|
|
|
</note>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para><emphasis>Essentials:</emphasis>
|
|
|
|
|
Packages needed to build an image for a headless
|
|
|
|
|
system:
|
|
|
|
|
<literallayout class='monospaced'>
|
2017-03-27 17:47:58 +00:00
|
|
|
|
$ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
|
|
|
|
|
</literallayout>
|
|
|
|
|
<note><title>Notes</title>
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Extra Packages for Enterprise Linux
|
|
|
|
|
(i.e. <filename>epel-release</filename>)
|
|
|
|
|
is a collection of packages from Fedora
|
|
|
|
|
built on RHEL/CentOS for easy installation
|
|
|
|
|
of packages not included in enterprise
|
|
|
|
|
Linux by default.
|
|
|
|
|
You need to install these packages
|
|
|
|
|
separately.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
The <filename>makecache</filename> command
|
|
|
|
|
consumes additional Metadata from
|
|
|
|
|
<filename>epel-release</filename>.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</note>
|
|
|
|
|
</para></listitem>
|
2014-03-25 17:34:01 +00:00
|
|
|
|
<listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
|
|
|
|
|
Packages recommended if the host system has graphics
|
|
|
|
|
support or if you are going to use the Eclipse
|
|
|
|
|
IDE:
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<literallayout class='monospaced'>
|
2015-11-18 16:00:49 +00:00
|
|
|
|
$ sudo yum install SDL-devel xterm
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</literallayout></para></listitem>
|
|
|
|
|
<listitem><para><emphasis>Documentation:</emphasis>
|
|
|
|
|
Packages needed if you are going to build out the
|
|
|
|
|
Yocto Project documentation manuals:
|
|
|
|
|
<literallayout class='monospaced'>
|
2015-11-18 16:00:49 +00:00
|
|
|
|
$ sudo yum install make docbook-style-dsssl docbook-style-xsl \
|
2015-04-01 16:18:24 +00:00
|
|
|
|
docbook-dtds docbook-utils fop libxslt dblatex xmlto xsltproc
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</literallayout></para></listitem>
|
2015-09-23 15:34:53 +00:00
|
|
|
|
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
|
|
|
|
|
Packages needed if you are going to run
|
|
|
|
|
<filename>oe-selftest</filename>:
|
|
|
|
|
<literallayout class='monospaced'>
|
2015-11-18 16:00:49 +00:00
|
|
|
|
$ sudo yum install GitPython
|
2015-09-23 15:34:53 +00:00
|
|
|
|
</literallayout>
|
|
|
|
|
</para></listitem>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
</section>
|
2013-06-28 13:33:28 +00:00
|
|
|
|
|
|
|
|
|
<section id='required-git-tar-and-python-versions'>
|
|
|
|
|
<title>Required Git, tar, and Python Versions</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
In order to use the build system, your host development system
|
|
|
|
|
must meet the following version requirements for Git, tar, and
|
|
|
|
|
Python:
|
|
|
|
|
<itemizedlist>
|
2016-04-14 00:07:49 +00:00
|
|
|
|
<listitem><para>Git 1.8.3.1 or greater</para></listitem>
|
2013-06-28 13:33:28 +00:00
|
|
|
|
<listitem><para>tar 1.24 or greater</para></listitem>
|
2016-09-01 22:24:23 +00:00
|
|
|
|
<listitem><para>Python 3.4.0 or greater</para></listitem>
|
2013-06-28 13:33:28 +00:00
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
If your host development system does not meet all these requirements,
|
2014-03-24 22:11:10 +00:00
|
|
|
|
you can resolve this by installing a <filename>buildtools</filename>
|
|
|
|
|
tarball that contains these tools.
|
|
|
|
|
You can get the tarball one of two ways: download a pre-built
|
|
|
|
|
tarball or use BitBake to build the tarball.
|
2013-06-28 13:33:28 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
2014-03-24 22:11:10 +00:00
|
|
|
|
<section id='downloading-a-pre-built-buildtools-tarball'>
|
|
|
|
|
<title>Downloading a Pre-Built <filename>buildtools</filename> Tarball</title>
|
2013-06-28 13:33:28 +00:00
|
|
|
|
|
2014-03-24 22:11:10 +00:00
|
|
|
|
<para>
|
|
|
|
|
Downloading and running a pre-built buildtools installer is
|
|
|
|
|
the easiest of the two methods by which you can get these tools:
|
|
|
|
|
<orderedlist>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Locate and download the <filename>*.sh</filename> at
|
|
|
|
|
<ulink url='&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;/buildtools/'></ulink>.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Execute the installation script.
|
|
|
|
|
Here is an example:
|
|
|
|
|
<literallayout class='monospaced'>
|
2015-01-21 19:21:30 +00:00
|
|
|
|
$ sh poky-glibc-x86_64-buildtools-tarball-x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
|
2014-03-24 22:11:10 +00:00
|
|
|
|
</literallayout>
|
|
|
|
|
During execution, a prompt appears that allows you to
|
2016-02-23 15:22:52 +00:00
|
|
|
|
choose the installation directory.
|
2014-03-24 22:11:10 +00:00
|
|
|
|
For example, you could choose the following:
|
|
|
|
|
<literallayout class='monospaced'>
|
2014-10-16 23:31:19 +00:00
|
|
|
|
/home/<replaceable>your-username</replaceable>/buildtools
|
2014-03-24 22:11:10 +00:00
|
|
|
|
</literallayout>
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Source the tools environment setup script by using a
|
|
|
|
|
command like the following:
|
|
|
|
|
<literallayout class='monospaced'>
|
2015-04-21 20:53:37 +00:00
|
|
|
|
$ source /home/<replaceable>your_username</replaceable>/buildtools/environment-setup-i586-poky-linux
|
2014-03-24 22:11:10 +00:00
|
|
|
|
</literallayout>
|
|
|
|
|
Of course, you need to supply your installation directory and be
|
|
|
|
|
sure to use the right file (i.e. i585 or x86-64).
|
|
|
|
|
</para>
|
|
|
|
|
<para>
|
|
|
|
|
After you have sourced the setup script,
|
|
|
|
|
the tools are added to <filename>PATH</filename>
|
|
|
|
|
and any other environment variables required to run the
|
|
|
|
|
tools are initialized.
|
|
|
|
|
The results are working versions versions of Git, tar,
|
|
|
|
|
Python and <filename>chrpath</filename>.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</orderedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
2013-06-28 13:33:28 +00:00
|
|
|
|
|
2014-03-24 22:11:10 +00:00
|
|
|
|
<section id='building-your-own-buildtools-tarball'>
|
|
|
|
|
<title>Building Your Own <filename>buildtools</filename> Tarball</title>
|
2013-06-28 13:33:28 +00:00
|
|
|
|
|
2014-03-24 22:11:10 +00:00
|
|
|
|
<para>
|
|
|
|
|
Building and running your own buildtools installer applies
|
|
|
|
|
only when you have a build host that can already run BitBake.
|
|
|
|
|
In this case, you use that machine to build the
|
|
|
|
|
<filename>.sh</filename> file and then
|
|
|
|
|
take steps to transfer and run it on a
|
|
|
|
|
machine that does not meet the minimal Git, tar, and Python
|
|
|
|
|
requirements.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
Here are the steps to take to build and run your own
|
|
|
|
|
buildtools installer:
|
|
|
|
|
<orderedlist>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
On the machine that is able to run BitBake,
|
|
|
|
|
be sure you have set up your build environment with
|
|
|
|
|
the setup script
|
|
|
|
|
(<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
|
|
|
|
|
or
|
|
|
|
|
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>).
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Run the BitBake command to build the tarball:
|
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$ bitbake buildtools-tarball
|
|
|
|
|
</literallayout>
|
|
|
|
|
<note>
|
|
|
|
|
The
|
|
|
|
|
<link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>
|
|
|
|
|
variable in your <filename>local.conf</filename> file
|
|
|
|
|
determines whether you build tools for a 32-bit
|
|
|
|
|
or 64-bit system.
|
|
|
|
|
</note>
|
|
|
|
|
Once the build completes, you can find the
|
|
|
|
|
<filename>.sh</filename> file that installs
|
|
|
|
|
the tools in the <filename>tmp/deploy/sdk</filename>
|
|
|
|
|
subdirectory of the
|
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
|
|
|
|
|
The installer file has the string "buildtools"
|
|
|
|
|
in the name.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Transfer the <filename>.sh</filename> file from the
|
|
|
|
|
build host to the machine that does not meet the
|
|
|
|
|
Git, tar, or Python requirements.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
On the machine that does not meet the requirements,
|
|
|
|
|
run the <filename>.sh</filename> file
|
2016-02-23 15:22:52 +00:00
|
|
|
|
to install the tools.
|
2014-03-24 22:11:10 +00:00
|
|
|
|
Here is an example:
|
|
|
|
|
<literallayout class='monospaced'>
|
2015-01-21 19:21:30 +00:00
|
|
|
|
$ sh poky-glibc-x86_64-buildtools-tarball-x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
|
2014-03-24 22:11:10 +00:00
|
|
|
|
</literallayout>
|
|
|
|
|
During execution, a prompt appears that allows you to
|
|
|
|
|
choose the installation directory.
|
|
|
|
|
For example, you could choose the following:
|
|
|
|
|
<literallayout class='monospaced'>
|
2015-04-21 21:34:38 +00:00
|
|
|
|
/home/<replaceable>your_username</replaceable>/buildtools
|
2014-03-24 22:11:10 +00:00
|
|
|
|
</literallayout>
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Source the tools environment setup script by using a
|
|
|
|
|
command like the following:
|
|
|
|
|
<literallayout class='monospaced'>
|
2015-04-21 21:34:38 +00:00
|
|
|
|
$ source /home/<replaceable>your_username</replaceable>/buildtools/environment-setup-i586-poky-linux
|
2014-03-24 22:11:10 +00:00
|
|
|
|
</literallayout>
|
|
|
|
|
Of course, you need to supply your installation directory and be
|
|
|
|
|
sure to use the right file (i.e. i585 or x86-64).
|
|
|
|
|
</para>
|
|
|
|
|
<para>
|
|
|
|
|
After you have sourced the setup script,
|
|
|
|
|
the tools are added to <filename>PATH</filename>
|
|
|
|
|
and any other environment variables required to run the
|
|
|
|
|
tools are initialized.
|
|
|
|
|
The results are working versions versions of Git, tar,
|
|
|
|
|
Python and <filename>chrpath</filename>.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</orderedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
2013-06-28 13:33:28 +00:00
|
|
|
|
</section>
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section id='intro-getit'>
|
|
|
|
|
<title>Obtaining the Yocto Project</title>
|
|
|
|
|
<para>
|
|
|
|
|
The Yocto Project development team makes the Yocto Project available through a number
|
|
|
|
|
of methods:
|
|
|
|
|
<itemizedlist>
|
2013-10-30 15:09:53 +00:00
|
|
|
|
<listitem><para><emphasis>Source Repositories:</emphasis>
|
|
|
|
|
Working from a copy of the upstream
|
|
|
|
|
<filename>poky</filename> repository is the
|
|
|
|
|
preferred method for obtaining and using a Yocto Project
|
|
|
|
|
release.
|
|
|
|
|
You can view the Yocto Project Source Repositories at
|
|
|
|
|
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.
|
|
|
|
|
In particular, you can find the
|
|
|
|
|
<filename>poky</filename> repository at
|
|
|
|
|
<ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/'></ulink>.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para><emphasis>Releases:</emphasis> Stable, tested
|
|
|
|
|
releases are available as tarballs through
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<ulink url='&YOCTO_DL_URL;/releases/yocto/'/>.</para></listitem>
|
2013-10-30 15:09:53 +00:00
|
|
|
|
<listitem><para><emphasis>Nightly Builds:</emphasis> These
|
|
|
|
|
tarball releases are available at
|
2015-04-01 16:18:24 +00:00
|
|
|
|
<ulink url='&YOCTO_AB_NIGHTLY_URL;'/>.
|
2016-03-21 22:04:06 +00:00
|
|
|
|
These builds include Yocto Project releases, SDK installation
|
|
|
|
|
scripts, and experimental builds.
|
2013-10-30 15:09:53 +00:00
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para><emphasis>Yocto Project Website:</emphasis> You can
|
|
|
|
|
find tarball releases of the Yocto Project and supported BSPs
|
|
|
|
|
at the
|
2012-12-11 18:07:58 +00:00
|
|
|
|
<ulink url='&YOCTO_HOME_URL;'>Yocto Project website</ulink>.
|
2013-10-30 15:09:53 +00:00
|
|
|
|
Along with these downloads, you can find lots of other
|
|
|
|
|
information at this site.
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section id='intro-getit-dev'>
|
|
|
|
|
<title>Development Checkouts</title>
|
|
|
|
|
<para>
|
|
|
|
|
Development using the Yocto Project requires a local
|
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
|
2013-10-30 15:16:37 +00:00
|
|
|
|
You can set up the Source Directory by cloning a copy of the upstream
|
|
|
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#poky'>poky</ulink> Git repository.
|
|
|
|
|
For information on how to do this, see the
|
2013-03-26 16:54:20 +00:00
|
|
|
|
"<ulink url='&YOCTO_DOCS_DEV_URL;#getting-setup'>Getting Set Up</ulink>"
|
2012-12-11 18:07:58 +00:00
|
|
|
|
section in the Yocto Project Development Manual.
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
|
2017-08-07 22:30:38 +00:00
|
|
|
|
<section id='yocto-project-terms'>
|
|
|
|
|
<title>Yocto Project Terms</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
Following is a list of terms and definitions users new to the Yocto
|
|
|
|
|
Project development environment might find helpful.
|
|
|
|
|
While some of these terms are universal, the list includes them
|
|
|
|
|
just in case:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
<emphasis>Append Files:</emphasis>
|
|
|
|
|
Files that append build information to a recipe file.
|
|
|
|
|
Append files are known as BitBake append files and
|
|
|
|
|
<filename>.bbappend</filename> files.
|
|
|
|
|
The OpenEmbedded build system expects every append file to have
|
|
|
|
|
a corresponding recipe (<filename>.bb</filename>) file.
|
|
|
|
|
Furthermore, the append file and corresponding recipe file
|
|
|
|
|
must use the same root filename.
|
|
|
|
|
The filenames can differ only in the file type suffix used
|
|
|
|
|
(e.g.
|
|
|
|
|
<filename>formfactor_0.0.bb</filename> and
|
|
|
|
|
<filename>formfactor_0.0.bbappend</filename>).</para>
|
|
|
|
|
|
|
|
|
|
<para>Information in append files extends or overrides the
|
|
|
|
|
information in the similarly-named recipe file.
|
|
|
|
|
For an example of an append file in use, see the
|
|
|
|
|
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files in Your Layer</ulink>"
|
|
|
|
|
section in the Yocto Project Development Manual.
|
|
|
|
|
<note>
|
|
|
|
|
Append files can also use wildcard patterns in their
|
|
|
|
|
version numbers so they can be applied to more than one
|
|
|
|
|
version of the underlying recipe file.
|
|
|
|
|
</note>
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para id='bitbake-term'>
|
|
|
|
|
<emphasis>BitBake:</emphasis>
|
|
|
|
|
The task executor and scheduler used by the OpenEmbedded build
|
|
|
|
|
system to build images.
|
|
|
|
|
For more information on BitBake, see the
|
|
|
|
|
<ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para id='build-directory'>
|
|
|
|
|
<emphasis>Build Directory:</emphasis>
|
|
|
|
|
This term refers to the area used by the OpenEmbedded build
|
|
|
|
|
system for builds.
|
|
|
|
|
The area is created when you <filename>source</filename> the
|
|
|
|
|
setup environment script that is found in the Source Directory
|
|
|
|
|
(i.e. <link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
|
|
|
|
|
or
|
|
|
|
|
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>).
|
|
|
|
|
The
|
|
|
|
|
<link linkend='var-TOPDIR'><filename>TOPDIR</filename></link>
|
|
|
|
|
variable points to the Build Directory.</para>
|
|
|
|
|
|
|
|
|
|
<para>You have a lot of flexibility when creating the Build
|
|
|
|
|
Directory.
|
|
|
|
|
Following are some examples that show how to create the
|
|
|
|
|
directory.
|
|
|
|
|
The examples assume your
|
|
|
|
|
<link linkend='source-directory'>Source Directory</link> is
|
|
|
|
|
named <filename>poky</filename>:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>Create the Build Directory inside your
|
|
|
|
|
Source Directory and let the name of the Build
|
|
|
|
|
Directory default to <filename>build</filename>:
|
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$ cd $HOME/poky
|
|
|
|
|
$ source &OE_INIT_FILE;
|
|
|
|
|
</literallayout>
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>Create the Build Directory inside your
|
|
|
|
|
home directory and specifically name it
|
|
|
|
|
<filename>test-builds</filename>:
|
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$ cd $HOME
|
|
|
|
|
$ source poky/&OE_INIT_FILE; test-builds
|
|
|
|
|
</literallayout>
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Provide a directory path and specifically name the
|
|
|
|
|
Build Directory.
|
|
|
|
|
Any intermediate folders in the pathname must exist.
|
|
|
|
|
This next example creates a Build Directory named
|
|
|
|
|
<filename>YP-&POKYVERSION;</filename>
|
|
|
|
|
in your home directory within the existing
|
|
|
|
|
directory <filename>mybuilds</filename>:
|
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
|
$cd $HOME
|
|
|
|
|
$ source $HOME/poky/&OE_INIT_FILE; $HOME/mybuilds/YP-&POKYVERSION;
|
|
|
|
|
</literallayout>
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
<note>
|
|
|
|
|
By default, the Build Directory contains
|
|
|
|
|
<link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>,
|
|
|
|
|
which is a temporary directory the build system uses for
|
|
|
|
|
its work.
|
|
|
|
|
<filename>TMPDIR</filename> cannot be under NFS.
|
|
|
|
|
Thus, by default, the Build Directory cannot be under NFS.
|
|
|
|
|
However, if you need the Build Directory to be under NFS,
|
|
|
|
|
you can set this up by setting <filename>TMPDIR</filename>
|
|
|
|
|
in your <filename>local.conf</filename> file
|
|
|
|
|
to use a local drive.
|
|
|
|
|
Doing so effectively separates <filename>TMPDIR</filename>
|
|
|
|
|
from <filename>TOPDIR</filename>, which is the Build
|
|
|
|
|
Directory.
|
|
|
|
|
</note>
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
<emphasis>Classes:</emphasis>
|
|
|
|
|
Files that provide for logic encapsulation and inheritance so
|
|
|
|
|
that commonly used patterns can be defined once and then
|
|
|
|
|
easily used in multiple recipes.
|
|
|
|
|
For reference information on the Yocto Project classes, see the
|
|
|
|
|
"<link linkend='ref-classes'>Classes</link>" chapter.
|
|
|
|
|
Class files end with the <filename>.bbclass</filename>
|
|
|
|
|
filename extension.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
<emphasis>Configuration File:</emphasis>
|
|
|
|
|
Configuration information in various <filename>.conf</filename>
|
|
|
|
|
files provides global definitions of variables.
|
|
|
|
|
The <filename>conf/local.conf</filename> configuration file in
|
|
|
|
|
the
|
|
|
|
|
<link linkend='build-directory'>Build Directory</link>
|
|
|
|
|
contains user-defined variables that affect every build.
|
|
|
|
|
The <filename>meta-poky/conf/distro/poky.conf</filename>
|
|
|
|
|
configuration file defines Yocto "distro" configuration
|
|
|
|
|
variables used only when building with this policy.
|
|
|
|
|
Machine configuration files, which
|
|
|
|
|
are located throughout the
|
|
|
|
|
<link linkend='source-directory'>Source Directory</link>, define
|
|
|
|
|
variables for specific hardware and are only used when building
|
|
|
|
|
for that target (e.g. the
|
|
|
|
|
<filename>machine/beaglebone.conf</filename> configuration
|
|
|
|
|
file defines variables for the Texas Instruments ARM Cortex-A8
|
|
|
|
|
development board).
|
|
|
|
|
Configuration files end with a <filename>.conf</filename>
|
|
|
|
|
filename extension.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para id='cross-development-toolchain'>
|
|
|
|
|
<emphasis>Cross-Development Toolchain:</emphasis>
|
|
|
|
|
In general, a cross-development toolchain is a collection of
|
|
|
|
|
software development tools and utilities that run on one
|
|
|
|
|
architecture and allow you to develop software for a
|
|
|
|
|
different, or targeted, architecture.
|
|
|
|
|
These toolchains contain cross-compilers, linkers, and
|
|
|
|
|
debuggers that are specific to the target architecture.</para>
|
|
|
|
|
|
|
|
|
|
<para>The Yocto Project supports two different cross-development
|
|
|
|
|
toolchains:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
A toolchain only used by and within
|
|
|
|
|
BitBake when building an image for a target
|
|
|
|
|
architecture.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>A relocatable toolchain used outside of
|
|
|
|
|
BitBake by developers when developing applications
|
|
|
|
|
that will run on a targeted device.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</itemizedlist></para>
|
|
|
|
|
|
|
|
|
|
<para>Creation of these toolchains is simple and automated.
|
|
|
|
|
For information on toolchain concepts as they apply to the
|
|
|
|
|
Yocto Project, see the
|
|
|
|
|
"<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
|
|
|
|
|
section.
|
|
|
|
|
You can also find more information on using the
|
|
|
|
|
relocatable toolchain in the
|
|
|
|
|
<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
<emphasis>Image:</emphasis>
|
|
|
|
|
An image is an artifact of the BitBake build process given
|
|
|
|
|
a collection of recipes and related Metadata.
|
|
|
|
|
Images are the binary output that run on specific hardware or
|
|
|
|
|
QEMU and are used for specific use-cases.
|
|
|
|
|
For a list of the supported image types that the Yocto Project
|
|
|
|
|
provides, see the
|
|
|
|
|
"<link linkend='ref-images'>Images</link>"
|
|
|
|
|
chapter.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
<emphasis>Layer:</emphasis>
|
|
|
|
|
A collection of recipes representing the core,
|
|
|
|
|
a BSP, or an application stack.
|
|
|
|
|
For a discussion specifically on BSP Layers, see the
|
|
|
|
|
"<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>"
|
|
|
|
|
section in the Yocto Project Board Support Packages (BSP)
|
|
|
|
|
Developer's Guide.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para id='metadata'>
|
|
|
|
|
<emphasis>Metadata:</emphasis>
|
|
|
|
|
The files that BitBake parses when building an image.
|
|
|
|
|
In general, Metadata includes recipes, classes, and
|
|
|
|
|
configuration files.
|
|
|
|
|
In the context of the kernel ("kernel Metadata"),
|
|
|
|
|
it refers to Metadata in the <filename>meta</filename>
|
|
|
|
|
branches of the kernel source Git repositories.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para id='oe-core'>
|
|
|
|
|
<emphasis>OE-Core:</emphasis>
|
|
|
|
|
A core set of Metadata originating with OpenEmbedded (OE)
|
|
|
|
|
that is shared between OE and the Yocto Project.
|
|
|
|
|
This Metadata is found in the <filename>meta</filename>
|
|
|
|
|
directory of the
|
|
|
|
|
<link linkend='source-directory'>Source Directory</link>.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para id='build-system-term'>
|
|
|
|
|
<emphasis>OpenEmbedded Build System:</emphasis>
|
|
|
|
|
The build system specific to the Yocto Project.
|
|
|
|
|
The OpenEmbedded build system is based on another project known
|
|
|
|
|
as "Poky", which uses
|
|
|
|
|
<link linkend='bitbake-term'>BitBake</link> as the task
|
|
|
|
|
executor.
|
|
|
|
|
Throughout the Yocto Project documentation set, the
|
|
|
|
|
OpenEmbedded build system is sometimes referred to simply
|
|
|
|
|
as "the build system".
|
|
|
|
|
If other build systems, such as a host or target build system
|
|
|
|
|
are referenced, the documentation clearly states the
|
|
|
|
|
difference.
|
|
|
|
|
<note>
|
|
|
|
|
For some historical information about Poky, see the
|
|
|
|
|
<link linkend='poky'>Poky</link> term.
|
|
|
|
|
</note>
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
<emphasis>Package:</emphasis>
|
|
|
|
|
In the context of the Yocto Project, this term refers to a
|
|
|
|
|
recipe's packaged output produced by BitBake (i.e. a
|
|
|
|
|
"baked recipe").
|
|
|
|
|
A package is generally the compiled binaries produced from the
|
|
|
|
|
recipe's sources.
|
|
|
|
|
You "bake" something by running it through BitBake.</para>
|
|
|
|
|
|
|
|
|
|
<para>It is worth noting that the term "package" can,
|
|
|
|
|
in general, have subtle meanings.
|
|
|
|
|
For example, the packages referred to in the
|
|
|
|
|
"<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>"
|
|
|
|
|
section in the Yocto Project Quick Start are compiled binaries
|
|
|
|
|
that, when installed, add functionality to your Linux
|
|
|
|
|
distribution.</para>
|
|
|
|
|
|
|
|
|
|
<para>Another point worth noting is that historically within
|
|
|
|
|
the Yocto Project, recipes were referred to as packages - thus,
|
|
|
|
|
the existence of several BitBake variables that are seemingly
|
|
|
|
|
mis-named,
|
|
|
|
|
(e.g. <link linkend='var-PR'><filename>PR</filename></link>,
|
|
|
|
|
<link linkend='var-PV'><filename>PV</filename></link>, and
|
|
|
|
|
<link linkend='var-PE'><filename>PE</filename></link>).
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
<emphasis>Package Groups:</emphasis>
|
|
|
|
|
Arbitrary groups of software Recipes.
|
|
|
|
|
You use package groups to hold recipes that, when built,
|
|
|
|
|
usually accomplish a single task.
|
|
|
|
|
For example, a package group could contain the recipes for a
|
|
|
|
|
company’s proprietary or value-add software.
|
|
|
|
|
Or, the package group could contain the recipes that enable
|
|
|
|
|
graphics.
|
|
|
|
|
A package group is really just another recipe.
|
|
|
|
|
Because package group files are recipes, they end with the
|
|
|
|
|
<filename>.bb</filename> filename extension.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para id='poky'>
|
|
|
|
|
<emphasis>Poky:</emphasis>
|
|
|
|
|
The term "poky", which is pronounced
|
|
|
|
|
<emphasis>Pah</emphasis>-kee, can mean several things:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
In its most general sense, poky is an open-source
|
|
|
|
|
project that was initially developed by OpenedHand.
|
|
|
|
|
OpenedHand developed poky off of the existing
|
|
|
|
|
OpenEmbedded build system to create a commercially
|
|
|
|
|
supportable build system for embedded Linux.
|
|
|
|
|
After Intel Corporation acquired OpenedHand, the
|
|
|
|
|
poky project became the basis for the Yocto Project's
|
|
|
|
|
build system.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Within the Yocto Project
|
|
|
|
|
<ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink>,
|
|
|
|
|
"poky" exists as a separate Git
|
|
|
|
|
repository from which you can clone to yield a local
|
|
|
|
|
Git repository that is a copy on your host system.
|
|
|
|
|
Thus, "poky" can refer to the upstream or
|
|
|
|
|
local copy of the files used for development within
|
|
|
|
|
the Yocto Project.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Finally, "poky" can refer to the default
|
|
|
|
|
<link linkend='var-DISTRO'><filename>DISTRO</filename></link>
|
|
|
|
|
(i.e. distribution) created when you use the Yocto
|
|
|
|
|
Project in conjunction with the
|
|
|
|
|
<filename>poky</filename> repository to build an image.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
<emphasis>Recipe:</emphasis>
|
|
|
|
|
A set of instructions for building packages.
|
|
|
|
|
A recipe describes where you get source code, which patches
|
|
|
|
|
to apply, how to configure the source, how to compile it and so on.
|
|
|
|
|
Recipes also describe dependencies for libraries or for other
|
|
|
|
|
recipes.
|
|
|
|
|
Recipes represent the logical unit of execution, the software
|
|
|
|
|
to build, the images to build, and use the
|
|
|
|
|
<filename>.bb</filename> file extension.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para id='source-directory'>
|
|
|
|
|
<emphasis>Source Directory:</emphasis>
|
|
|
|
|
This term refers to the directory structure created as a result
|
|
|
|
|
of creating a local copy of the <filename>poky</filename> Git
|
|
|
|
|
repository <filename>git://git.yoctoproject.org/poky</filename>
|
|
|
|
|
or expanding a released <filename>poky</filename> tarball.
|
|
|
|
|
<note>
|
|
|
|
|
Creating a local copy of the <filename>poky</filename>
|
|
|
|
|
Git repository is the recommended method for setting up
|
|
|
|
|
your Source Directory.
|
|
|
|
|
</note>
|
|
|
|
|
Sometimes you might hear the term "poky directory" used to refer
|
|
|
|
|
to this directory structure.
|
|
|
|
|
<note>
|
|
|
|
|
The OpenEmbedded build system does not support file or
|
|
|
|
|
directory names that contain spaces.
|
|
|
|
|
Be sure that the Source Directory you use does not contain
|
|
|
|
|
these types of names.
|
|
|
|
|
</note></para>
|
|
|
|
|
|
|
|
|
|
<para>The Source Directory contains BitBake, Documentation,
|
|
|
|
|
Metadata and other files that all support the Yocto Project.
|
|
|
|
|
Consequently, you must have the Source Directory in place on
|
|
|
|
|
your development system in order to do any development using
|
|
|
|
|
the Yocto Project.</para>
|
|
|
|
|
|
|
|
|
|
<para>When you create a local copy of the Git repository, you
|
|
|
|
|
can name the repository anything you like.
|
|
|
|
|
Throughout much of the documentation, "poky"
|
|
|
|
|
is used as the name of the top-level folder of the local copy of
|
|
|
|
|
the poky Git repository.
|
|
|
|
|
So, for example, cloning the <filename>poky</filename> Git
|
|
|
|
|
repository results in a local Git repository whose top-level
|
|
|
|
|
folder is also named "poky".</para>
|
|
|
|
|
|
|
|
|
|
<para>While it is not recommended that you use tarball expansion
|
|
|
|
|
to set up the Source Directory, if you do, the top-level
|
|
|
|
|
directory name of the Source Directory is derived from the
|
|
|
|
|
Yocto Project release tarball.
|
|
|
|
|
For example, downloading and unpacking
|
|
|
|
|
<filename>&YOCTO_POKY_TARBALL;</filename> results in a
|
|
|
|
|
Source Directory whose root folder is named
|
|
|
|
|
<filename>&YOCTO_POKY;</filename>.</para>
|
|
|
|
|
|
|
|
|
|
<para>It is important to understand the differences between the
|
|
|
|
|
Source Directory created by unpacking a released tarball as
|
|
|
|
|
compared to cloning
|
|
|
|
|
<filename>git://git.yoctoproject.org/poky</filename>.
|
|
|
|
|
When you unpack a tarball, you have an exact copy of the files
|
|
|
|
|
based on the time of release - a fixed release point.
|
|
|
|
|
Any changes you make to your local files in the Source Directory
|
|
|
|
|
are on top of the release and will remain local only.
|
|
|
|
|
On the other hand, when you clone the <filename>poky</filename>
|
|
|
|
|
Git repository, you have an active development repository with
|
|
|
|
|
access to the upstream repository's branches and tags.
|
|
|
|
|
In this case, any local changes you make to the local
|
|
|
|
|
Source Directory can be later applied to active development
|
|
|
|
|
branches of the upstream <filename>poky</filename> Git
|
|
|
|
|
repository.</para>
|
|
|
|
|
|
|
|
|
|
<para>For more information on concepts related to Git
|
|
|
|
|
repositories, branches, and tags, see the
|
|
|
|
|
"<link linkend='repositories-tags-and-branches'>Repositories, Tags, and Branches</link>"
|
|
|
|
|
section.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para><emphasis>Task:</emphasis>
|
|
|
|
|
A unit of execution for BitBake (e.g.
|
|
|
|
|
<link linkend='ref-tasks-compile'><filename>do_compile</filename></link>,
|
|
|
|
|
<link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>,
|
|
|
|
|
<link linkend='ref-tasks-patch'><filename>do_patch</filename></link>,
|
|
|
|
|
and so forth).
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para id='toaster-term'><emphasis>Toaster:</emphasis>
|
|
|
|
|
A web interface to the Yocto Project's
|
|
|
|
|
<link linkend='build-system-term'>OpenEmbedded Build System</link>.
|
|
|
|
|
The interface enables you to configure and run your builds.
|
|
|
|
|
Information about builds is collected and stored in a database.
|
|
|
|
|
For information on Toaster, see the
|
|
|
|
|
<ulink url='&YOCTO_DOCS_TOAST_URL;'>Yocto Project Toaster Manual</ulink>.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
<emphasis>Upstream:</emphasis>
|
|
|
|
|
A reference to source code or repositories
|
|
|
|
|
that are not local to the development system but located in a
|
|
|
|
|
master area that is controlled by the maintainer of the source
|
|
|
|
|
code.
|
|
|
|
|
For example, in order for a developer to work on a particular
|
|
|
|
|
piece of code, they need to first get a copy of it from an
|
|
|
|
|
"upstream" source.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
>>>>>>> a82bcc9... dev-manual: Updates to "Using .bbappend Files in Your Layer"
|
2012-12-11 18:07:58 +00:00
|
|
|
|
</chapter>
|
|
|
|
|
<!--
|
|
|
|
|
vim: expandtab tw=80 ts=4
|
|
|
|
|
-->
|