Yocto 2.4
Move OpenBMC to Yocto 2.4(rocko)
Tested: Built and verified Witherspoon and Palmetto images
Change-Id: I12057b18610d6fb0e6903c60213690301e9b0c67
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/import-layers/yocto-poky/documentation/yocto-project-qs/yocto-project-qs.xml b/import-layers/yocto-poky/documentation/yocto-project-qs/yocto-project-qs.xml
index b4b3f4b..e6dae7f 100644
--- a/import-layers/yocto-poky/documentation/yocto-project-qs/yocto-project-qs.xml
+++ b/import-layers/yocto-poky/documentation/yocto-project-qs/yocto-project-qs.xml
@@ -16,35 +16,36 @@
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England & Wales</ulink> as published by Creative Commons.
</para>
- <note><title>Manual Notes</title>
- <itemizedlist>
- <listitem><para>
- For the latest version of the Yocto Project Quick
- Start associated with this Yocto Project release
- (version &YOCTO_DOC_VERSION;),
- see the Yocto Project Quick Start from the
- <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>.
+ <note><title>Manual Notes</title>
+ <itemizedlist>
+ <listitem><para>
+ This version of the
+ <emphasis>Yocto Project Quick Start</emphasis>
+ is for the &YOCTO_DOC_VERSION; release of the
+ Yocto Project.
+ To be sure you have the latest version of the manual
+ for this release, use the manual from the
+ <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>.
+ </para></listitem>
+ <listitem><para>
+ For manuals associated with other releases of the Yocto
+ Project, go to the
+ <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>
+ and use the drop-down "Active Releases" button
+ and choose the manual associated with the desired
+ Yocto Project.
+ </para></listitem>
+ <listitem><para>
+ To report any inaccuracies or problems with this
+ manual, send an email to the Yocto Project
+ discussion group at
+ <filename>yocto@yoctoproject.com</filename> or log into
+ the freenode <filename>#yocto</filename> channel.
</para></listitem>
- <listitem><para>
- This version of the manual is version
- &YOCTO_DOC_VERSION;.
- For later releases of the Yocto Project (if they exist),
- go to the
- <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>
- and use the drop-down "Active Releases" button
- and choose the Yocto Project version for which you want
- the manual.
- </para></listitem>
- <listitem><para>
- For an in-development version of the Yocto Project
- Quick Start, see
- <ulink url='&YOCTO_DOCS_URL;/latest/yocto-project-qs/yocto-project-qs.html'></ulink>.
- </para></listitem>
- </itemizedlist>
- </note>
+ </itemizedlist>
+ </note>
</legalnotice>
-
<abstract>
<imagedata fileref="figures/yocto-project-transp.png"
width="6in" depth="1in"
@@ -60,24 +61,12 @@
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>
+ <ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink>
tool, to construct complete Linux images.
- The BitBake and OE components are combined together to form
+ The BitBake and OE components combine together to form
a reference build host, historically known as
- <ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink>
- (<emphasis>Pah</emphasis>-key).
- </para>
-
- <para>
- 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.
+ <ulink url='&YOCTO_DOCS_REF_URL;#poky'>Poky</ulink>
+ (<emphasis>Pah</emphasis>-kee).
</para>
<para>
@@ -86,30 +75,74 @@
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.
+ information you need to try out the Yocto Project using either a
+ supported Linux build host or a build host set up to use
+ <ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
+ which leverages
+ <ulink url='https://www.docker.com/'>Docker Containers</ulink>.
+ </para>
+
+ <para>
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 that is suitable for emulation and one that boots on actual
- hardware.
+ one that runs on the emulator (QEMU) and one that boots on actual
+ hardware (i.e. MinnowBoard Turbot).
The examples highlight the ease with which you can use the
Yocto Project to create images for multiple types of hardware.
</para>
<para>
+ The following list directs you to key sections of this
+ quick start:
+ <itemizedlist>
+ <listitem><para>
+ <ulink url='http://www.yoctoproject.org/docs/2.4/yocto-project-qs/yocto-project-qs.html#yp-resources'>Setting Up to Use the Yocto Project</ulink>
+ </para></listitem>
+ <listitem><para>
+ <ulink url='http://www.yoctoproject.org/docs/2.4/yocto-project-qs/yocto-project-qs.html#building-an-image-for-emulation'>Building an Image for Emulation</ulink>
+ </para></listitem>
+ <listitem><para>
+ <ulink url='http://www.yoctoproject.org/docs/2.4/yocto-project-qs/yocto-project-qs.html#building-an-image-for-hardware'>Building an Image for Hardware</ulink>
+ </para></listitem>
+ </itemizedlist>
+<!--
+ <note>
+ 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.
+ </note>
+-->
+ </para>
+
+ <para>
For more detailed information on the Yocto Project, you can
reference these resources:
<itemizedlist>
- <listitem><para><emphasis>Website:</emphasis>
+ <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.
+ provides background information, 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>
+ <listitem><para>
+ <emphasis>Yocto Project Development Environment Overview:</emphasis>
+ The
+ "<ulink url='&YOCTO_DOCS_REF_URL;#yp-intro'>Introducing the Yocto Project Development Environment</ulink>"
+ section presents an overview of the Yocto Project
+ development environment.
+ </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>
@@ -117,7 +150,8 @@
"<ulink url='&YOCTO_DOCS_REF_URL;#faq'>FAQ</ulink>"
chapter in the Yocto Project Reference Manual.
</para></listitem>
- <listitem><para><emphasis>Developer Screencast:</emphasis>
+ <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
@@ -126,238 +160,240 @@
While this screencast is somewhat dated, the introductory
and fundamental concepts are useful for the beginner.
</para></listitem>
+ <listitem><para>
+ <emphasis>Comprehensive List of Links and Other Documentation:</emphasis>
+ The
+ "<ulink url='&YOCTO_DOCS_REF_URL;#resources-links-and-related-documentation'>Links and Related Documentation</ulink>"
+ section in the Yocto Project Reference Manual provides a
+ comprehensive list of related links and documentation.
+ </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' width="8in"/>
- </imageobject>
- </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 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>
- 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>
-
- <para>
- 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>
-
<section id='yp-resources'>
<title>Setting Up to Use the Yocto Project</title>
<para>
- The following list shows what you need in order to use a
- Linux-based build host to use the Yocto Project to build images:
+ Setting up to use the Yocto Project involves getting your build
+ host ready.
+ If you have a native Linux machine that runs a Yocto Project
+ supported distribution as described by the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
+ section in the Yocto Project Reference Manual, you can prepare
+ that machine as your build host.
+ See the
+ "<link linkend='qs-native-linux-build-host'>Using a Native Linux Machine</link>"
+ section for more information.
</para>
- <itemizedlist>
- <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><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>
+ <para>
+ If you do not want to use the Yocto Project on a native Linux
+ machine, you can prepare your build host to use
+ <ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
+ which leverages
+ <ulink url='https://www.docker.com/'>Docker Containers</ulink>.
+ You can set up a build host for Windows, Mac, and Linux
+ machines.
+ See the
+ "<link linkend='qs-crops-build-host'>Using CROPS and Containers</link>"
+ section for more information.
+ </para>
- <section id='the-linux-distro'>
- <title>The Linux Distribution</title>
+ <section id='qs-crops-build-host'>
+ <title>Using CROPS and Containers</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>
+ Follow these steps to get your build host set up with a
+ Poky container that you can use to complete the build
+ examples further down in the Quick Start:
+ <orderedlist>
<listitem><para>
- Ubuntu
+ <emphasis>Set Up to use CROss PlatformS (CROPS):</emphasis>
+ Work through the first six steps of the procedure
+ in the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-to-use-crops'>Setting Up to Use CROss PlatformS (CROPS)</ulink>"
+ section of the Yocto Project Development Tasks Manual.
</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>
+ <emphasis>Set Up the Poky Container to Use the Yocto Project:</emphasis>
+ Go to
+ <ulink url='https://github.com/crops/poky-container/blob/master/README.md'></ulink>
+ and follow the directions to set up the Poky container
+ on your build host.</para>
- <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.8.3.1 or greater
+ <para>Once you complete the setup instructions for your
+ machine, you need to get a copy of the
+ <filename>poky</filename> repository on your build
+ host.
+ See the
+ "<link linkend='releases'>Yocto Project Release</link>"
+ section to continue.
</para></listitem>
- <listitem><para>
- tar 1.24 or greater
- </para></listitem>
- <listitem><para>
- Python 3.4.0 or greater.
- </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.
+ </orderedlist>
</para>
</section>
- <section id='packages'>
- <title>The Build Host Packages</title>
+ <section id='qs-native-linux-build-host'>
+ <title>Using a Native Linux Machine</title>
<para>
- 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.
+ 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>
- <para>
- 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>
+ <itemizedlist>
+ <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><emphasis>Build Host Packages</emphasis>
+ Appropriate packages installed on the build host.
+ </para></listitem>
+ </itemizedlist>
- <para>
- 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'>
+ <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 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.8.3.1 or greater
+ </para></listitem>
+ <listitem><para>
+ tar 1.27 or greater
+ </para></listitem>
+ <listitem><para>
+ Python 3.4.0 or greater.
+ </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>
+
+ <section id='packages'>
+ <title>The Build Host Packages</title>
+
+ <para>
+ 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>
+ 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 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'>
+ </literallayout>
+ </para></listitem>
+ <listitem><para><emphasis>Fedora</emphasis>
+ <literallayout class='monospaced'>
$ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
- </literallayout>
- </para></listitem>
- <listitem><para><emphasis>OpenSUSE</emphasis>
- <literallayout class='monospaced'>
+ </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'>
+ </literallayout>
+ </para></listitem>
+ <listitem><para><emphasis>CentOS</emphasis>
+ <literallayout class='monospaced'>
$ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
- </literallayout>
- <note><title>Notes</title>
- <itemizedlist>
- <listitem><para>
- Extra Packages for Enterprise Linux
- (i.e. <filename>epel-release</filename>)
- is a collection of packages from Fedora
- built on RHEL/CentOS for easy installation
- of packages not included in enterprise
- Linux by default.
- You need to install these packages
- separately.
- </para></listitem>
- <listitem><para>
- The <filename>makecache</filename> command
- consumes additional Metadata from
- <filename>epel-release</filename>.
- </para></listitem>
- </itemizedlist>
- </note>
- </para></listitem>
- </itemizedlist>
+ </literallayout>
+ <note><title>Notes</title>
+ <itemizedlist>
+ <listitem><para>
+ Extra Packages for Enterprise Linux
+ (i.e. <filename>epel-release</filename>)
+ is a collection of packages from Fedora
+ built on RHEL/CentOS for easy installation
+ of packages not included in enterprise
+ Linux by default.
+ You need to install these packages
+ separately.
+ </para></listitem>
+ <listitem><para>
+ The <filename>makecache</filename> command
+ consumes additional Metadata from
+ <filename>epel-release</filename>.
+ </para></listitem>
+ </itemizedlist>
+ </note>
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <para>
+ Once you complete the setup instructions for your
+ machine, you need to get a copy of the
+ <filename>poky</filename> repository on your build
+ host.
+ Continue with the
+ "<link linkend='releases'>Yocto Project Release</link>"
+ section.
</para>
</section>
@@ -365,11 +401,12 @@
<title>Yocto Project Release</title>
<para>
- The last requirement you need to meet before using the
- Yocto Project is getting a Yocto Project release.
+ Now that your build host has the right packages (native
+ Linux machine) or you have the Poky container set up
+ (CROPS), you need to get a copy of the Yocto Project.
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
+ <ulink url='&YOCTO_DOCS_REF_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
@@ -377,9 +414,15 @@
</para>
<para>
- 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;):
+ Here is an example from a native Linux machine that is
+ running Ubuntu.
+ <note>
+ If your build host is using a Poky container, you can
+ use the same Git commands.
+ </note>
+ The following example clones the <filename>poky</filename>
+ repository and then checks out the latest Yocto Project Release
+ by tag (i.e. <filename>&DISTRO_REL_TAG;</filename>):
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/poky
Cloning into 'poky'...
@@ -389,18 +432,35 @@
Receiving objects: 100% (361782/361782), 131.94 MiB | 6.88 MiB/s, done.
Resolving deltas: 100% (268619/268619), done.
Checking connectivity... done.
- $ git checkout &DISTRO_NAME_NO_CAP;
+ $ git checkout tags/&DISTRO_REL_TAG; -b poky_&DISTRO;
</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>
- 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.
+ The previous Git <filename>checkout</filename> command
+ creates a local branch named
+ <filename>poky_&DISTRO;</filename>.
+ The files available to you in that branch exactly match the
+ repository's files in the
+ <filename>&DISTRO_NAME_NO_CAP;</filename>
+ development branch at the time of the Yocto Project &DISTRO;
+ release.
+ <note>
+ Rather than checking out the entire development branch
+ of a release (i.e. the tip), which could be continuously
+ changing while you are doing your development, you would
+ check out a branch based on a release tag as shown in
+ the previous example.
+ Doing so provides you with an unchanging, stable set of
+ files.
+ </note>
+ </para>
+
+ <para>
+ For more options and information about accessing Yocto
+ Project related repositories, see the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-yocto-project-source-files'>Working With Yocto Project Source Files</ulink>"
+ section in the Yocto Project Development Tasks Manual.
</para>
</section>
</section>
@@ -409,20 +469,22 @@
<title>Building Images</title>
<para>
- Now that you have your system requirements in order, you can give
- Yocto Project a try.
- You can try out Yocto Project using either the command-line
- interface or using Toaster, which uses a graphical user
- interface.
- If you want to try out the Yocto Project using a GUI, see the
- <ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>
- for information on how to install and set up Toaster.
+ You are now ready to give the Yocto Project a try.
+ For this example, you will be using the command line to build
+ your images.
+ <note>
+ A graphical user interface to the Yocto Project is available
+ through
+ <ulink url='&YOCTO_DOCS_REF_URL;#toaster-term'>Toaster</ulink>.
+ See the
+ <ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>
+ for more information.
+ </note>
</para>
<para>
- To use the Yocto Project through the command-line interface,
- finish this quick start, which presents steps that let you
- do the following:
+ The remainder of this quick start steps you through the
+ following:
<itemizedlist>
<listitem><para>
Build a <filename>qemux86</filename> reference image
@@ -433,7 +495,7 @@
create a second image that you can load onto bootable
media and actually boot target hardware.
This example uses the MinnowBoard
- MAX-compatible boards.
+ Turbot-compatible boards.
</para></listitem>
</itemizedlist>
<note>
@@ -452,37 +514,39 @@
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>
- 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>
-
- <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><title>Notes about Network Proxies</title>
+ <itemizedlist>
+ <listitem><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
+ 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></listitem>
+ <listitem><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></listitem>
+ </itemizedlist>
</note>
</para>
<para>
<orderedlist>
- <listitem><para><emphasis>Be Sure Your Build Host is Set Up:</emphasis>
+ <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
@@ -490,9 +554,10 @@
"<link linkend='yp-resources'>Setting Up to Use the Yocto Project</link>"
section.
</para></listitem>
- <listitem><para><emphasis>Check Out Your Branch:</emphasis>
+ <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>
+ <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
(e.g. <filename>poky</filename>) and then check out
the branch associated with the latest Yocto Project
Release:
@@ -510,7 +575,8 @@
branch ensures you are using the latest files for
that release.
</para></listitem>
- <listitem><para><emphasis>Initialize the Build Environment:</emphasis>
+ <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
@@ -519,23 +585,17 @@
$ source &OE_INIT_FILE;
</literallayout>
Among other things, the script creates the
- <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
+ <ulink url='&YOCTO_DOCS_REF_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>.
+ <ulink url='&YOCTO_DOCS_REF_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>
+ <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
@@ -589,7 +649,8 @@
</para></listitem>
</itemizedlist>
</para></listitem>
- <listitem><para><emphasis>Start the Build:</emphasis>
+ <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:
@@ -647,7 +708,8 @@
"<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>
+ <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'>
@@ -655,9 +717,10 @@
</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.
+ chapter in the Yocto Project Development Tasks Manual.
</para></listitem>
- <listitem><para><emphasis>Exit QEMU:</emphasis>
+ <listitem><para>
+ <emphasis>Exit QEMU:</emphasis>
Exit QEMU by either clicking on the shutdown icon or by
typing <filename>Ctrl-C</filename> in the QEMU
transcript window from which you evoked QEMU.
@@ -672,13 +735,13 @@
<para id='qs-minnowboard-example'>
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
+ These steps build an image for the MinnowBoard Turbot, 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).
<note>
- The MinnowBoard MAX ships with 64-bit firmware.
+ The MinnowBoard Turbot ships with 64-bit firmware.
If you want to use the board in 32-bit mode, you must
download the
<ulink url='http://firmware.intel.com/projects/minnowboard-max'>32-bit firmware</ulink>.
@@ -687,13 +750,15 @@
<para>
<orderedlist>
- <listitem><para><emphasis>Create a Local Copy of the
+ <listitem><para>
+ <emphasis>Create a Local Copy of the
<filename>meta-intel</filename> Repository:</emphasis>
- Building an image for the MinnowBoard MAX requires the
+ Building an image for the MinnowBoard Turbot requires
+ the
<filename>meta-intel</filename> layer.
Use the <filename>git clone</filename> command to create
a local copy of the repository inside your
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
+ <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>,
which is <filename>poky</filename> in this example:
<literallayout class='monospaced'>
$ cd $HOME/poky
@@ -713,17 +778,30 @@
sure that both repositories
(<filename>meta-intel</filename> and
<filename>poky</filename>) are using the same releases.
+ Because you used the <filename>&DISTRO_REL_TAG;</filename>
+ tag when you checked out the <filename>poky</filename>
+ repository by tag, you should use a
+ <filename>meta-intel</filename>
+ tag that corresponds with the release you used for
+ <filename>poky</filename>.
Consequently, you need to checkout out the
- "<filename>&DISTRO_NAME_NO_CAP;</filename>" release after
- cloning <filename>meta-intel</filename>:
+ "<filename>&METAINTELVERSION;-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;</filename>"
+ branch after cloning <filename>meta-intel</filename>:
<literallayout class='monospaced'>
$ cd $HOME/poky/meta-intel
- $ git checkout &DISTRO_NAME_NO_CAP;
- Branch &DISTRO_NAME_NO_CAP; set up to track remote branch &DISTRO_NAME_NO_CAP; from origin.
- Switched to a new branch '&DISTRO_NAME_NO_CAP;'
+ $ git checkout tags/&METAINTELVERSION;-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION; -b meta-intel-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;
+ Switched to a new branch 'meta-intel-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;'
</literallayout>
+ The previous Git <filename>checkout</filename> command
+ creates a local branch named
+ <filename>meta-intel-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;</filename>.
+ You have the option to name your local branch whatever
+ you want by providing any name you like for
+ "meta-intel-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;"
+ in the above example.
</para></listitem>
- <listitem><para><emphasis>Configure the Build:</emphasis>
+ <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
@@ -760,13 +838,15 @@
</para>
</note>
</para></listitem>
- <listitem><para><emphasis>Build an Image for MinnowBoard MAX:</emphasis>
+ <listitem><para>
+ <emphasis>Build an Image for MinnowBoard
+ Turbot:</emphasis>
The type of image you build depends on your goals.
For example, the previous build created a
<filename>core-image-sato</filename> image, which is an
image with Sato support.
It is possible to build many image types for the
- MinnowBoard MAX.
+ MinnowBoard Turbot.
Some possibilities are <filename>core-image-base</filename>,
which is a console-only image.
Another choice could be a
@@ -826,7 +906,8 @@
tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic
</literallayout>
</para></listitem>
- <listitem><para><emphasis>Write the Image:</emphasis>
+ <listitem><para>
+ <emphasis>Write the Image:</emphasis>
You can write the image just built to a bootable media
(e.g. a USB key, SATA drive, SD card, etc.) using the
<filename>dd</filename> utility:
@@ -840,9 +921,10 @@
<filename>/dev/mmcblk0</filename>, which is most likely an
SD card).
</para></listitem>
- <listitem><para><emphasis>Boot the Hardware:</emphasis>
+ <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.
+ media into the MinnowBoard Turbot and boot the hardware.
The board should automatically detect the media and boot to
the bootloader and subsequently the operating system.
</para>
@@ -880,66 +962,76 @@
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>
+ <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>Look Through the Yocto Project Development Manual:</emphasis>
- The
- <ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-intro'>Yocto Project Development Manual</ulink>
- is a great place to get a feel for how to use the Yocto
- Project.
- The manual contains conceptual and procedural information
- that covers
- <ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-model'>common development models</ulink>
- and introduces
- <ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-newbie'>the Yocto Project open source development environment</ulink>.
- The manual also contains several targeted sections that
- cover specific
- <ulink url='&YOCTO_DOCS_DEV_URL;#extendpoky'>common tasks</ulink>
- such as understanding and creating layers, customizing
- images, writing new recipes, working with libraries, and
- configuring and patching the kernel.
+ <listitem><para>
+ <emphasis>Look Through the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-intro'>Yocto Project Development Tasks Manual</ulink>:</emphasis>
+ This manual contains procedural information grouped to
+ help you get set up, work with layers, customize images,
+ write new recipes, work with libraries, and use QEMU.
+ The information is task-based and spans the breadth of the
+ Yocto Project.
</para></listitem>
- <listitem><para><emphasis>Look Through the Yocto Project Software Development Kit (SDK) Developer's Guide:</emphasis>
- The
- <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-intro'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>
- describes how to use both the
+ <listitem><para>
+ <emphasis>Look Through the
+ <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
+ manual:</emphasis>
+ This manual describes how to use both the
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-using-the-standard-sdk'>standard SDK</ulink>
and the
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>extensible SDK</ulink>,
which are used primarily for application development.
- This manual also provides an example workflow that uses
- the popular <trademark class='trade'>Eclipse</trademark>
- development environment.
+ This manual also provides example workflows
+ that use the popular <trademark class='trade'>Eclipse</trademark>
+ development environment and that use <filename>devtool</filename>.
See the
"<ulink url='&YOCTO_DOCS_SDK_URL;#workflow-using-eclipse'>Workflow using Eclipse™</ulink>"
- section.
+ and
+ "<ulink url='&YOCTO_DOCS_SDK_URL;#using-devtool-in-your-sdk-workflow'>Using <filename>devtool</filename> in your SDK Workflow</ulink>"
+ sections for more information.
</para></listitem>
- <listitem><para><emphasis>Learn About Board Support Packages (BSPs):</emphasis>
+ <listitem><para>
+ <emphasis>Learn About Kernel Development:</emphasis>
+ If you want to see how to work with the kernel and
+ understand Yocto Linux kernels, see the
+ <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-dev-intro'>Yocto Project Linux Kernel Development Manual</ulink>.
+ This manual provides information on how to patch the
+ kernel, modify kernel recipes, and configure the kernel.
+ </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>.
+ This manual also provides an example BSP creation workflow.
+ See the
+ <ulink url='&YOCTO_DOCS_BSP_URL;#developing-a-board-support-package-bsp'>"Developing a Board Support Package (BSP)</ulink>"
+ section.
</para></listitem>
- <listitem><para><emphasis>Learn About Toaster:</emphasis>
+ <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>Have Available the Yocto Project Reference Manual</emphasis>
- The
- <ulink url='&YOCTO_DOCS_REF_URL;#ref-manual-intro'>Yocto Project Reference Manual</ulink>,
- unlike the rest of the Yocto Project manual set, is
- comprised of material suited for reference rather than
+ <listitem><para>
+ <emphasis>Have Available the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-manual-intro'>Yocto Project Reference Manual:</ulink></emphasis>
+ Unlike the rest of the Yocto Project manual set, this manual
+ is comprised of material suited for reference rather than
procedures.
You can get
<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky'>build details</ulink>,
a
- <ulink url='&YOCTO_DOCS_REF_URL;#closer-look'>closer look</ulink>
+ <ulink url='&YOCTO_DOCS_REF_URL;#development-concepts'>closer look</ulink>
at how the pieces of the Yocto Project development
environment work together, information on various
<ulink url='&YOCTO_DOCS_REF_URL;#technical-details'>technical details</ulink>,