445 lines
23 KiB
XML
445 lines
23 KiB
XML
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
|
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
|
|
|
<chapter id='intro'>
|
|
<title>Introduction</title>
|
|
|
|
<section id='intro-welcome'>
|
|
<title>Introduction</title>
|
|
|
|
<para>
|
|
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
|
|
<ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
|
|
For task-based information using the Yocto Project, see the
|
|
<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>.
|
|
For Board Support Package (BSP) structure information, see the
|
|
<ulink url='&YOCTO_DOCS_BSP_URL;'>Yocto Project Board Support Package (BSP) Developer's Guide</ulink>.
|
|
You can also find lots of Yocto Project information on the
|
|
<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>
|
|
<link linkend='usingpoky'>Using the Yocto Project</link>:</emphasis>
|
|
Provides an overview of the components that make up the Yocto Project
|
|
followed by information about debugging images created in the Yocto Project.
|
|
</para></listitem>
|
|
<listitem><para><emphasis>
|
|
<link linkend='technical-details'>Technical Details</link>:</emphasis>
|
|
Describes fundamental Yocto Project components as well as an explanation
|
|
behind how the Yocto Project uses shared state (sstate) cache to speed build time.
|
|
</para></listitem>
|
|
<listitem><para><emphasis>
|
|
<link linkend='ref-structure'>Directory Structure</link>:</emphasis>
|
|
Describes the
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> created
|
|
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-bitbake'>BitBake</link>:</emphasis>
|
|
Provides an overview of the BitBake tool and its role within
|
|
the Yocto Project.</para></listitem>
|
|
<listitem><para><emphasis>
|
|
<link linkend='ref-classes'>Classes</link>:</emphasis>
|
|
Describes the classes used in the Yocto Project.</para></listitem>
|
|
<listitem><para><emphasis>
|
|
<link linkend='ref-images'>Images</link>:</emphasis>
|
|
Describes the standard images that the Yocto Project supports.
|
|
</para></listitem>
|
|
<listitem><para><emphasis>
|
|
<link linkend='ref-features'>Features</link>:</emphasis>
|
|
Describes mechanisms for creating distribution, machine, and image
|
|
features during the build process using the OpenEmbedded build system.</para></listitem>
|
|
<listitem><para><emphasis>
|
|
<link linkend='ref-variables-glos'>Variables Glossary</link>:</emphasis>
|
|
Presents most variables used by the OpenEmbedded build system, which
|
|
uses BitBake.
|
|
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>
|
|
Provides variable locality or context.</para></listitem>
|
|
<listitem><para><emphasis>
|
|
<link linkend='faq'>FAQ</link>:</emphasis>
|
|
Provides answers for commonly asked questions in the Yocto Project
|
|
development environment.</para></listitem>
|
|
<listitem><para><emphasis>
|
|
<link linkend='resources'>Contributing to the Yocto Project</link>:</emphasis>
|
|
Provides guidance on how you can contribute back to the Yocto
|
|
Project.</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
|
|
|
|
<section id='intro-requirements'>
|
|
<title>System Requirements</title>
|
|
<para>
|
|
For general Yocto Project system requirements, see the
|
|
"<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>What You Need and How You Get It</ulink>" section
|
|
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>
|
|
Currently, the Yocto Project is supported on the following
|
|
distributions:
|
|
<note>
|
|
<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
|
|
and currently has no plans to support
|
|
rolling-releases or development distributions due to their
|
|
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>
|
|
Refer to
|
|
<ulink url='&OE_HOME_URL;/index.php?title=OEandYourDistro'>OE and Your Distro</ulink> and
|
|
<ulink url='&OE_HOME_URL;/index.php?title=Required_software'>Required Software</ulink>
|
|
for information for information about dependencies and
|
|
requirements.
|
|
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>
|
|
</note>
|
|
<itemizedlist>
|
|
<!-- <listitem><para>Ubuntu 10.04</para></listitem>
|
|
<listitem><para>Ubuntu 11.10</para></listitem> -->
|
|
<listitem><para>Ubuntu 12.04 (LTS)</para></listitem>
|
|
<listitem><para>Ubuntu 12.10</para></listitem>
|
|
<listitem><para>Ubuntu 13.04</para></listitem>
|
|
<!-- <listitem><para>Fedora 16 (Verne)</para></listitem>
|
|
<listitem><para>Fedora 17 (Spherical)</para></listitem> -->
|
|
<listitem><para>Fedora release 18 (Spherical Cow)</para></listitem>
|
|
<listitem><para>Fedora release 19 (Schrödinger's Cat)</para></listitem>
|
|
<!-- <listitem><para>CentOS release 5.6 (Final)</para></listitem>
|
|
<listitem><para>CentOS release 5.7 (Final)</para></listitem>
|
|
<listitem><para>CentOS release 5.8 (Final)</para></listitem>
|
|
<listitem><para>CentOS release 6.3 (Final)</para></listitem> -->
|
|
<listitem><para>CentOS release 6.4</para></listitem>
|
|
<!-- <listitem><para>Debian GNU/Linux 6.0 (Squeeze)</para></listitem> -->
|
|
<listitem><para>Debian GNU/Linux 6.0.7 (Squeeze)</para></listitem>
|
|
<listitem><para>Debian GNU/Linux 7.0 (Wheezy)</para></listitem>
|
|
<listitem><para>Debian GNU/Linux 7.1 (Wheezy)</para></listitem>
|
|
<!-- <listitem><para>openSUSE 11.4</para></listitem>
|
|
<listitem><para>openSUSE 12.1</para></listitem> -->
|
|
<listitem><para>openSUSE 12.2</para></listitem>
|
|
<listitem><para>openSUSE 12.3</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<note>
|
|
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.
|
|
For example, the CentOS 6.4 distribution does not include the
|
|
Gtk+ 2.20.0 and PyGtk 2.21.0 (or higher) packages, which are
|
|
required to run
|
|
<ulink url='&YOCTO_HOME_URL;/tools-resources/projects/hob'>Hob</ulink>.
|
|
</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.
|
|
This section provides required packages according to
|
|
Linux distribution and function.
|
|
</para>
|
|
|
|
<section id='ubuntu-packages'>
|
|
<title>Ubuntu and Debian</title>
|
|
|
|
<para>
|
|
The following list shows the required packages by function
|
|
given a supported Ubuntu or Debian Linux distribution:
|
|
<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>
|
|
<listitem><para><emphasis>Graphical Extras:</emphasis>
|
|
Packages recommended if the host system has graphics support:
|
|
<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'>
|
|
$ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
|
|
</literallayout></para></listitem>
|
|
<listitem><para><emphasis>ADT Installer Extras:</emphasis>
|
|
Packages needed if you are going to be using the
|
|
<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-adt-installer'>Application Development Toolkit (ADT) Installer</ulink>:
|
|
<literallayout class='monospaced'>
|
|
$ sudo apt-get install autoconf automake libtool libglib2.0-dev
|
|
</literallayout></para></listitem>
|
|
</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'>
|
|
$ sudo yum install &FEDORA_HOST_PACKAGES_ESSENTIAL;
|
|
</literallayout></para></listitem>
|
|
<listitem><para><emphasis>Graphical Extras:</emphasis>
|
|
Packages recommended if the host system has graphics support:
|
|
<literallayout class='monospaced'>
|
|
$ sudo yum install SDL-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'>
|
|
$ sudo yum install make docbook-style-dsssl docbook-style-xsl \
|
|
docbook-dtds docbook-utils fop libxslt dblatex xmlto
|
|
</literallayout></para></listitem>
|
|
<listitem><para><emphasis>ADT Installer Extras:</emphasis>
|
|
Packages needed if you are going to be using the
|
|
<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-adt-installer'>Application Development Toolkit (ADT) Installer</ulink>:
|
|
<literallayout class='monospaced'>
|
|
$ sudo yum install autoconf automake libtool glib2-devel
|
|
</literallayout></para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
|
|
<section id='opensuse-packages'>
|
|
<title>OpenSUSE Packages</title>
|
|
|
|
<para>
|
|
The following list shows the required packages by function
|
|
given a supported OpenSUSE Linux distribution:
|
|
<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>
|
|
<listitem><para><emphasis>Graphical Extras:</emphasis>
|
|
Packages recommended if the host system has graphics support:
|
|
<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'>
|
|
$ sudo zypper install make fop xsltproc dblatex xmlto
|
|
</literallayout></para></listitem>
|
|
<listitem><para><emphasis>ADT Installer Extras:</emphasis>
|
|
Packages needed if you are going to be using the
|
|
<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-adt-installer'>Application Development Toolkit (ADT) Installer</ulink>:
|
|
<literallayout class='monospaced'>
|
|
$ sudo zypper install autoconf automake libtool glib2-devel
|
|
</literallayout></para></listitem>
|
|
</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:
|
|
<note>Depending on the CentOS version you are using, other requirements
|
|
and dependencies might exist.
|
|
For details, you should look at the CentOS sections on the
|
|
<ulink url='https://wiki.yoctoproject.org/wiki/Poky/GettingStarted/Dependencies'>Poky/GettingStarted/Dependencies</ulink>
|
|
wiki page.
|
|
</note>
|
|
<itemizedlist>
|
|
<listitem><para><emphasis>Essentials:</emphasis>
|
|
Packages needed to build an image for a headless
|
|
system:
|
|
<literallayout class='monospaced'>
|
|
$ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL;
|
|
</literallayout></para></listitem>
|
|
<listitem><para><emphasis>Graphical Extras:</emphasis>
|
|
Packages recommended if the host system has graphics support:
|
|
<literallayout class='monospaced'>
|
|
$ sudo yum install SDL-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'>
|
|
$ sudo yum install make docbook-style-dsssl docbook-style-xsl \
|
|
docbook-dtds docbook-utils fop libxslt dblatex xmlto
|
|
</literallayout></para></listitem>
|
|
<listitem><para><emphasis>ADT Installer Extras:</emphasis>
|
|
Packages needed if you are going to be using the
|
|
<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-adt-installer'>Application Development Toolkit (ADT) Installer</ulink>:
|
|
<literallayout class='monospaced'>
|
|
$ sudo yum install autoconf automake libtool glib2-devel
|
|
</literallayout></para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
|
|
<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>
|
|
<listitem><para>Git 1.7.5 or greater</para></listitem>
|
|
<listitem><para>tar 1.24 or greater</para></listitem>
|
|
<listitem><para>Python 2.7.3 or greater not including
|
|
Python 3.x, which is not supported.</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
If your host development system does not meet all these requirements,
|
|
you can resolve this by either downloading a pre-built tarball
|
|
containing these tools, or building such a tarball on another
|
|
system.
|
|
Regardless of the method, once you have the tarball you simply
|
|
install it somewhere on you system, such as a directory in your
|
|
home directory, and then source the environment script provided,
|
|
which adds the tools into <filename>PATH</filename> and sets
|
|
any other environment variables required to run the tools.
|
|
Doing so gives you working versions of Git, tar, Python and
|
|
<filename>chrpath</filename>.
|
|
</para>
|
|
|
|
<para>
|
|
If downloading a pre-built tarball, locate the
|
|
<filename>*.sh</filename> at
|
|
<ulink url='&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;/buildtools/'></ulink>.
|
|
</para>
|
|
|
|
<para>
|
|
If building your own tarball, do so using this command:
|
|
<literallayout class='monospaced'>
|
|
$ bitbake buildtools-tarball
|
|
</literallayout>
|
|
<note>
|
|
The <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>
|
|
variable determines whether you build tools for a 32-bit
|
|
or 64-bit system.
|
|
</note>
|
|
Once the build completes, you can find the file that installs the
|
|
the tools in the <filename>tmp/deploy/sdk</filename> subdirectory
|
|
of the
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
|
|
The file used to install the tarball has the string "buildtools"
|
|
in the name.
|
|
</para>
|
|
|
|
<para>
|
|
After you have either built the tarball or downloaded it, you need
|
|
to install it.
|
|
Install the tools by executing the <filename>*.sh</filename> file.
|
|
During execution, a prompt appears that allows you to choose the
|
|
installation directory.
|
|
For example, you could choose the following:
|
|
<literallayout class='monospaced'>
|
|
/home/your-username/sdk
|
|
</literallayout>
|
|
</para>
|
|
|
|
<para>
|
|
The final step before you can actually use the tools is to source
|
|
the tools environment with a command like the following:
|
|
<literallayout class='monospaced'>
|
|
$ source /home/your-username/sdk/environment-setup-i586-poky-linux
|
|
</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>
|
|
</section>
|
|
</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>
|
|
<listitem><para><emphasis>Releases:</emphasis> Stable, tested releases are available through
|
|
<ulink url='&YOCTO_DL_URL;/releases/yocto/'/>.</para></listitem>
|
|
<listitem><para><emphasis>Nightly Builds:</emphasis> These releases are available at
|
|
<ulink url='http://autobuilder.yoctoproject.org/nightly'/>.
|
|
These builds include Yocto Project releases, meta-toolchain tarball installation scripts, and
|
|
experimental builds.</para></listitem>
|
|
<listitem><para><emphasis>Yocto Project Website:</emphasis> You can find releases
|
|
of the Yocto Project and supported BSPs at the
|
|
<ulink url='&YOCTO_HOME_URL;'>Yocto Project website</ulink>.
|
|
Along with these downloads, you can find lots of other information at this site.
|
|
</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>.
|
|
You can set up the Source Directory by downloading a Yocto Project release tarball and unpacking it,
|
|
or by cloning a copy of the upstream
|
|
<ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink> Git repository.
|
|
For information on both these methods, see the
|
|
"<ulink url='&YOCTO_DOCS_DEV_URL;#getting-setup'>Getting Set Up</ulink>"
|
|
section in the Yocto Project Development Manual.
|
|
</para>
|
|
</section>
|
|
|
|
</chapter>
|
|
<!--
|
|
vim: expandtab tw=80 ts=4
|
|
-->
|