202 lines
12 KiB
XML
202 lines
12 KiB
XML
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||
|
||
<chapter id='dev-manual-start'>
|
||
|
||
<title>Getting Started with the Yocto Project</title>
|
||
|
||
<para>
|
||
This chapter introduces the Yocto Project and gives you an idea of what you need to get started.
|
||
You can find enough information to set your development host up and build or use images for
|
||
hardware supported by the Yocto Project by reading the
|
||
<ulink url='http://www.yoctoproject.org/docs/yocto-quick-start/yocto-project-qs.html'>
|
||
Yocto Project Quick Start</ulink> located on the <ulink url='http://www.yoctoproject.org'>
|
||
Yocto Project website</ulink>.
|
||
</para>
|
||
|
||
<para>
|
||
The remainder of this chapter summarizes what is in the Yocto Project Quick Start and provides
|
||
some higher level concepts you might want to consider.
|
||
</para>
|
||
|
||
<section id='introducing-the-yocto-project'>
|
||
<title>Introducing the Yocto Project</title>
|
||
|
||
<para>
|
||
The Yocto Project is an open-source collaboration project focused on embedded Linux developers.
|
||
The project provides a recent Linux kernel along with a set of system commands, libraries,
|
||
and system components suitable for the embedded developer.
|
||
The Yocto Project also features the Sato reference User Interface should you be dealing with
|
||
devices with restricted screens.
|
||
</para>
|
||
|
||
<para>
|
||
You can use the Yocto Project, which uses the BitBake build tool, to develop complete Linux
|
||
images and user-space applications for architectures based on ARM, MIPS, PowerPC, x86 and x86-64.
|
||
You can perform target-level testing and debugging as well as test in a hardware emulated environment.
|
||
And, if you are an Eclipse user, you can install an Eclipse Yocto Plug-in to allow you to
|
||
develop within that familiar environment.
|
||
</para>
|
||
</section>
|
||
|
||
<section id='getting-setup'>
|
||
<title>Getting Setup</title>
|
||
|
||
<para>
|
||
Here is what you need to get set up to use the Yocto Project:
|
||
<itemizedlist>
|
||
<listitem><para><emphasis>Host System:</emphasis> You need a recent release of Fedora,
|
||
OpenSUSE, Debian, or Ubuntu.
|
||
You should have a reasonably current Linux-based host system.
|
||
You should also have about 100 gigabytes of free disk space if you plan on building
|
||
images.</para></listitem>
|
||
<listitem><para><emphasis>Packages:</emphasis> Depending on your host system (Debian-based or RPM-based),
|
||
you need certain packages.
|
||
See the <ulink url='http://www.yoctoproject.org/docs/yocto-quick-start/yocto-project-qs.html#packages'>
|
||
The Packages</ulink> section in the Yocto Project Quick start for the exact package
|
||
requirements.</para></listitem>
|
||
<listitem><para><emphasis>Yocto Project Release:</emphasis> You need a release of the Yocto Project.
|
||
You can get set up with local Yocto Project files one of two ways depending on whether you
|
||
are going to be contributing back into the Yocto Project source repository or not.
|
||
<note>
|
||
Regardless of the method you use, this manual will refer to the resulting
|
||
hierarchical set of files as "the local Yocto Project files."
|
||
</note>
|
||
<itemizedlist>
|
||
<listitem><para><emphasis>Tarball Extraction:</emphasis> If you are not going to contribute
|
||
back into the Yocto Project you can simply download the Yocto Project release you want
|
||
from the website’s <ulink url='http://yoctoproject.org/download'>download page</ulink>.
|
||
Once you have the tarball, just extract it into a directory of your choice.</para>
|
||
|
||
<para>For example, the following command extracts the Yocto Project 1.1 release tarball
|
||
into the current working directory and sets up a file structure whose top-level
|
||
directory is named <filename>poky-1.1</filename>:
|
||
<literallayout class='monospaced'>
|
||
$ tar xfj poky-1.1.tar.bz2
|
||
</literallayout></para>
|
||
|
||
<para>This method does not produce a <filename>poky</filename> Git repository.
|
||
You end up simply with a local snapshot of Yocto Project files that are based on the
|
||
particular release in the tarball.</para></listitem>
|
||
<listitem><para><emphasis>Git Repository Method:</emphasis> If you are going to be contributing
|
||
back into the Yocto Project you should probably use Git commands to set up a local
|
||
<filename>poky</filename> Git repository of the Yocto Project.
|
||
Doing so creates a Git repository with a complete history of changes and allows
|
||
you to easily submit your changes upstream to the project.</para>
|
||
|
||
<para>The following transcript shows how to clone the <filename>poky</filename>
|
||
Git repository into the current working directory.
|
||
The command creates the repository in a directory named <filename>poky</filename>:
|
||
<literallayout class='monospaced'>
|
||
$ git clone git://git.yoctoproject.org/poky
|
||
Initialized empty Git repository in /home/scottrif/poky/.git/
|
||
remote: Counting objects: 107624, done.
|
||
remote: Compressing objects: 100% (37128/37128), done.
|
||
remote: Total 107624 (delta 73393), reused 99851 (delta 67287)
|
||
Receiving objects: 100% (107624/107624), 69.74 MiB | 483 KiB/s, done.
|
||
Resolving deltas: 100% (73393/73393), done.
|
||
</literallayout></para>
|
||
|
||
<para>For another example of how to set up your own local Git repositories see this
|
||
<ulink url='https://wiki.yoctoproject.org/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>
|
||
wiki page</ulink>, which describes how to create both <filename>poky</filename>
|
||
and <filename>meta-intel</filename> Git repositories.</para></listitem>
|
||
</itemizedlist></para></listitem>
|
||
<listitem><para><emphasis>Supported Board Support Packages (BSPs):</emphasis> The same considerations
|
||
exist for BSPs.
|
||
You can get set up for BSP development one of two ways:
|
||
<itemizedlist>
|
||
<listitem><para><emphasis>Tarball Extraction:</emphasis> You can download any released
|
||
BSP tarball from the same
|
||
<ulink url='http://yoctoproject.org/download'>download site</ulink>.
|
||
Once you have the tarball just extract it into a directory of your choice.
|
||
Again, this method just produces a snapshot of the BSP layer in the form
|
||
of a hierarchical directory structure.</para></listitem>
|
||
<listitem><para><emphasis>Git Repository Method:</emphasis> If you are working
|
||
with a <filename>poky</filename> Git repository you should also set up a
|
||
<filename>meta-intel</filename> Git repository.
|
||
Typically, you set up the <filename>meta-intel</filename> Git repository inside
|
||
the <filename>poky</filename> Git repository.</para>
|
||
|
||
<para>
|
||
For example, the following transcript shows the steps to clone the
|
||
<filename>meta-intel</filename>
|
||
Git repository inside the <filename>poky</filename>
|
||
<filename>poky</filename> Git repository.
|
||
<literallayout class='monospaced'>
|
||
$cd poky
|
||
$ git clone git://git.yoctoproject.org/meta-intel.git
|
||
Initialized empty Git repository in /home/scottrif/poky/meta-intel/.git/
|
||
remote: Counting objects: 1325, done.
|
||
remote: Compressing objects: 100% (1078/1078), done.
|
||
remote: Total 1325 (delta 546), reused 85 (delta 27)
|
||
Receiving objects: 100% (1325/1325), 1.56 MiB | 330 KiB/s, done.
|
||
Resolving deltas: 100% (546/546), done.
|
||
</literallayout></para>
|
||
|
||
<para>The same
|
||
<ulink url='https://wiki.yoctoproject.org/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>
|
||
wiki page</ulink> referenced earlier covers how to
|
||
set up the <filename>meta-intel</filename> Git repository.</para></listitem>
|
||
</itemizedlist></para></listitem>
|
||
<listitem><para><emphasis>Eclipse Yocto Plug-in:</emphasis> If you are developing using the
|
||
Eclipse Integrated Development Environment (IDE) you will need this plug-in.
|
||
See the
|
||
<ulink url='http://www.yoctoproject.org/docs/adt-manual/adt-manual.html#setting-up-the-eclipse-ide'>
|
||
Setting up the Eclipse IDE</ulink> section in the Yocto Application Development Toolkit (ADT)
|
||
User’s Guide for more information.</para></listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='building-images'>
|
||
<title>Building Images</title>
|
||
|
||
<para>
|
||
The build process creates an entire Linux distribution, including the toolchain, from source.
|
||
For more information on this topic, see the
|
||
<ulink url='http://www.yoctoproject.org/docs/yocto-quick-start/yocto-project-qs.html#building-image'>
|
||
Building an Image</ulink> section in the Yocto Project Quick Start.
|
||
</para>
|
||
|
||
<para>
|
||
The build process is as follows:
|
||
<orderedlist>
|
||
<listitem><para>Make sure you have the Yocto Project files as described in the
|
||
previous section.</para></listitem>
|
||
<listitem><para>Initialize the build environment by sourcing a build environment
|
||
script.</para></listitem>
|
||
<listitem><para>Make sure the <filename>conf/local.conf</filename> configuration file is set
|
||
up how you want it.
|
||
This file defines the target machine architecture and and other build configurations.</para></listitem>
|
||
<listitem><para>Build the image using the BitBake command.
|
||
If you want information on Bitbake, see the user manual at
|
||
<ulink url='http://docs.openembedded.org/bitbake/html'></ulink>.</para></listitem>
|
||
<listitem><para>Optionally, you can run the image in the QEMU emulator.</para></listitem>
|
||
</orderedlist>
|
||
</para>
|
||
</section>
|
||
|
||
<section id='using-pre-built-binaries-and-qemu'>
|
||
<title>Using Pre-Built Binaries and QEMU</title>
|
||
|
||
<para>
|
||
Another option you have to get started is to use a pre-built binary.
|
||
This scenario is ideal for developing software applications to run on your target hardware.
|
||
To do this you need to install the stand-alone Yocto toolchain tarball and then download the
|
||
pre-built kernel that you will boot using the QEMU emulator.
|
||
Next, you must download the filesystem for your target machine’s architecture.
|
||
Finally, you set up the environment to emulate the hardware then start the emulator.
|
||
</para>
|
||
|
||
<para>
|
||
You can find details on all these steps in the
|
||
<ulink url='http://www.yoctoproject.org/docs/yocto-quick-start/yocto-project-qs.html#using-pre-built'>
|
||
Using Pre-Built Binaries and QEMU</ulink> section in the Yocto Project Quick Start.
|
||
</para>
|
||
</section>
|
||
</chapter>
|
||
<!--
|
||
vim: expandtab tw=80 ts=4
|
||
-->
|