aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/Makefile6
-rw-r--r--documentation/adt-manual/adt-prepare.xml264
-rw-r--r--documentation/adt-manual/figures/using-a-pre-built-image.png (renamed from documentation/yocto-project-qs/figures/using-a-pre-built-image.png)bin12733 -> 12733 bytes
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml3
-rw-r--r--documentation/dev-manual/dev-manual-model.xml18
-rw-r--r--documentation/dev-manual/dev-manual-newbie.xml2
-rw-r--r--documentation/dev-manual/dev-manual-start.xml22
-rwxr-xr-xdocumentation/ref-manual/figures/building-an-image.png (renamed from documentation/yocto-project-qs/figures/building-an-image.png)bin14891 -> 14891 bytes
-rw-r--r--documentation/ref-manual/introduction.xml16
-rw-r--r--documentation/ref-manual/ref-bitbake.xml2
-rw-r--r--documentation/ref-manual/usingpoky.xml20
-rw-r--r--documentation/toaster-manual/toaster-manual-setup-and-use.xml8
-rw-r--r--documentation/toaster-manual/toaster-manual-start.xml2
-rw-r--r--documentation/yocto-project-qs/yocto-project-qs.xml1705
14 files changed, 965 insertions, 1103 deletions
diff --git a/documentation/Makefile b/documentation/Makefile
index 71420ac2bb..9197a40a78 100644
--- a/documentation/Makefile
+++ b/documentation/Makefile
@@ -147,7 +147,6 @@ ifeq ($(DOC),yocto-project-qs)
XSLTOPTS = --xinclude
ALLPREQ = html eclipse tarball
TARFILES = yocto-project-qs.html qs-style.css figures/yocto-environment.png \
- figures/building-an-image.png figures/using-a-pre-built-image.png \
figures/yocto-project-transp.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
@@ -263,7 +262,7 @@ TARFILES = ref-manual.html ref-style.css figures/poky-title.png \
figures/images.png figures/sdk.png figures/source-fetching.png \
figures/patching.png figures/configuration-compile-autoreconf.png \
figures/analysis-for-package-splitting.png figures/image-generation.png \
- figures/sdk-generation.png
+ figures/sdk-generation.png figures/building-an-image.png
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
FIGURES = figures
STYLESHEET = $(DOC)/*.css
@@ -274,7 +273,8 @@ ifeq ($(DOC),adt-manual)
XSLTOPTS = --xinclude
ALLPREQ = html eclipse tarball
TARFILES = adt-manual.html adt-style.css figures/adt-title.png \
- eclipse
+ figures/using-a-pre-built-image.png \
+ eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
FIGURES = figures
STYLESHEET = $(DOC)/*.css
diff --git a/documentation/adt-manual/adt-prepare.xml b/documentation/adt-manual/adt-prepare.xml
index 814adbd615..01f569f805 100644
--- a/documentation/adt-manual/adt-prepare.xml
+++ b/documentation/adt-manual/adt-prepare.xml
@@ -465,9 +465,12 @@
<para>
To get the kernel and filesystem images, you either have to build them or download
pre-built versions.
- You can find examples for both these situations in the
- "<ulink url='&YOCTO_DOCS_QS_URL;#test-run'>A Quick Test Run</ulink>" section of
- the Yocto Project Quick Start.
+ For an example of how to build these images, see the
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-buiding-images'>Buiding Images</ulink>"
+ section of the Yocto Project Quick Start.
+ For an example of downloading pre-build versions, see the
+ "<link linkend='using-pre-built'>Example Using Pre-Built Binaries and QEMU</link>"
+ section.
</para>
<para>
@@ -720,6 +723,261 @@
variable in the Yocto Project Reference Manual's variable glossary.
</para>
</section>
+
+ <section id='using-pre-built'>
+ <title>Example Using Pre-Built Binaries and QEMU</title>
+
+ <para>
+ If hardware, libraries and services are stable, you can get started by using a pre-built binary
+ of the filesystem image, kernel, and toolchain and run it using the QEMU emulator.
+ This scenario is useful for developing application software.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="figures/using-a-pre-built-image.png" format="PNG" align='center' scalefit='1'/>
+ </imageobject>
+ <caption>
+ <para>Using a Pre-Built Image</para>
+ </caption>
+ </mediaobject>
+
+ <para>
+ For this scenario, you need to do several things:
+ </para>
+
+ <itemizedlist>
+ <listitem><para>Install the appropriate stand-alone toolchain tarball.</para></listitem>
+ <listitem><para>Download the pre-built image that will boot with QEMU.
+ You need to be sure to get the QEMU image that matches your target machine’s
+ architecture (e.g. x86, ARM, etc.).</para></listitem>
+ <listitem><para>Download the filesystem image for your target machine's architecture.
+ </para></listitem>
+ <listitem><para>Set up the environment to emulate the hardware and then start the QEMU emulator.
+ </para></listitem>
+ </itemizedlist>
+
+ <section id='installing-the-toolchain'>
+ <title>Installing the Toolchain</title>
+
+ <para>
+ You can download a tarball installer, which includes the
+ pre-built toolchain, the <filename>runqemu</filename>
+ script, and support files from the appropriate directory under
+ <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
+ Toolchains are available for 32-bit and 64-bit x86 development
+ systems from the <filename>i686</filename> and
+ <filename>x86_64</filename> directories, respectively.
+ The toolchains the Yocto Project provides are based off the
+ <filename>core-image-sato</filename> image and contain
+ libraries appropriate for developing against that image.
+ Each type of development system supports five or more target
+ architectures.
+ </para>
+
+ <para>
+ The names of the tarball installer scripts are such that a
+ string representing the host system appears first in the
+ filename and then is immediately followed by a string
+ representing the target architecture.
+ </para>
+
+ <literallayout class='monospaced'>
+ poky-glibc-<replaceable>host_system</replaceable>-<replaceable>image_type</replaceable>-<replaceable>arch</replaceable>-toolchain-<replaceable>release_version</replaceable>.sh
+
+ Where:
+ <replaceable>host_system</replaceable> is a string representing your development system:
+
+ i686 or x86_64.
+
+ <replaceable>image_type</replaceable> is a string representing the image you wish to
+ develop a Software Development Toolkit (SDK) for use against.
+ The Yocto Project builds toolchain installers using the
+ following BitBake command:
+
+ bitbake core-image-sato -c populate_sdk
+
+ <replaceable>arch</replaceable> is a string representing the tuned target architecture:
+
+ i586, x86_64, powerpc, mips, armv7a or armv5te
+
+ <replaceable>release_version</replaceable> is a string representing the release number of the
+ Yocto Project:
+
+ &DISTRO;, &DISTRO;+snapshot
+ </literallayout>
+
+ <para>
+ For example, the following toolchain installer is for a 64-bit
+ development host system and a i586-tuned target architecture
+ based off the SDK for <filename>core-image-sato</filename>:
+ <literallayout class='monospaced'>
+ poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
+ </literallayout>
+ </para>
+
+ <para>
+ Toolchains are self-contained and by default are installed into
+ <filename>/opt/poky</filename>.
+ However, when you run the toolchain installer, you can choose an
+ installation directory.
+ </para>
+
+ <para>
+ The following command shows how to run the installer given a toolchain tarball
+ for a 64-bit x86 development host system and a 32-bit x86 target architecture.
+ You must change the permissions on the toolchain
+ installer script so that it is executable.
+ </para>
+
+ <para>
+ The example assumes the toolchain installer is located in <filename>~/Downloads/</filename>.
+ <note>
+ If you do not have write permissions for the directory into which you are installing
+ the toolchain, the toolchain installer notifies you and exits.
+ Be sure you have write permissions in the directory and run the installer again.
+ </note>
+ </para>
+
+ <para>
+ <literallayout class='monospaced'>
+ $ ~/Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
+ </literallayout>
+ </para>
+
+ <para>
+ For more information on how to install tarballs, see the
+ "<ulink url='&YOCTO_DOCS_ADT_URL;#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>" and
+ "<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-toolchain-from-within-the-build-tree'>Using BitBake and the Build Directory</ulink>" sections in the Yocto Project Application Developer's Guide.
+ </para>
+ </section>
+
+ <section id='downloading-the-pre-built-linux-kernel'>
+ <title>Downloading the Pre-Built Linux Kernel</title>
+
+ <para>
+ You can download the pre-built Linux kernel suitable for running in the QEMU emulator from
+ <ulink url='&YOCTO_QEMU_DL_URL;'></ulink>.
+ Be sure to use the kernel that matches the architecture you want to simulate.
+ Download areas exist for the five supported machine architectures:
+ <filename>qemuarm</filename>, <filename>qemumips</filename>, <filename>qemuppc</filename>,
+ <filename>qemux86</filename>, and <filename>qemux86-64</filename>.
+ </para>
+
+ <para>
+ Most kernel files have one of the following forms:
+ <literallayout class='monospaced'>
+ *zImage-qemu<replaceable>arch</replaceable>.bin
+ vmlinux-qemu<replaceable>arch</replaceable>.bin
+
+ Where:
+ <replaceable>arch</replaceable> is a string representing the target architecture:
+ x86, x86-64, ppc, mips, or arm.
+ </literallayout>
+ </para>
+
+ <para>
+ You can learn more about downloading a Yocto Project kernel in the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Yocto Project Kernel</ulink>"
+ bulleted item in the Yocto Project Development Manual.
+ </para>
+ </section>
+
+ <section id='downloading-the-filesystem'>
+ <title>Downloading the Filesystem</title>
+
+ <para>
+ You can also download the filesystem image suitable for your target architecture from
+ <ulink url='&YOCTO_QEMU_DL_URL;'></ulink>.
+ Again, be sure to use the filesystem that matches the architecture you want
+ to simulate.
+ </para>
+
+ <para>
+ The filesystem image has two tarball forms: <filename>ext3</filename> and
+ <filename>tar</filename>.
+ You must use the <filename>ext3</filename> form when booting an image using the
+ QEMU emulator.
+ The <filename>tar</filename> form can be flattened out in your host development system
+ and used for build purposes with the Yocto Project.
+ <literallayout class='monospaced'>
+ core-image-<replaceable>profile</replaceable>-qemu<replaceable>arch</replaceable>.ext3
+ core-image-<replaceable>profile</replaceable>-qemu<replaceable>arch</replaceable>.tar.bz2
+
+ Where:
+ <replaceable>profile</replaceable> is the filesystem image's profile:
+ lsb, lsb-dev, lsb-sdk, lsb-qt3, minimal, minimal-dev, sato,
+ sato-dev, or sato-sdk. For information on these types of image
+ profiles, see the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
+ chapter in the Yocto Project Reference Manual.
+
+ <replaceable>arch</replaceable> is a string representing the target architecture:
+ x86, x86-64, ppc, mips, or arm.
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='setting-up-the-environment-and-starting-the-qemu-emulator'>
+ <title>Setting Up the Environment and Starting the QEMU Emulator</title>
+
+ <para>
+ Before you start the QEMU emulator, you need to set up the emulation environment.
+ The following command form sets up the emulation environment.
+ <literallayout class='monospaced'>
+ $ source &YOCTO_ADTPATH_DIR;/environment-setup-<replaceable>arch</replaceable>-poky-linux-<replaceable>if</replaceable>
+
+ Where:
+ <replaceable>arch</replaceable> is a string representing the target architecture:
+ i586, x86_64, ppc603e, mips, or armv5te.
+
+ <replaceable>if</replaceable> is a string representing an embedded application binary interface.
+ Not all setup scripts include this string.
+ </literallayout>
+ </para>
+
+ <para>
+ Finally, this command form invokes the QEMU emulator
+ <literallayout class='monospaced'>
+ $ runqemu <replaceable>qemuarch</replaceable> <replaceable>kernel-image</replaceable> <replaceable>filesystem-image</replaceable>
+
+ Where:
+ <replaceable>qemuarch</replaceable> is a string representing the target architecture: qemux86, qemux86-64,
+ qemuppc, qemumips, or qemuarm.
+
+ <replaceable>kernel-image</replaceable> is the architecture-specific kernel image.
+
+ <replaceable>filesystem-image</replaceable> is the .ext3 filesystem image.
+
+ </literallayout>
+ </para>
+
+ <para>
+ Continuing with the example, the following two commands setup the emulation
+ environment and launch QEMU.
+ This example assumes the root filesystem (<filename>.ext3</filename> file) and
+ the pre-built kernel image file both reside in your home directory.
+ The kernel and filesystem are for a 32-bit target architecture.
+ <literallayout class='monospaced'>
+ $ cd $HOME
+ $ source &YOCTO_ADTPATH_DIR;/environment-setup-i586-poky-linux
+ $ runqemu qemux86 bzImage-qemux86.bin \
+ core-image-sato-qemux86.ext3
+ </literallayout>
+ </para>
+
+ <para>
+ The environment in which QEMU launches varies depending on the filesystem image and on the
+ target architecture.
+ For example, if you source the environment for the ARM target
+ architecture and then boot the minimal QEMU image, the emulator comes up in a new
+ shell in command-line mode.
+ However, if you boot the SDK image, QEMU comes up with a GUI.
+ <note>Booting the PPC image results in QEMU launching in the same shell in
+ command-line mode.</note>
+ </para>
+ </section>
+</section>
+
</chapter>
<!--
vim: expandtab tw=80 ts=4
diff --git a/documentation/yocto-project-qs/figures/using-a-pre-built-image.png b/documentation/adt-manual/figures/using-a-pre-built-image.png
index b03130d123..b03130d123 100644
--- a/documentation/yocto-project-qs/figures/using-a-pre-built-image.png
+++ b/documentation/adt-manual/figures/using-a-pre-built-image.png
Binary files differ
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index a929481633..e927a89bee 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -5021,9 +5021,6 @@
Furthermore, the <link linkend='build-directory'>Build Directory</link> is
<filename>build</filename> and is located in <filename>poky</filename> and
the kernel is based on the Linux 3.4 kernel.
- For general information on how to configure the most efficient build, see the
- "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section
- in the Yocto Project Quick Start.
</para>
<para>
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml
index 03eb5f1176..9c549d7464 100644
--- a/documentation/dev-manual/dev-manual-model.xml
+++ b/documentation/dev-manual/dev-manual-model.xml
@@ -124,7 +124,7 @@
development using the Yocto Project</emphasis>: See the
"<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distribution</ulink>"
and the
- "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both
+ "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>" sections both
in the Yocto Project Quick Start for requirements.</para></listitem>
<listitem><para><emphasis>Establish a local copy of the project files on your
system</emphasis>: You need this <link linkend='source-directory'>Source
@@ -223,7 +223,7 @@
"<link linkend='enabling-your-layer'>Enabling Your Layer</link>" section
for information on how to let the build system know about your new layer.</para>
<para>The entire process for building an image is overviewed in the section
- "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>" section
of the Yocto Project Quick Start.
You might want to reference this information.</para></listitem>
<listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded build system
@@ -451,7 +451,7 @@
<listitem><para><emphasis>Set up your host development system to support
development using the Yocto Project</emphasis>: See
"<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distribution</ulink>" and
- "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both
+ "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>" sections both
in the Yocto Project Quick Start for requirements.</para></listitem>
<listitem><para><emphasis>Establish a local copy of project files on your
system</emphasis>: Having the <link linkend='source-directory'>Source
@@ -476,7 +476,7 @@
(<filename>local.conf</filename> and <filename>bblayers.conf</filename>)
are configured appropriately.</para>
<para>The entire process for building an image is overviewed in the
- "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
section of the Yocto Project Quick Start.
You might want to reference this information.
You can find more information on BitBake in the
@@ -617,7 +617,7 @@
<para>For information on pre-built kernel image naming schemes for images
that can run on the QEMU emulator, see the
"<ulink url='&YOCTO_DOCS_QS_URL;#downloading-the-pre-built-linux-kernel'>Downloading the Pre-Built Linux Kernel</ulink>"
- section in the Yocto Project Quick Start.</para></listitem>
+ section in the Yocto Project Application Developer's Guide.</para></listitem>
<listitem><para><emphasis>Install the ADT</emphasis>:
The ADT provides a target-specific cross-development toolchain, the root filesystem,
the QEMU emulator, and other tools that can help you develop your application.
@@ -646,7 +646,7 @@
section in the Yocto Project Application Developer's Guide for information
and the
"<ulink url='&YOCTO_DOCS_QS_URL;#installing-the-toolchain'>Installing the Toolchain</ulink>"
- in the Yocto Project Quick Start for information on finding and installing
+ in the Yocto Project Application Developer's Guide for information on finding and installing
the correct toolchain based on your host development system and your target
architecture.
</para></listitem>
@@ -1163,7 +1163,7 @@
If the architecture you need is not listed in
the menu, you will need to build the image.
See the
- "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
section of the Yocto Project Quick Start for
more information.</para></listitem>
</itemizedlist>
@@ -1740,7 +1740,7 @@
For information on how to set up a local copy of the
<filename>poky</filename> repository and on how to
build a Yocto Project image, see the
- "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
section in the Yocto Project Quick Start.
</para></listitem>
<listitem><para>
@@ -2375,7 +2375,7 @@
<filename>bitbake -c cleanall <replaceable>package</replaceable></filename>).
Modifications will also disappear if you use the <filename>rm_work</filename>
feature as described in the
- "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
section of the Yocto Project Quick Start.
</note></para></listitem>
<listitem><para><emphasis>Generate the Patch:</emphasis>
diff --git a/documentation/dev-manual/dev-manual-newbie.xml b/documentation/dev-manual/dev-manual-newbie.xml
index 2c5fa683e0..70fa96975d 100644
--- a/documentation/dev-manual/dev-manual-newbie.xml
+++ b/documentation/dev-manual/dev-manual-newbie.xml
@@ -709,7 +709,7 @@
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 Packages</ulink>" section are
+ "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>" section 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,
diff --git a/documentation/dev-manual/dev-manual-start.xml b/documentation/dev-manual/dev-manual-start.xml
index 36a3593c19..db989b7bfa 100644
--- a/documentation/dev-manual/dev-manual-start.xml
+++ b/documentation/dev-manual/dev-manual-start.xml
@@ -73,7 +73,7 @@
</para></listitem>
<listitem><para><emphasis>Packages:</emphasis> The OpenEmbedded build system
requires that certain packages exist on your development system (e.g. Python 2.7).
- See "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>"
+ See "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>"
section in the Yocto Project Quick Start and the
"<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
section in the Yocto Project Reference Manual for the exact
@@ -125,6 +125,20 @@
wiki page</ulink>, which describes how to create local
Git repositories for both
<filename>poky</filename> and <filename>meta-intel</filename>.
+ </para>
+ <para>
+ You can also get the Yocto Project Files by downloading
+ Yocto Project releases from the
+ <ulink url="&YOCTO_HOME_URL;">Yocto Project website</ulink>.
+ From the website, you just click "Downloads" in the navigation
+ pane to the left to display all Yocto Project downloads.
+ Current and archived releases are available for download.
+ Nightly and developmental builds are also maintained at
+ <ulink url="&YOCTO_AB_NIGHTLY_URL;"></ulink>.
+ One final site you can visit for information on Yocto Project
+ releases is the
+ <ulink url='&YOCTO_WIKI_URL;/wiki/Releases'>Releases</ulink>
+ wiki.
</para></listitem>
<listitem id='local-kernel-files'><para><emphasis>Yocto Project Kernel:</emphasis>
If you are going to be making modifications to a supported Yocto Project kernel, you
@@ -277,7 +291,7 @@
<para>
The build process creates an entire Linux distribution, including the toolchain, from source.
For more information on this topic, see the
- "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
section in the Yocto Project Quick Start.
</para>
@@ -349,8 +363,8 @@
by sourcing an environment setup script.
Finally, you start the QEMU emulator.
You can find details on all these steps in the
- "<ulink url='&YOCTO_DOCS_QS_URL;#using-pre-built'>Using Pre-Built Binaries and QEMU</ulink>"
- section of the Yocto Project Quick Start.
+ "<ulink url='&YOCTO_DOCS_QS_URL;#using-pre-built'>Example Using Pre-Built Binaries and QEMU</ulink>"
+ section of the Yocto Project Application Developer's Guide.
You can learn more about using QEMU with the Yocto Project in the
"<link linkend='dev-manual-qemu'>Using the Quick EMUlator (QEMU)</link>"
section.
diff --git a/documentation/yocto-project-qs/figures/building-an-image.png b/documentation/ref-manual/figures/building-an-image.png
index 1fbea5ab00..1fbea5ab00 100755
--- a/documentation/yocto-project-qs/figures/building-an-image.png
+++ b/documentation/ref-manual/figures/building-an-image.png
Binary files differ
diff --git a/documentation/ref-manual/introduction.xml b/documentation/ref-manual/introduction.xml
index cc3f6b075c..5250e26be7 100644
--- a/documentation/ref-manual/introduction.xml
+++ b/documentation/ref-manual/introduction.xml
@@ -110,7 +110,7 @@
<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
+ "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</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.
@@ -212,6 +212,20 @@
<para>
The following list shows the required packages by function
given a supported Ubuntu or Debian Linux distribution:
+ <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>
<itemizedlist>
<listitem><para><emphasis>Essentials:</emphasis>
Packages needed to build an image on a headless
diff --git a/documentation/ref-manual/ref-bitbake.xml b/documentation/ref-manual/ref-bitbake.xml
index 30aff6431f..dc402dbffc 100644
--- a/documentation/ref-manual/ref-bitbake.xml
+++ b/documentation/ref-manual/ref-bitbake.xml
@@ -255,7 +255,7 @@
It is worth noting that you can greatly speed up the build time by properly setting
the <filename>BB_NUMBER_THREADS</filename> variable.
See the
- "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
section in the Yocto Project Quick Start for more information.
</para>
diff --git a/documentation/ref-manual/usingpoky.xml b/documentation/ref-manual/usingpoky.xml
index e2e05b2514..ca87962e24 100644
--- a/documentation/ref-manual/usingpoky.xml
+++ b/documentation/ref-manual/usingpoky.xml
@@ -19,7 +19,7 @@
for less obvious aspects of the build process.
For general information on how to build an image using the OpenEmbedded build
system, see the
- "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
section of the Yocto Project Quick Start.
</para>
@@ -27,6 +27,20 @@
<title>Build Overview</title>
<para>
+ In the development environment you will need to build an image whenever you change hardware
+ support, add or change system libraries, or add or change services that have dependencies.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="figures/building-an-image.png" format="PNG" align='center' scalefit='1'/>
+ </imageobject>
+ <caption>
+ <para>Building an Image</para>
+ </caption>
+ </mediaobject>
+
+ <para>
The first thing you need to do is set up the OpenEmbedded build
environment by sourcing an environment setup script
(i.e.
@@ -99,8 +113,8 @@
<filename class="directory">tmp/deploy/images</filename>.
For information on how to run pre-built images such as <filename>qemux86</filename>
and <filename>qemuarm</filename>, see the
- "<ulink url='&YOCTO_DOCS_QS_URL;#using-pre-built'>Using Pre-Built Binaries and QEMU</ulink>"
- section in the Yocto Project Quick Start.
+ "<ulink url='&YOCTO_DOCS_QS_URL;#using-pre-built'>Example Using Pre-Built Binaries and QEMU</ulink>"
+ section in the Yocto Project Application Developer's Guide.
For information about how to install these images, see the documentation for your
particular board or machine.
</para>
diff --git a/documentation/toaster-manual/toaster-manual-setup-and-use.xml b/documentation/toaster-manual/toaster-manual-setup-and-use.xml
index a1546858d9..869d2490ef 100644
--- a/documentation/toaster-manual/toaster-manual-setup-and-use.xml
+++ b/documentation/toaster-manual/toaster-manual-setup-and-use.xml
@@ -32,7 +32,7 @@
Get the requirements set up so that you can use the
Yocto Project to build images.
See the
- "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>What You Need and How You Get It</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>"
section in the Yocto Project Quick Start for information.
</para></listitem>
<listitem><para><emphasis>Source your Build Environment Setup Script:</emphasis>
@@ -132,7 +132,7 @@
Get the requirements set up so that you can use the
Yocto Project to build images.
See the
- "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>What You Need and How You Get It</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>"
section in the Yocto Project Quick Start for information.
</para></listitem>
<listitem><para><emphasis>Install and Set up the Database Server:</emphasis>
@@ -394,7 +394,7 @@
Get the requirements set up so that you can use the
Yocto Project to build images.
See the
- "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>What You Need and How You Get It</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>"
section in the Yocto Project Quick Start for information.
</para></listitem>
<listitem><para><emphasis>Start Toaster:</emphasis>
@@ -491,7 +491,7 @@
Get the requirements set up so that you can use the
Yocto Project to build images.
See the
- "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>What You Need and How You Get It</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>"
section in the Yocto Project Quick Start for information.
</para></listitem>
<listitem><para><emphasis>Be Sure Management is Enabled:</emphasis>
diff --git a/documentation/toaster-manual/toaster-manual-start.xml b/documentation/toaster-manual/toaster-manual-start.xml
index 2a77c90de7..fbdb5ecb90 100644
--- a/documentation/toaster-manual/toaster-manual-start.xml
+++ b/documentation/toaster-manual/toaster-manual-start.xml
@@ -18,7 +18,7 @@
You first need to be sure your build system is set up to run
the Yocto Project.
See the
- "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>What You Need and How You Get It</ulink>"
+ "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>"
section in the Yocto Project Quick Start for information on how
to set up your system for the Yocto Project.
</para>
diff --git a/documentation/yocto-project-qs/yocto-project-qs.xml b/documentation/yocto-project-qs/yocto-project-qs.xml
index a8344be1ea..5da7314bd6 100644
--- a/documentation/yocto-project-qs/yocto-project-qs.xml
+++ b/documentation/yocto-project-qs/yocto-project-qs.xml
@@ -32,1013 +32,569 @@
</abstract>
</articleinfo>
-<section id='welcome'>
- <title>Welcome!</title>
- <para>
- Welcome to the Yocto Project!
- The Yocto Project is an open-source collaboration project focused on
- embedded Linux developers.
- Among other things, the Yocto Project uses a build system based on the
- OpenEmbedded (OE) project, which uses the
- <ulink url='&YOCTO_DOCS_DEV_URL;#bitbake-term'>BitBake</ulink>
- tool, to construct complete Linux images.
- The BitBake and OE components are combined together to form
- <ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink>,
- a reference build system.
- </para>
-
- <para>
- If you don't have a system that runs Linux and you want to give the Yocto Project a test run,
- you might consider using the Yocto Project Build Appliance.
- The Build Appliance allows you to build and boot a custom embedded Linux image with the Yocto
- Project using a non-Linux development system.
- See the <ulink url='https://www.yoctoproject.org/tools-resources/projects/build-appliance'>Yocto
- Project Build Appliance</ulink> for more information.
- </para>
-
- <para>
- On the other hand, if you know all about open-source development, Linux development environments,
- Git source repositories and the like and you just want some quick information that lets you try out
- the Yocto Project on your Linux system, skip right to the
- "<link linkend='super-user'>Super User</link>" section at the end of this quick start.
- </para>
-
- <para>
- For the rest of you, this short document will give you some basic information about the environment and
- let you experience it in its simplest form.
- After reading this document, you will have a basic understanding of what the Yocto Project is
- and how to use some of its core components.
- This document steps you through a simple example showing you how to build a small image
- and run it using the Quick EMUlator (QEMU emulator).
- </para>
-
- <para>
- For more detailed information on the Yocto Project, you should check out these resources:
- <itemizedlist>
- <listitem><para><emphasis>Website:</emphasis> The <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>
- provides the latest builds, breaking news, full development documentation, and a rich Yocto
- Project Development Community into which you can tap.
- </para></listitem>
- <listitem><para><emphasis>FAQs:</emphasis> Lists commonly asked Yocto Project questions and answers.
- You can find two FAQs: <ulink url='&YOCTO_WIKI_URL;/wiki/FAQ'>Yocto Project FAQ</ulink> on
- a wiki, and the
- "<ulink url='&YOCTO_DOCS_REF_URL;#faq'>FAQ</ulink>" chapter in
- the Yocto Project Reference Manual.
- </para></listitem>
- <listitem><para><emphasis>Developer Screencast:</emphasis> The
- <ulink url='http://vimeo.com/36450321'>Getting Started with the Yocto Project - New Developer Screencast Tutorial</ulink>
- provides a 30-minute video created for users unfamiliar with
- the Yocto Project but familiar with Linux build systems.
- While this screencast is somewhat dated, the introductory
- and fundamental concepts are useful for the beginner.
- </para></listitem>
- </itemizedlist>
- </para>
-</section>
-
-<section id='yp-intro'>
- <title>Introducing the Yocto Project Development Environment</title>
- <para>
- The Yocto Project through the OpenEmbedded build system provides an
- open source development environment targeting the ARM, MIPS, PowerPC
- and x86 architectures for a variety of platforms including x86-64 and
- emulated ones.
- You can use components from the Yocto Project to design, develop,
- build, debug, simulate, and test the complete software stack using
- Linux, the X Window System, GTK+ frameworks, and Qt frameworks.
- </para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="figures/yocto-environment.png"
- format="PNG" align='center' scalefit='1' width="100%"/>
- </imageobject>
- <caption>
- <para>The Yocto Project Development Environment</para>
- </caption>
- </mediaobject>
-
- <para>
- Here are some highlights for the Yocto Project:
- </para>
-
- <itemizedlist>
- <listitem>
- <para>Provides a recent Linux kernel along with a set of system commands and libraries suitable for the embedded environment.</para>
- </listitem>
- <listitem>
- <para>Makes available system components such as X11, GTK+, Qt, Clutter, and SDL
- (among others) so you can create a rich user experience on devices
- that have display hardware.
- For devices that do not have a display or where you wish to use alternative UI
- frameworks, these components need not be installed.</para>
- </listitem>
- <listitem>
- <para>Creates a focused and stable core compatible with the OpenEmbedded
- project with which you can easily and reliably build and develop.</para>
- </listitem>
- <listitem>
- <para>Fully supports a wide range of hardware and device emulation through the QEMU
- Emulator.</para>
- </listitem>
- </itemizedlist>
-
- <para>
- The Yocto Project can generate images for many kinds of devices.
- However, the standard example machines target QEMU full-system emulation for x86, x86-64, ARM, MIPS,
- and PPC-based architectures as well as specific hardware such as the
- <trademark class='registered'>Intel</trademark> Desktop Board DH55TC.
- Because an image developed with the Yocto Project can boot inside a QEMU emulator, the
- development environment works nicely as a test platform for developing embedded software.
- </para>
-
- <para>
- Another important Yocto Project feature is the Sato reference User
- Interface.
- This optional UI that is based on GTK+ is intended for devices with
- restricted screen sizes.
- The UI sits neatly on top of a device using the
- GTK+ stack and provides a well-defined user experience.
- Implemented in its own layer, it makes it clear to developers how they
- can implement their own user interface on top of a Linux image created
- with the Yocto Project.
- </para>
-</section>
-
-<section id='yp-resources'>
- <title>What You Need and How You Get It</title>
-
- <para>
- You need these things to develop projects in the Yocto Project
- environment:
- </para>
-
- <itemizedlist>
- <listitem><para>
- A host system with a minimum of 50 Gbytes of free disk space that
- is running a supported Linux distribution (i.e. recent releases
- of Fedora, openSUSE, CentOS, Debian, or Ubuntu).
- If the host system supports multiple cores and threads, you can
- configure the Yocto Project build system to significantly
- decrease the time needed to build images.
- </para></listitem>
- <listitem><para>
- Appropriate packages installed on the system you are using for
- builds.
- </para></listitem>
- <listitem><para>
- A release of the Yocto Project.
- </para></listitem>
- </itemizedlist>
-
- <section id='the-linux-distro'>
- <title>The Linux Distribution</title>
-
- <para>
- The Yocto Project team is continually verifying more and more Linux
- distributions with each release.
- In general, if you have the current release minus one of the following
- distributions you should have no problems.
- <itemizedlist>
- <listitem><para>Ubuntu</para></listitem>
- <listitem><para>Fedora</para></listitem>
- <listitem><para>openSUSE</para></listitem>
- <listitem><para>CentOS</para></listitem>
- <listitem><para>Debian</para></listitem>
- </itemizedlist>
- For a more detailed list of distributions that support the Yocto Project,
- see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>" section
- in the Yocto Project Reference Manual.
- </para>
+ <section id='welcome'>
+ <title>Welcome!</title>
<para>
- The OpenEmbedded build system should be able to run on any modern
- distribution that has the following versions for Git, tar, and
- Python.
- <itemizedlist>
- <listitem><para>Git 1.7.8 or greater</para></listitem>
- <listitem><para>tar 1.24 or greater</para></listitem>
- <listitem><para>Python 2.7.3 or greater excluding Python
- 3.x, which is not supported.</para></listitem>
- </itemizedlist>
- Earlier releases of Python are known to not work and the
- system does not support Python 3 at this time.
- If your system does not meet any of these three listed
- version requirements, you can
- take steps to prepare the system so that you can still use the build
- system.
- See the
- "<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
- section in the Yocto Project Reference Manual for information.
- </para>
- <para>
- This document assumes you are running one of the previously noted
- distributions on your Linux-based host systems.
- </para>
- <note>
- <para>
- If you attempt to use a distribution not in the above list,
- you may or may not have success.
- Yocto Project releases are tested against the stable Linux
- distributions listed in the
- "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
- section of the Yocto Project Reference Manual.
- 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>
- </section>
-
- <section id='packages'>
- <title>The Packages</title>
-
- <para>
- Packages and package installation vary depending on your development system
- and on your intent.
- For example, if you want to build an image that can run
- on QEMU in graphical mode (a minimal, basic build
- requirement), then the number of packages is different than if you want to
- build an image on a headless system or build out the Yocto Project
- documentation set.
- Collectively, the number of required packages is large
- if you want to be able to cover all cases.
- <note>In general, you need to have root access and then install the
- required packages.
- Thus, the commands in the following section may or may not work
- depending on whether or not your Linux distribution has
- <filename>sudo</filename> installed.</note>
- </para>
-
- <para>
- The next few sections list, by supported Linux Distributions, the required
- packages needed to build an image that runs on QEMU in graphical mode
- (e.g. essential plus graphics support).
+ Welcome to the Yocto Project!
+ The Yocto Project is an open-source collaboration project whose
+ focus is developers of embedded Linux systems.
+ Among other things, the Yocto Project uses a build host based
+ on the OpenEmbedded (OE) project, which uses the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#bitbake-term'>BitBake</ulink>
+ tool, to construct complete Linux images.
+ The BitBake and OE components are combined together to form
+ a reference build host, historically known as
+ <ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink>.
</para>
<para>
- For lists of required packages for other scenarios, see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
- section in the Yocto Project Reference Manual.
+ If you do not have a system that runs Linux and you want to give
+ the Yocto Project a test run, you might consider using the Yocto
+ Project Build Appliance.
+ The Build Appliance allows you to build and boot a custom embedded
+ Linux image with the Yocto Project using a non-Linux development
+ system.
+ See the
+ <ulink url='https://www.yoctoproject.org/tools-resources/projects/build-appliance'>Yocto Project Build Appliance</ulink>
+ for more information.
</para>
- <section id='ubuntu'>
- <title>Ubuntu and Debian</title>
-
- <para>
- The essential and graphical support packages you need for a
- supported Ubuntu or Debian distribution are shown in the
- following command:
- <literallayout class='monospaced'>
- $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; libsdl1.2-dev xterm
- </literallayout>
- <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>
- </para>
- </section>
-
- <section id='fedora'>
- <title>Fedora</title>
-
- <para>
- The essential and graphical packages you need for a supported
- Fedora distribution are shown in the following command:
- <literallayout class='monospaced'>
- $ sudo yum install &FEDORA_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
- </literallayout>
- </para>
- </section>
-
- <section id='opensuse'>
- <title>OpenSUSE</title>
-
- <para>
- The essential and graphical packages you need for a supported
- OpenSUSE distribution are shown in the following command:
- <literallayout class='monospaced'>
- $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; libSDL-devel xterm
- </literallayout>
- </para>
- </section>
-
- <section id='centos'>
- <title>CentOS</title>
-
- <para>
- The essential and graphical packages you need for a supported
- CentOS distribution are shown in the following command:
- <literallayout class='monospaced'>
- $ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
- </literallayout>
- <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>
- </para>
- </section>
- </section>
-
- <section id='releases'>
- <title>Yocto Project Release</title>
-
<para>
- It is recommended that you get the latest Yocto Project files
- by setting up (cloning in
- <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> terms) a local
- copy of the
- <filename>poky</filename> Git repository on your host development
- system.
- Doing so allows you to contribute back to the Yocto Project project.
- For information on how to get set up using this method, see the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#local-yp-release'>Yocto
- Project Release</ulink>" item in the Yocto Project Development Manual.
+ This quick start is written so that you can quickly get a host
+ build host set up to use the Yocto Project and then build some
+ Linux images.
+ Rather than go into great detail about the Yocto Project and its
+ many capabilities, this quick start provides the minimal
+ information you need to try out the Yocto Project using a
+ supported Linux build host.
+ Reading and using the quick start should result in you having a
+ basic understanding of what the Yocto Project is and how to use
+ some of its core components.
+ You will also have worked through steps to produce two images:
+ one suitable for emulation and one that can be used on actual
+ hardware.
+ The examples highlight the ease with which you can use the
+ Yocto Project to create images for multiple types of hardware.
</para>
<para>
- You can also get the Yocto Project Files by downloading
- Yocto Project releases from the
- <ulink url="&YOCTO_HOME_URL;">Yocto Project website</ulink>.
- From the website, you just click "Downloads" in the navigation pane
- to the left to display all Yocto Project downloads.
- Current and archived releases are available for download.
- Nightly and developmental builds are also maintained at
- <ulink url="&YOCTO_AB_NIGHTLY_URL;"></ulink>.
- One final site you can visit for information on Yocto Project
- releases is the
- <ulink url='&YOCTO_WIKI_URL;/wiki/Releases'>Releases</ulink>
- wiki.
- However, for this document a released version of Yocto Project is used.
+ For more detailed information on the Yocto Project, you can
+ reference these resources:
+ <itemizedlist>
+ <listitem><para><emphasis>Website:</emphasis>
+ The
+ <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>
+ provides the latest builds, breaking news, full development
+ documentation, and access to a rich Yocto Project
+ Development Community into which you can tap.
+ </para></listitem>
+ <listitem><para><emphasis>FAQs:</emphasis>
+ Lists commonly asked Yocto Project questions and answers.
+ You can find two FAQs:
+ <ulink url='&YOCTO_WIKI_URL;/wiki/FAQ'>Yocto Project FAQ</ulink>
+ on a wiki, and the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#faq'>FAQ</ulink>"
+ chapter in the Yocto Project Reference Manual.
+ </para></listitem>
+ <listitem><para><emphasis>Developer Screencast:</emphasis>
+ The
+ <ulink url='http://vimeo.com/36450321'>Getting Started with the Yocto Project - New Developer Screencast Tutorial</ulink>
+ provides a 30-minute video created for users unfamiliar
+ with the Yocto Project but familiar with Linux build
+ hosts.
+ While this screencast is somewhat dated, the introductory
+ and fundamental concepts are useful for the beginner.
+ </para></listitem>
+ </itemizedlist>
</para>
-
</section>
-</section>
-<section id='test-run'>
- <title>A Quick Test Run</title>
-
- <para>
- Now that you have your system requirements in order, you can give
- the Yocto Project a try.
- This section presents some steps that let you do the following:
- <itemizedlist>
- <listitem><para>
- Build an image and run it in the QEMU emulator.
- </para></listitem>
- <listitem><para>
- Use a pre-built image and run it in the QEMU emulator.
- </para></listitem>
- </itemizedlist>
- <note>
- This section does not provide detail, but rather provides minimal,
- working commands and examples designed to just get you started.
- For more details, see the appropriate manuals in the
- <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project manual set</ulink>.
- </note>
- </para>
-
- <section id='building-image'>
- <title>Building an Image</title>
+ <section id='yp-intro'>
+ <title>Introducing the Yocto Project Development Environment</title>
<para>
- In the development environment you will need to build an image whenever you change hardware
- support, add or change system libraries, or add or change services that have dependencies.
+ The Yocto Project through the OpenEmbedded build system provides an
+ open source development environment targeting the ARM, MIPS,
+ PowerPC, and x86 architectures for a variety of platforms
+ including x86-64 and emulated ones.
+ You can use components from the Yocto Project to design, develop,
+ build, debug, simulate, and test the complete software stack using
+ Linux, the X Window System, GTK+ frameworks, and Qt frameworks.
</para>
<mediaobject>
<imageobject>
- <imagedata fileref="figures/building-an-image.png" format="PNG" align='center' scalefit='1'/>
+ <imagedata fileref="figures/yocto-environment.png"
+ format="PNG" align='center' scalefit='1' width="100%"/>
</imageobject>
<caption>
- <para>Building an Image</para>
+ <para>The Yocto Project Development Environment</para>
</caption>
</mediaobject>
- <para>
- Use the following commands to build your image.
- The OpenEmbedded build process creates an entire Linux
- distribution, including the toolchain, from source.
- <note><title>Note about Network Proxies</title>
- <para>
- By default, the build process searches for source code
- using a pre-determined order through a set of locations.
- If you are working behind a firewall and your build system
- is not set up for proxies, you could encounter problems
- with the build process when fetching source code (e.g.
- fetcher failures or Git failures).
- </para>
-
- <para>
- If you do not know your proxy settings, consult your
- local network infrastructure resources and get that
- information.
- A good starting point could also be to check your web
- browser settings.
- Finally, you can find more information on using the Yocto
- Project behind a firewall in the Yocto Project Reference
- Manual
- <ulink url='&YOCTO_DOCS_REF_URL;#how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</ulink>
- and on the
- "<ulink url='https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
- wiki page.
- </para>
- </note>
- </para>
-
- <para>
- <literallayout class='monospaced'>
- $ git clone &YOCTO_GIT_URL;/git/poky
- $ cd poky
- $ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
- $ source &OE_INIT_FILE;
- </literallayout>
- </para>
-
- <tip>
- <para>
- To help conserve disk space during builds, you can add the
- following statement to your project's configuration file,
- which for this example is
- <filename>poky/build/conf/local.conf</filename>.
- Adding this statement deletes the work directory used for
- building a package once the package is built.
- <literallayout class='monospaced'>
- INHERIT += "rm_work"
- </literallayout>
- </para>
- </tip>
-
- <itemizedlist>
- <listitem><para>In the previous example, the first command uses
- <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> to create
- a local repository named <filename>poky</filename> that is a
- clone of the upstream Yocto Project
- <filename>poky</filename> repository.</para></listitem>
- <listitem><para>The third command checks out the current
- Yocto Project release into a local branch whose name matches
- the release (i.e. <filename>&DISTRO_NAME;</filename>).
- The local branch tracks the upstream branch of the same name.
- Creating your own branch based on the released branch ensures
- you are using the latest files for that release.
- </para></listitem>
- <listitem><para>
- The final command runs the Yocto Project
- <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
- environment setup script.
- Running this script defines OpenEmbedded build environment
- settings needed to complete the build.
- The script also creates the
- <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
- which is <filename>build</filename> in this case and is located
- in the
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
- After the script runs, your current working directory is set
- to the Build Directory.
- Later, when the build completes, the Build Directory contains
- all the files created during the build.
- <note>
- For information on running a memory-resident
- <ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>,
- see the
- <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>
- setup script.
- </note></para></listitem>
- </itemizedlist>
- <para>
- Take some time to examine your <filename>local.conf</filename> file
- in your project's configuration directory, which is found in the Build Directory.
- The defaults in that file should work fine.
- However, there are some variables of interest at which you might look.
- </para>
-
- <para>
- By default, the target architecture for the build is <filename>qemux86</filename>,
- which produces an image that can be used in the QEMU emulator and is targeted at an
- <trademark class='registered'>Intel</trademark> 32-bit based architecture.
- To change this default, edit the value of the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
- variable in the configuration file before launching the build.
- </para>
-
- <para>
- Three other variables of interest are the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></ulink>,
- <ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></ulink>,
- and
- <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_NUMBER_PARSE_THREADS'><filename>BB_NUMBER_PARSE_THREADS</filename></ulink>
- variables.
- By default, the OpenEmbedded build system sets these variables
- based on the number of processor cores your build host uses.
- Thus, you typically do not need to uncomment these variables in
- your <filename>local.conf</filename> file to gain optimal build
- times.
- </para>
-
<para>
- Another consideration before you build is the package manager used when creating
- the image.
- By default, the OpenEmbedded build system uses the RPM package manager.
- You can control this configuration by using the
- <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink></filename> variable.
- For additional package manager selection information, see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-package'><filename>package*.bbclass</filename></ulink>"
- section in the Yocto Project Reference Manual.
+ Here are some highlights for the Yocto Project:
</para>
- <para>
- Continue with the following command to build an OS image for the
- target, which is <filename>core-image-sato</filename> in this
- example.
- For information on the <filename>-k</filename> option use the
- <filename>bitbake --help</filename> command, see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>"
- section in the Yocto Project Reference Manual, or see the
- "<ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual-command'>BitBake Command</ulink>"
- section in the BitBake User Manual.
- For information on other targets, see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
- chapter in the Yocto Project Reference Manual.
- <literallayout class='monospaced'>
- $ bitbake -k core-image-sato
- </literallayout>
- <note>
- BitBake requires Python 2.7. For more information on
- this requirement, see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python</ulink>"
- section in the Yocto Project Reference Manual.
- </note>
- The final command runs the image using the QEMU emulator:
- <literallayout class='monospaced'>
- $ runqemu qemux86
- </literallayout>
- <note>
- <para>
- Depending on the number of processors and cores, the amount
- of RAM, the speed of your Internet connection and other
- factors, the build process could take several hours the
- first time you run it.
- Subsequent builds run much faster since parts of the build
- are cached.
- </para>
- </note>
- If you want to learn more about running QEMU, see the
- "<ulink url="&YOCTO_DOCS_DEV_URL;#dev-manual-qemu">Using the Quick EMUlator (QEMU)</ulink>"
- chapter in the Yocto Project Development Manual.
- </para>
+ <itemizedlist>
+ <listitem><para>
+ Provides a recent Linux kernel along with a set of system
+ commands and libraries suitable for the embedded
+ environment.
+ </para></listitem>
+ <listitem><para>
+ Makes available system components such as X11, GTK+, Qt,
+ Clutter, and SDL (among others) so you can create a rich user
+ experience on devices that have display hardware.
+ For devices that do not have a display or where you wish to
+ use alternative UI frameworks, these components need not be
+ installed.
+ </para></listitem>
+ <listitem><para>
+ Creates a focused and stable core compatible with the
+ OpenEmbedded project with which you can easily and reliably
+ build and develop.
+ </para></listitem>
+ <listitem><para>
+ Fully supports a wide range of hardware and device emulation
+ through the Quick EMUlator (QEMU).
+ </para></listitem>
+ <listitem><para>
+ Provides a layer mechanism that allows you to easily extend
+ the system, make customizations, and keep them organized.
+ </para></listitem>
+ </itemizedlist>
<para>
- For information on how to use a pre-built binary, continue reading
- into the next section.
- Otherwise, you might be interested in reading the early chapters
- of the
- <ulink url='&YOCTO_DOCS_DEV_URL;'>Yocto Project Development Manual</ulink>.
+ You can use the Yocto Project to generate images for many kinds
+ of devices.
+ As mentioned earlier, the Yocto Project supports creation of
+ reference images that you can boot within and emulate using QEMU.
+ The standard example machines target QEMU full-system
+ emulation for 32-bit and 64-bit variants of x86, ARM, MIPS, and
+ PowerPC architectures.
+ Beyond emulation, you can use the layer mechanism to extend
+ support to just about any platform that Linux can run on and that
+ a toolchain can target.
</para>
- </section>
-
- <section id='using-pre-built'>
- <title>Using Pre-Built Binaries and QEMU</title>
<para>
- If hardware, libraries and services are stable, you can get started by using a pre-built binary
- of the filesystem image, kernel, and toolchain and run it using the QEMU emulator.
- This scenario is useful for developing application software.
+ Another Yocto Project feature is the Sato reference User
+ Interface.
+ This optional UI that is based on GTK+ is intended for devices with
+ restricted screen sizes and is included as part of the
+ OpenEmbedded Core layer so that developers can test parts of the
+ software stack.
</para>
+ </section>
- <mediaobject>
- <imageobject>
- <imagedata fileref="figures/using-a-pre-built-image.png" format="PNG" align='center' scalefit='1'/>
- </imageobject>
- <caption>
- <para>Using a Pre-Built Image</para>
- </caption>
- </mediaobject>
+ <section id='yp-resources'>
+ <title>Setting Up to Use the Yocto Project</title>
<para>
- For this scenario, you need to do several things:
+ The following list shows what you need in order to use a
+ Linux-based build host to use the Yocto Project to build images:
</para>
<itemizedlist>
- <listitem><para>Install the appropriate stand-alone toolchain tarball.</para></listitem>
- <listitem><para>Download the pre-built image that will boot with QEMU.
- You need to be sure to get the QEMU image that matches your target machine’s
- architecture (e.g. x86, ARM, etc.).</para></listitem>
- <listitem><para>Download the filesystem image for your target machine's architecture.
+ <listitem><para><emphasis>Build Host</emphasis>
+ A build host with a minimum of 50 Gbytes of free disk
+ space that is running a supported Linux distribution (i.e.
+ recent releases of Fedora, openSUSE, CentOS, Debian, or
+ Ubuntu).
</para></listitem>
- <listitem><para>Set up the environment to emulate the hardware and then start the QEMU emulator.
+ <listitem><para><emphasis>Build Host Packages</emphasis>
+ Appropriate packages installed on the build host.
+ </para></listitem>
+ <listitem><para><emphasis>The Yocto Project</emphasis>
+ A release of the Yocto Project.
</para></listitem>
</itemizedlist>
- <section id='installing-the-toolchain'>
- <title>Installing the Toolchain</title>
-
- <para>
- You can download a tarball installer, which includes the
- pre-built toolchain, the <filename>runqemu</filename>
- script, and support files from the appropriate directory under
- <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
- Toolchains are available for 32-bit and 64-bit x86 development
- systems from the <filename>i686</filename> and
- <filename>x86_64</filename> directories, respectively.
- The toolchains the Yocto Project provides are based off the
- <filename>core-image-sato</filename> image and contain
- libraries appropriate for developing against that image.
- Each type of development system supports five or more target
- architectures.
+ <section id='the-linux-distro'>
+ <title>The Linux Distribution</title>
+
+ <para>
+ The Yocto Project team verifies each release against recent
+ versions of the most popular Linux distributions that
+ provide stable releases.
+ In general, if you have the current release minus one of the
+ following distributions, you should have no problems.
+ <itemizedlist>
+ <listitem><para>
+ Ubuntu
+ </para></listitem>
+ <listitem><para>
+ Fedora
+ </para></listitem>
+ <listitem><para>
+ openSUSE
+ </para></listitem>
+ <listitem><para>
+ CentOS
+ </para></listitem>
+ <listitem><para>
+ Debian
+ </para></listitem>
+ </itemizedlist>
+ For a more detailed list of distributions that support the
+ Yocto Project, see the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
+ section in the Yocto Project Reference Manual.
</para>
<para>
- The names of the tarball installer scripts are such that a
- string representing the host system appears first in the
- filename and then is immediately followed by a string
- representing the target architecture.
- </para>
-
- <literallayout class='monospaced'>
- poky-glibc-<replaceable>host_system</replaceable>-<replaceable>image_type</replaceable>-<replaceable>arch</replaceable>-toolchain-<replaceable>release_version</replaceable>.sh
-
- Where:
- <replaceable>host_system</replaceable> is a string representing your development system:
-
- i686 or x86_64.
-
- <replaceable>image_type</replaceable> is a string representing the image you wish to
- develop a Software Development Toolkit (SDK) for use against.
- The Yocto Project builds toolchain installers using the
- following BitBake command:
-
- bitbake core-image-sato -c populate_sdk
-
- <replaceable>arch</replaceable> is a string representing the tuned target architecture:
-
- i586, x86_64, powerpc, mips, armv7a or armv5te
-
- <replaceable>release_version</replaceable> is a string representing the release number of the
- Yocto Project:
-
- &DISTRO;, &DISTRO;+snapshot
- </literallayout>
-
- <para>
- For example, the following toolchain installer is for a 64-bit
- development host system and a i586-tuned target architecture
- based off the SDK for <filename>core-image-sato</filename>:
- <literallayout class='monospaced'>
- poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
- </literallayout>
+ The OpenEmbedded build system should be able to run on any
+ modern distribution that has the following versions for
+ Git, tar, and Python.
+ <itemizedlist>
+ <listitem><para>
+ Git 1.7.8 or greater
+ </para></listitem>
+ <listitem><para>
+ tar 1.24 or greater
+ </para></listitem>
+ <listitem><para>
+ Python 2.7.3 or greater excluding Python
+ 3.x, which is not supported.
+ </para></listitem>
+ </itemizedlist>
+ If your build host does not meet any of these three listed
+ version requirements, you can take steps to prepare the
+ system so that you can still use the Yocto Project.
+ See the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
+ section in the Yocto Project Reference Manual for information.
</para>
+ </section>
- <para>
- Toolchains are self-contained and by default are installed into
- <filename>/opt/poky</filename>.
- However, when you run the toolchain installer, you can choose an
- installation directory.
- </para>
+ <section id='packages'>
+ <title>The Build Host Packages</title>
<para>
- The following command shows how to run the installer given a toolchain tarball
- for a 64-bit x86 development host system and a 32-bit x86 target architecture.
- You must change the permissions on the toolchain
- installer script so that it is executable.
+ Required build host packages vary depending on your
+ build machine and what you want to do with the Yocto Project.
+ For example, if you want to build an image that can run
+ on QEMU in graphical mode (a minimal, basic build
+ requirement), then the build host package requirements
+ are different than if you want to build an image on a headless
+ system or build out the Yocto Project documentation set.
</para>
<para>
- The example assumes the toolchain installer is located in <filename>~/Downloads/</filename>.
+ Collectively, the number of required packages is large
+ if you want to be able to cover all cases.
<note>
- If you do not have write permissions for the directory into which you are installing
- the toolchain, the toolchain installer notifies you and exits.
- Be sure you have write permissions in the directory and run the installer again.
+ In general, you need to have root access and then install
+ the required packages.
+ Thus, the commands in the following section may or may
+ not work depending on whether or not your Linux
+ distribution has <filename>sudo</filename> installed.
</note>
</para>
<para>
- <literallayout class='monospaced'>
- $ ~/Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
- </literallayout>
- </para>
-
- <para>
- For more information on how to install tarballs, see the
- "<ulink url='&YOCTO_DOCS_ADT_URL;#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>" and
- "<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-toolchain-from-within-the-build-tree'>Using BitBake and the Build Directory</ulink>" sections in the Yocto Project Application Developer's Guide.
- </para>
- </section>
-
- <section id='downloading-the-pre-built-linux-kernel'>
- <title>Downloading the Pre-Built Linux Kernel</title>
-
- <para>
- You can download the pre-built Linux kernel suitable for running in the QEMU emulator from
- <ulink url='&YOCTO_QEMU_DL_URL;'></ulink>.
- Be sure to use the kernel that matches the architecture you want to simulate.
- Download areas exist for the five supported machine architectures:
- <filename>qemuarm</filename>, <filename>qemumips</filename>, <filename>qemuppc</filename>,
- <filename>qemux86</filename>, and <filename>qemux86-64</filename>.
- </para>
-
- <para>
- Most kernel files have one of the following forms:
- <literallayout class='monospaced'>
- *zImage-qemu<replaceable>arch</replaceable>.bin
- vmlinux-qemu<replaceable>arch</replaceable>.bin
-
- Where:
- <replaceable>arch</replaceable> is a string representing the target architecture:
- x86, x86-64, ppc, mips, or arm.
- </literallayout>
- </para>
-
- <para>
- You can learn more about downloading a Yocto Project kernel in the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Yocto Project Kernel</ulink>"
- bulleted item in the Yocto Project Development Manual.
- </para>
- </section>
-
- <section id='downloading-the-filesystem'>
- <title>Downloading the Filesystem</title>
-
- <para>
- You can also download the filesystem image suitable for your target architecture from
- <ulink url='&YOCTO_QEMU_DL_URL;'></ulink>.
- Again, be sure to use the filesystem that matches the architecture you want
- to simulate.
- </para>
-
- <para>
- The filesystem image has two tarball forms: <filename>ext3</filename> and
- <filename>tar</filename>.
- You must use the <filename>ext3</filename> form when booting an image using the
- QEMU emulator.
- The <filename>tar</filename> form can be flattened out in your host development system
- and used for build purposes with the Yocto Project.
- <literallayout class='monospaced'>
- core-image-<replaceable>profile</replaceable>-qemu<replaceable>arch</replaceable>.ext3
- core-image-<replaceable>profile</replaceable>-qemu<replaceable>arch</replaceable>.tar.bz2
-
- Where:
- <replaceable>profile</replaceable> is the filesystem image's profile:
- lsb, lsb-dev, lsb-sdk, lsb-qt3, minimal, minimal-dev, sato,
- sato-dev, or sato-sdk. For information on these types of image
- profiles, see the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
- chapter in the Yocto Project Reference Manual.
-
- <replaceable>arch</replaceable> is a string representing the target architecture:
- x86, x86-64, ppc, mips, or arm.
- </literallayout>
+ The following list shows the required packages needed to build
+ an image that runs on QEMU in graphical mode (e.g. essential
+ plus graphics support).
+ For lists of required packages for other scenarios, see the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
+ section in the Yocto Project Reference Manual.
+ <itemizedlist>
+ <listitem><para><emphasis>Ubuntu and Debian</emphasis>
+ <literallayout class='monospaced'>
+ $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; libsdl1.2-dev xterm
+ </literallayout>
+ </para></listitem>
+ <listitem><para><emphasis>Fedora</emphasis>
+ <literallayout class='monospaced'>
+ $ sudo yum install &FEDORA_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
+ </literallayout>
+ </para></listitem>
+ <listitem><para><emphasis>OpenSUSE</emphasis>
+ <literallayout class='monospaced'>
+ $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; libSDL-devel xterm
+ </literallayout>
+ </para></listitem>
+ <listitem><para><emphasis>CentOS</emphasis>
+ <literallayout class='monospaced'>
+ $ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
+ </literallayout>
+ <note>
+ CentOS 6.x users need to ensure that the required
+ versions of Git, tar and Python are available.
+ For details, See the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
+ section in the Yocto Project Reference Manual for
+ information.
+ </note>
+ </para></listitem>
+ </itemizedlist>
</para>
</section>
- <section id='setting-up-the-environment-and-starting-the-qemu-emulator'>
- <title>Setting Up the Environment and Starting the QEMU Emulator</title>
-
- <para>
- Before you start the QEMU emulator, you need to set up the emulation environment.
- The following command form sets up the emulation environment.
- <literallayout class='monospaced'>
- $ source &YOCTO_ADTPATH_DIR;/environment-setup-<replaceable>arch</replaceable>-poky-linux-<replaceable>if</replaceable>
-
- Where:
- <replaceable>arch</replaceable> is a string representing the target architecture:
- i586, x86_64, ppc603e, mips, or armv5te.
-
- <replaceable>if</replaceable> is a string representing an embedded application binary interface.
- Not all setup scripts include this string.
- </literallayout>
- </para>
+ <section id='releases'>
+ <title>Yocto Project Release</title>
<para>
- Finally, this command form invokes the QEMU emulator
- <literallayout class='monospaced'>
- $ runqemu <replaceable>qemuarch</replaceable> <replaceable>kernel-image</replaceable> <replaceable>filesystem-image</replaceable>
-
- Where:
- <replaceable>qemuarch</replaceable> is a string representing the target architecture: qemux86, qemux86-64,
- qemuppc, qemumips, or qemuarm.
-
- <replaceable>kernel-image</replaceable> is the architecture-specific kernel image.
-
- <replaceable>filesystem-image</replaceable> is the .ext3 filesystem image.
-
- </literallayout>
+ The last requirement you need to meet before using the
+ Yocto Project is getting a Yocto Project release.
+ It is recommended that you get the latest Yocto Project release
+ by setting up (cloning in
+ <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> terms) a
+ local copy of the <filename>poky</filename> Git repository on
+ your build host and then checking out the latest release.
+ Doing so allows you to easily update to newer Yocto Project
+ releases as well as contribute back to the Yocto Project.
</para>
<para>
- Continuing with the example, the following two commands setup the emulation
- environment and launch QEMU.
- This example assumes the root filesystem (<filename>.ext3</filename> file) and
- the pre-built kernel image file both reside in your home directory.
- The kernel and filesystem are for a 32-bit target architecture.
+ Here is an example from an Ubuntu build host that clones the
+ <filename>poky</filename> repository and then checks out the
+ latest Yocto Project Release (i.e. &DISTRO;):
<literallayout class='monospaced'>
- $ cd $HOME
- $ source &YOCTO_ADTPATH_DIR;/environment-setup-i586-poky-linux
- $ runqemu qemux86 bzImage-qemux86.bin \
- core-image-sato-qemux86.ext3
+ $ git clone git://git.yoctoproject.org/poky
+ Cloning into 'poky'...
+ remote: Counting objects: 226790, done.
+ remote: Compressing objects: 100% (57465/57465), done.
+ remote: Total 226790 (delta 165212), reused 225887 (delta 164327)
+ Receiving objects: 100% (226790/226790), 100.98 MiB | 263 KiB/s, done.
+ Resolving deltas: 100% (165212/165212), done.
+ $ git checkout &DISTRO_NAME;
</literallayout>
+ You can also get the Yocto Project Files by downloading
+ Yocto Project releases from the
+ <ulink url="&YOCTO_HOME_URL;">Yocto Project website</ulink>.
</para>
<para>
- The environment in which QEMU launches varies depending on the filesystem image and on the
- target architecture.
- For example, if you source the environment for the ARM target
- architecture and then boot the minimal QEMU image, the emulator comes up in a new
- shell in command-line mode.
- However, if you boot the SDK image, QEMU comes up with a GUI.
- <note>Booting the PPC image results in QEMU launching in the same shell in
- command-line mode.</note>
+ For more information on getting set up with the Yocto Project
+ release, see the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#local-yp-release'>Yocto Project Release</ulink>"
+ item in the Yocto Project Development Manual.
</para>
</section>
</section>
- <para>
- For more detailed information on using the Yocto Project for
- image and application develop, the best place to continue reading is
- in the
- <ulink url='&YOCTO_DOCS_DEV_URL;'>Yocto Project Development Manual</ulink>.
- </para>
-</section>
+ <section id='qs-building-images'>
+ <title>Building Images</title>
-<section id='super-user'>
- <title>Super User
-</title>
-
- <para>
- This section provides minimal instruction for using the Yocto Project
- to build an image for Beaglebone hardware and for building and
- booting an image for the third-party
- <ulink url='http://www.minnowboard.org/meet-minnowboard-max/'>MinnowBoard MAX</ulink>.
- <note>
- The steps used in this section were performed on a 64-bit
- Ubuntu 14.10 system that has four cores.
- </note>
- </para>
-
- <section id='building-beaglebone-from-scratch'>
- <title>Building Beaglebone from Scratch</title>
+ <para>
+ Now that you have your system requirements in order, you can give
+ the Yocto Project a try.
+ This section presents steps that let you do the following:
+ <itemizedlist>
+ <listitem><para>
+ Build a <filename>qemux86</filename> reference image
+ and run it in the QEMU emulator.
+ </para></listitem>
+ <listitem><para>
+ Easily change configurations so that you can quickly
+ create a second image, which would be for MinnowBoard
+ MAX-compatible boards.
+ </para></listitem>
+ </itemizedlist>
+ <note>
+ The steps in this section do not provide detail, but rather
+ provide minimal, working commands and examples designed to
+ just get you started.
+ For more details, see the appropriate manuals in the
+ <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project manual set</ulink>.
+ </note>
+ </para>
<para>
- This section
- <footnote>
+ Use the following commands to build your image.
+ The OpenEmbedded build system creates an entire Linux
+ distribution, including the toolchain, from source.
+ <note><title>Note about Network Proxies</title>
<para>
- Kudos and thanks to Robert P. J. Day of
- <ulink url='http://www.crashcourse.ca'>CrashCourse</ulink>
- for providing the basis for this "expert" section with
- information from one of his
- <ulink url='http://www.crashcourse.ca/wiki/index.php/Yocto_Project_Quick_Start'>wiki</ulink>
- pages.
+ By default, the build process searches for source code
+ using a pre-determined order through a set of
+ locations.
+ If you are working behind a firewall and your build
+ host is not set up for proxies, you could encounter
+ problems with the build process when fetching source
+ code (e.g. fetcher failures or Git failures).
</para>
- </footnote>
- gives you a minimal description of how to use the Yocto Project to
- build images for Beaglebone hardware starting from scratch.
- </para>
- <section id='getting-yocto'>
- <title>Getting the Yocto Project</title>
+ <para>
+ If you do not know your proxy settings, consult your
+ local network infrastructure resources and get that
+ information.
+ A good starting point could also be to check your web
+ browser settings.
+ Finally, you can find more information on using the
+ Yocto Project behind a firewall in the Yocto Project
+ Reference Manual
+ <ulink url='&YOCTO_DOCS_REF_URL;#how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</ulink>
+ and on the
+ "<ulink url='https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
+ wiki page.
+ </para>
+ </note>
+ </para>
- <para>
- Set up your
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
- by using Git to clone the <filename>poky</filename>
- repository and then check out the release branch:
- <literallayout class='monospaced'>
- $ cd ~
- $ git clone git://git.yoctoproject.org/poky
- $ cd poky
+ <para>
+ <orderedlist>
+ <listitem><para><emphasis>Be Sure Your Build Host is Set Up:</emphasis>
+ The steps to build an image in this section depend on
+ your build host being properly set up.
+ Be sure you have worked through the requirements
+ described in the
+ "<link linkend='yp-resources'>Setting Up to Use the Yocto Project</link>"
+ section.
+ </para></listitem>
+ <listitem><para><emphasis>Check Out Your Branch:</emphasis>
+ Be sure you are in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
+ (e.g. <filename>poky</filename>) and then check out
+ the branch associated with the latest Yocto Project
+ Release:
+ <literallayout class='monospaced'>
+ $ cd ~/poky
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
- </literallayout>
- </para>
- </section>
-
- <section id='setting-up-your-host'>
- <title>Setting Up Your Host</title>
-
- <para>
- You need some packages for everything to work.
- Rather than duplicate them here, look at the
- "<link linkend='packages'>The Packages</link>"
- section earlier in this quick start.
- </para>
- </section>
-
- <section id='initializing-the-build-environment'>
- <title>Initializing the Build Environment</title>
-
- <para>
- From the root directory of your
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
- initialize your environment and provide a meaningful
- <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
- name:
- <literallayout class='monospaced'>
- $ source &OE_INIT_FILE; mybuilds
- </literallayout>
- At this point, the <filename>mybuilds</filename> directory has
- been created for you and it is now your current working directory.
- If you do not provide your own directory name,
- it defaults to <filename>build</filename>,
- which is inside the Source Directory.
- </para>
- </section>
-
- <section id='configuring-the-local.conf-file'>
- <title>Configuring the local.conf File</title>
-
- <para>
- Initializing the build environment creates a
- <filename>conf/local.conf</filename> configuration file
- in the Build Directory.
- You need to manually edit this file to specify the machine you
- are building:
- <literallayout class='monospaced'>
- MACHINE ?= "beaglebone"
- </literallayout>
- </para>
-
- <para>
- A good deal that goes into a Yocto Project build is simply
- downloading all of the source tarballs.
- Steps exist that can help you be more efficient with gathering
- source files.
- For example, you can set up local mirrors that hold your
- source tarballs or you can pre-fetch all your source without
- initiating a build until later.
- For more information, see the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-source-files'>Working with Source Files</ulink>"
- section in the Yocto Project Development Manual.
- </para>
- </section>
-
- <section id='building-the-image'>
- <title>Building the Image</title>
-
- <para>
- At this point, you need to select an image to build for the
- Beaglebone hardware.
- If this is your first build using the Yocto Project, you should
- try the smallest and simplest image:
- <literallayout class='monospaced'>
- $ bitbake core-image-minimal
- </literallayout>
- Now you just wait for the build to finish.
- </para>
-
- <para>
- You might encounter various warning messages during the
- build.
- For example, if a source file fetch initially fails,
- the OpenEmbedded build system notes that and attempts to
- find the files using mirrors.
- Another example could be values requested for but not
- found in the final kernel <filename>.config</filename>
- file.
- For information on configuration warnings, see the
- "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>"
- section in the Yocto Project Linux Kernel Development Manual.
- </para>
-
- <para>
- By default, BitBake aborts when it encounters an error during
- the build.
- If you want to make sure the build continues even when BitBake
- encounters an error, use this variation:
- <literallayout class='monospaced'>
- $ bitbake -k core-image-minimal
- </literallayout>
- </para>
-
- <para>
- Once you have your image, you can take steps to load and boot
- it on the target hardware.
- </para>
-
- <para>
- You can learn about BitBake in general by reading the
- <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
- </para>
- </section>
- </section>
-
- <section id='building-and-booting-minnowboard-max'>
- <title>Building and Booting MinnowBoard MAX</title>
+ </literallayout>
+ Git's <filename>checkout</filename> command checks out
+ the current Yocto Project release into a local branch
+ whose name matches the release (i.e.
+ <filename>&DISTRO_NAME;</filename>).
+ The local branch tracks the upstream branch of the
+ same name.
+ Creating your own branch based on the released
+ branch ensures you are using the latest files for
+ that release.
+ </para></listitem>
+ <listitem><para><emphasis>Initialize the Build Environment:</emphasis>
+ Run the
+ <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
+ environment setup script to define the OpenEmbedded
+ build environment on your build host.
+ <literallayout class='monospaced'>
+ $ source &OE_INIT_FILE;
+ </literallayout>
+ Among other things, the script creates the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
+ which is <filename>build</filename> in this case
+ and is located in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
+ After the script runs, your current working directory
+ is set to the Build Directory.
+ Later, when the build completes, the Build Directory
+ contains all the files created during the build.
+ <note>
+ For information on running a memory-resident
+ <ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>,
+ see the
+ <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>
+ setup script.
+ </note>
+ </para></listitem>
+ <listitem><para><emphasis>Examine Your Local Configuration File:</emphasis>
+ When you set up the build environment, a local
+ configuration file named
+ <filename>local.conf</filename> becomes available in
+ a <filename>conf</filename> subdirectory of the
+ Build Directory.
+ Before using BitBake to start the build, you can
+ look at this file and be sure your general
+ configurations are how you want them:
+ <itemizedlist>
+ <listitem><para>
+ To help conserve disk space during builds,
+ you can add the following statement to your
+ project's configuration file, which for this
+ example is
+ <filename>poky/build/conf/local.conf</filename>.
+ Adding this statement deletes the work
+ directory used for building a recipe once the
+ recipe is built.
+ <literallayout class='monospaced'>
+ INHERIT += "rm_work"
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ By default, the target machine for the build is
+ <filename>qemux86</filename>,
+ which produces an image that can be used in
+ the QEMU emulator and is targeted at an
+ <trademark class='registered'>Intel</trademark>
+ 32-bit based architecture.
+ Further on in this example, this default is
+ easily changed through the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
+ variable so that you can quickly
+ build an image for a different machine.
+ </para></listitem>
+ <listitem><para>
+ Another consideration before you build is the
+ package manager used when creating the image.
+ The default <filename>local.conf</filename>
+ file selects the RPM package manager.
+ You can control this configuration by using the
+ <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink></filename>
+ variable.</para>
+ <para>Selection of the package manager is separate
+ from whether package management is used at runtime
+ in the target image.</para>
+ <para>For additional package manager selection
+ information, see the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-package'><filename>package*.bbclass</filename></ulink>"
+ section in the Yocto Project Reference Manual.
+ </para></listitem>
+ </itemizedlist>
+ </para></listitem>
+ <listitem><para><emphasis>Start the Build:</emphasis>
+ Continue with the following command to build an OS image
+ for the target, which is
+ <filename>core-image-sato</filename> in this example:
+ <note>
+ Depending on the number of processors and cores, the
+ amount of RAM, the speed of your Internet connection
+ and other factors, the build process could take several
+ hours the first time you run it.
+ Subsequent builds run much faster since parts of the
+ build are cached.
+ </note>
+ <literallayout class='monospaced'>
+ $ bitbake core-image-sato
+ </literallayout>
+ For information on using the
+ <filename>bitbake</filename> command, see the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>"
+ section in the Yocto Project Reference Manual, or see the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual-command'>BitBake Command</ulink>"
+ section in the BitBake User Manual.
+ For information on other targets, see the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
+ chapter in the Yocto Project Reference Manual.
+ </para></listitem>
+ <listitem><para><emphasis>Simulate Your Image Using QEMU:</emphasis>
+ Once this particular image is built, you can start QEMU
+ and run the image:
+ <literallayout class='monospaced'>
+ $ runqemu qemux86
+ </literallayout>
+ If you want to learn more about running QEMU, see the
+ "<ulink url="&YOCTO_DOCS_DEV_URL;#dev-manual-qemu">Using the Quick EMUlator (QEMU)</ulink>"
+ chapter in the Yocto Project Development Manual.
+ </para></listitem>
+ <listitem><para><emphasis>Exit QEMU:</emphasis>
+ Exit QEMU by either clicking on the shutdown icon or by
+ opening a terminal, typing
+ <filename>poweroff</filename>, and then pressing "Enter".
+ </para></listitem>
+ </orderedlist>
+ </para>
<para>
- As of the Yocto Project 1.6 release, the MinnowBoard MAX is
+ The following steps show how easy it is to set up to build an
+ image for a new machine.
+ These steps build an image for the MinnowBoard MAX, which is
supported by the Yocto Project and the
- <filename>meta-intel</filename>
- <filename>intel-corei7-64</filename> and
- <filename>intel-core2-32</filename> Board Support Packages (BSPs).
+ <filename>meta-intel</filename> <filename>intel-corei7-64</filename>
+ and <filename>intel-core2-32</filename> Board Support Packages
+ (BSPs).
<note>
The MinnowBoard MAX ships with 64-bit firmware.
If you want to use the board in 32-bit mode, you must
@@ -1047,78 +603,46 @@
</note>
</para>
- <section id='mm-getting-yocto-and-meta-intel'>
- <title>Getting the Yocto Project and <filename>meta-intel</filename></title>
-
- <para>
- Set up your
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
- and the <filename>meta-intel</filename> layer
- by using Git to clone the <filename>poky</filename>
- and <filename>meta-intel</filename> repositories.
- These commands use the "&DISTRO_NAME;" branch:
- <literallayout class='monospaced'>
- $ cd ~
- $ mkdir source
- $ cd source
- $ git clone -b &DISTRO_NAME; git://git.yoctoproject.org/poky
- $ cd poky
- $ git clone -b &DISTRO_NAME; git://git.yoctoproject.org/meta-intel
- </literallayout>
- </para>
- </section>
-
- <section id='mm-setting-up-your-host'>
- <title>Setting Up Your Host</title>
-
- <para>
- You need some packages for everything to work.
- Rather than duplicate them here, look at the
- "<link linkend='packages'>The Packages</link>"
- section earlier in this quick start.
- </para>
- </section>
-
- <section id='mm-initializing-the-build-environment'>
- <title>Initializing the Build Environment</title>
-
- <para>
- From the root directory of your
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
- initialize your environment by running the build environment
- initialization script:
- <literallayout class='monospaced'>
- $ source &OE_INIT_FILE;
- </literallayout>
- At this point, the <filename>build</filename> directory has
- been created for you and it is now your current working
- directory.
- </para>
- </section>
-
- <section id='mm-configure-the-build'>
- <title>Configure the Build</title>
-
- <para>
- To configure the build, you edit the
- <filename>bblayers.conf</filename> and
- <filename>local.conf</filename> files, both of which are
- located in the <filename>build/conf</filename> directory.
- </para>
+ <para>
+ <orderedlist>
+ <listitem><para><emphasis>Create a Local Copy of the
+ <filename>meta-intel</filename> Repository:</emphasis>
+ Building an image for the MinnowBoard MAX requires the
+ <filename>meta-intel</filename> layer.
+ Use the <filename>git clone</filename> command to create
+ a local copy of the repository:
+ <literallayout class='monospaced'>
+ $ git clone git://git.yoctoproject.org/meta-intel
+ Cloning into 'meta-intel'...
+ remote: Counting objects: 10824, done.
+ remote: Compressing objects: 100% (3508/3508), done.
+ remote: Total 10824 (delta 6219), reused 10580 (delta 5975)
+ Receiving objects: 100% (10824/10824), 2.72 MiB | 482.00 KiB/s, done.
+ Resolving deltas: 100% (6219/6219), done.
+ Checking connectivity... done.
+ </literallayout>
+ </para></listitem>
+ <listitem><para><emphasis>Configure the Build:</emphasis>
+ To configure the build, you edit the
+ <filename>bblayers.conf</filename> and
+ <filename>local.conf</filename> files, both of which are
+ located in the <filename>build/conf</filename> directory.
+ </para>
- <para>
- Here is a quick way to make the edits.
- The first command adds the <filename>meta-intel</filename>
- branch, which contains the <filename>intel-core*</filename>
- BSPs to the build.
- The second command selects the BSP by setting the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
- variable.
- <literallayout class='monospaced'>
- $ echo 'BBLAYERS += "~/source/poky/meta-intel"' >> conf/bblayers.conf
+ <para>Here is a quick way to make the edits.
+ The first command uses the
+ <filename>bitbake-layers add-layer</filename> command
+ to add the <filename>meta-intel</filename>
+ layer, which contains the <filename>intel-core*</filename>
+ BSPs to the build.
+ The second command selects the BSP by setting the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
+ variable.
+ <literallayout class='monospaced'>
+ $ bitbake-layers add-layer "$HOME/source/poky/meta-intel"
$ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf
- </literallayout>
- <note><title>Notes</title>
+ </literallayout>
+ <note><title>Notes</title>
<para>
If you want a 64-bit build, use the following:
<literallayout class='monospaced'>
@@ -1132,98 +656,139 @@
$ echo 'MACHINE = "intel-core2-32"' >> conf/local.conf
</literallayout>
</para>
- </note>
- </para>
- </section>
-
- <section id='mm-build-the-image'>
- <title>Build the Image</title>
-
- <para>
- Use this command to build the minimal image for
- MinnowBoard MAX:
- <literallayout class='monospaced'>
+ </note>
+ </para></listitem>
+ <listitem><para><emphasis>Build a Minimal Image for MinnowBoard MAX:</emphasis>
+ Use the following command to build the minimal image for
+ MinnowBoard MAX.
+ Because configuration changes are minimal to set up for
+ this second build, the OpenEmbedded build system can
+ re-use files from previous builds as much as possible.
+ Re-using files means this second build will be much faster
+ than an initial build.
+ <literallayout class='monospaced'>
$ bitbake core-image-minimal
- </literallayout>
- Once the build completes, the resulting basic console image
- is located in the Build Directory here:
- <literallayout class='monospaced'>
+ </literallayout>
+ Once the build completes, the resulting basic console image
+ is located in the Build Directory here:
+ <literallayout class='monospaced'>
tmp/deploy/images/intel-corei7-64/core-image-minimal-intel-corei7-64.hddimg
- </literallayout>
- </para>
- </section>
-
- <section id='mm-write-the-image'>
- <title>Write the Image</title>
-
- <para>
- You can write the image to a USB key, SATA drive, or SD card
- by using the <filename>mkefidisk.sh</filename> script,
- which is included in the <filename>poky</filename>
- repository at <filename>scripts/contrib/mkefidisk.sh</filename>:
- <literallayout class='monospaced'>
+ </literallayout>
+ </para></listitem>
+ <listitem><para><emphasis>Write the Image:</emphasis>
+ You can write the image to a USB key, SATA drive, or SD
+ card by using the <filename>mkefidisk.sh</filename> script,
+ which is included in the <filename>poky</filename>
+ repository at
+ <filename>scripts/contrib/mkefidisk.sh</filename>:
+ <literallayout class='monospaced'>
$ sudo $HOME/source/poky/scripts/contrib/mkefidisk.sh <replaceable>HOST_DEVICE</replaceable> \
tmp/deploy/images/intel-corei7-64/core-image-minimal-intel-corei7-64.hddimg <replaceable>TARGET_DEVICE</replaceable>
- </literallayout>
- In the previous command, <replaceable>HOST_DEVICE</replaceable>
- is the device node on the build system (e.g.
- <filename>/dev/sdc</filename> or
- <filename>/dev/mmcblk0</filename>).
- <replaceable>TARGET_DEVICE</replaceable> is the name of the
- device as the MinnowBoard MAX sees it (e.g.
- <filename>/dev/sda</filename> or
- <filename>/dev/mmcblk0</filename>).
- </para>
- </section>
-
- <section id='mm-boot-the-image'>
- <title>Boot the Image</title>
-
- <para>
- With the boot device provisioned, you can insert the media into
- the MinnowBoard MAX and boot the hardware.
- The board should automatically detect the media and boot to
- the bootloader and subsequently the operating system.
- </para>
+ </literallayout>
+ In the previous command,
+ <replaceable>HOST_DEVICE</replaceable> is the device node
+ on the build host (e.g. <filename>/dev/sdc</filename> or
+ <filename>/dev/mmcblk0</filename>).
+ <replaceable>TARGET_DEVICE</replaceable> is the name of the
+ device as the MinnowBoard MAX sees it (e.g.
+ <filename>/dev/sda</filename> or
+ <filename>/dev/mmcblk0</filename>).
+ </para></listitem>
+ <listitem><para><emphasis>Boot the Hardware:</emphasis>
+ With the boot device provisioned, you can insert the
+ media into the MinnowBoard MAX and boot the hardware.
+ The board should automatically detect the media and boot to
+ the bootloader and subsequently the operating system.
+ </para>
- <para>
- If the board does not boot automatically, you can boot it
- manually from the EFI shell as follows:
- <literallayout class='monospaced'>
+ <para>If the board does not boot automatically, you can
+ boot it manually from the EFI shell as follows:
+ <literallayout class='monospaced'>
Shell> connect -r
Shell> map -r
Shell> fs0:
Shell> bootx64
- </literallayout>
- <note>
- For a 32-bit image use the following:
- <literallayout class='monospaced'>
- Shell> bootia32
</literallayout>
- </note>
- </para>
- </section>
+ <note>
+ For a 32-bit image use the following:
+ <literallayout class='monospaced'>
+ Shell> bootia32
+ </literallayout>
+ </note>
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
- <section id='mm-next-steps'>
- <title>Next Steps</title>
+ <section id='qs-next-steps'>
+ <title>Next Steps</title>
- <para>
- Now that you can build a basic image, you could experiment
- by building some other example images:
- <literallayout class='monospaced'>
- $ bitbake core-image-sato
- $ bitbake core-image-sato-sdk
- </literallayout>
- Another possibility is to experiment creating your own image
- recipes that add packages to suit your needs.
- For information on how to create recipes, see the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-writing-a-new-recipe'>Writing a New Recipe</ulink>"
- section in the Yocto Project Development Manual.
- </para>
- </section>
- </section>
-</section>
+ <para>
+ If you completed all the steps in the previous section then
+ congratulations to you!
+ What now?
+ </para>
+ <para>
+ Depending on what you primary interests are with the Yocto Project,
+ you could consider any of the following:
+ <itemizedlist>
+ <listitem><para><emphasis>Visit the Yocto Project Web Site:</emphasis>
+ The official
+ <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink>
+ web site contains information on the entire project.
+ Visiting this site is a good way to familiarize yourself
+ with the overall project.
+ </para></listitem>
+ <listitem><para><emphasis>Explore Development Models:</emphasis>
+ You can see the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-model'>Common Development Models</ulink>"
+ section in the Yocto Project Development Manual
+ to get an overview of the various ways by which
+ you can use the Yocto Project to develop projects.
+ </para></listitem>
+ <listitem><para><emphasis>Learn Some Open Source Basics:</emphasis>
+ If you are new to the open source environment, you might
+ read the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-newbie'>The Yocto Project Open Source Development Environment</ulink>"
+ chapter of the Yocto Project Development Manual.
+ This chapter presents overview material for open source
+ development in the context of the Yocto Project.
+ </para></listitem>
+ <listitem><para><emphasis>Learn About Application Development:</emphasis>
+ If your primary interests lie in developing applications,
+ you can reference the
+ <ulink url='&YOCTO_DOCS_ADT_URL;#adt-manual-intro'>Yocto Project Application Developer's Guide</ulink>.
+ </para></listitem>
+ <listitem><para><emphasis>Learn About Board Support Packages (BSPs):</emphasis>
+ If you want to learn about BSPs, see the
+ <ulink url='&YOCTO_DOCS_BSP_URL;#bsp'>Yocto Project Board Support Packages (BSP) Developer's Guide</ulink>.
+ </para></listitem>
+ <listitem><para><emphasis>Learn About Using Eclipse With the Yocto Project:</emphasis>
+ If you are an Eclipse user, you can learn about using the
+ Yocto Project in that development environment by reading
+ the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#workflow-using-the-adt-and-eclipse'>Workflow Using the ADT and Eclipseâ„¢</ulink>"
+ section in the Yocto Project Development Manual.
+ </para></listitem>
+ <listitem><para><emphasis>Learn About Toaster:</emphasis>
+ Toaster is a web interface to the Yocto Project's
+ OpenEmbedded build system.
+ If you are interested in using this type of interface to
+ create images, see the
+ <ulink url='&YOCTO_DOCS_TOAST_URL;#toaster-manual-intro'>Toaster User Manual</ulink>.
+ </para></listitem>
+ <listitem><para><emphasis>Explore Yocto Project Common Tasks and Technical Details:</emphasis>
+ If you are interested in a mix of common tasks that have to
+ do with project develop using the Yocto Project, see the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#extendpoky'>Common Tasks</ulink>"
+ section of the Yocto Project Development Manual.
+ If you want more detail, see the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-manual-intro'>Yocto Project Reference Manual</ulink>.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
</article>
<!--
vim: expandtab tw=80 ts=4