summaryrefslogtreecommitdiffstats
path: root/documentation/yocto-project-qs/qs.xml
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/yocto-project-qs/qs.xml')
-rw-r--r--documentation/yocto-project-qs/qs.xml1113
1 files changed, 0 insertions, 1113 deletions
diff --git a/documentation/yocto-project-qs/qs.xml b/documentation/yocto-project-qs/qs.xml
deleted file mode 100644
index 2e5defe6a00..00000000000
--- a/documentation/yocto-project-qs/qs.xml
+++ /dev/null
@@ -1,1113 +0,0 @@
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
-[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
-
-<chapter id='qs'>
-
- <section id='welcome'>
- <title>Welcome!</title>
-
- <para>
- Welcome to the Yocto Project!
- The Yocto Project is an open-source collaboration project whose
- focus is developers of embedded Linux systems.
- The Yocto Project provides a development
- environment that eases application, kernel image, and Linux image
- development for embedded hardware systems.
- You can think of the Yocto Project as an umbrella over-arching
- many components, which include a build system, a reference or
- test distribution, and various tools all designed to enhance
- your embedded Linux development experience.
- </para>
-
- <para>
- The Yocto Project uses a build host based on the OpenEmbedded
- (OE) project, which uses the
- <ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink>
- tool, to construct complete images.
- The BitBake and OE components combine together to form
- a reference build host, historically known as
- <ulink url='&YOCTO_DOCS_REF_URL;#poky'>Poky</ulink>
- (<emphasis>Pock</emphasis>-ee).
- Tools exist that facilitate aspects of development such as
- layer creation to isolate your work, emulation for testing
- modules, modification of existing source code, integration of
- new or modified modules into existing images, and so forth.
- </para>
-
- <para>
- Rather than go into great detail about the Yocto Project and its
- many capabilities, this quick start provides high-level
- practical information that lets you try out the Yocto Project.
- The quick start is written to help introduce you to the Yocto
- Project, get a feel for how to use it to build a Linux image or
- two, and provide you with a "road map" to other areas of interest
- for the new user.
- <note><title>Tips</title>
- <itemizedlist>
- <listitem><para>
- For more introductory and conceptual information on the
- Yocto Project, see the
- <ulink url='&YOCTO_DOCS_GS_URL;'>Getting Started With Yocto Project Manual</ulink>.
- </para></listitem>
- <listitem><para>
- For guidance on where to look for information beyond
- this quick start, see the
- "<link linkend='where-to-go-next'>Where To Go Next</link>"
- section.
- </para></listitem>
- </itemizedlist>
- </note>
- </para>
- </section>
-
- <section id='reference-build'>
- <title>Reference Build</title>
-
- <para>
- This section of the quick start lets you work through setting up
- a build host and then shows you how to build two images: one for
- emulation and one for target hardware.
- The steps do not go into great detail but are rather focused on
- just letting you get set up and quickly experience the Yocto
- Project.
- </para>
-
- <section id='yp-resources'>
- <title>Setting Up to Use the Yocto Project</title>
-
- <para>
- 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>
-
- <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='qs-crops-build-host'>
- <title>Using CROPS and Containers</title>
-
- <para>
- 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>
- <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>
- <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>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>
- </orderedlist>
- </para>
- </section>
-
- <section id='qs-native-linux-build-host'>
- <title>Using a Native Linux Machine</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:
- </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>
-
- <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'>
- $ sudo dnf 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><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>
-
- <section id='releases'>
- <title>Yocto Project Release</title>
-
- <para>
- 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_GS_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>
- 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'...
- remote: Counting objects: 361782, done.
- remote: Compressing objects: 100% (87100/87100), done.
- remote: Total 361782 (delta 268619), reused 361439 (delta 268277)
- Receiving objects: 100% (361782/361782), 131.94 MiB | 6.88 MiB/s, done.
- Resolving deltas: 100% (268619/268619), done.
- Checking connectivity... done.
- $ cd poky
- $ git checkout tags/&DISTRO_REL_TAG; -b poky_&DISTRO;
- </literallayout>
- </para>
-
- <para>
- 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>
-
- <section id='qs-building-images'>
- <title>Building Images</title>
-
- <para>
- 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>
- The remainder of this quick start steps you through 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 that you can load onto bootable
- media and actually boot target hardware.
- This example uses the MinnowBoard
- Turbot-compatible boards.
- </para></listitem>
- </itemizedlist>
- <note>
- The steps in the following two sections 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>
-
- <section id='building-an-image-for-emulation'>
- <title>Building an Image for Emulation</title>
-
- <para>
- Use the following commands to build your image.
- The OpenEmbedded build system creates an entire Linux
- distribution, including the toolchain, from source.
- <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>
- 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_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:
- <literallayout class='monospaced'>
- $ cd ~/poky
- $ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP;
- </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_NO_CAP;</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_REF_URL;#build-directory'>Build Directory</ulink>,
- which is <filename>build</filename> in this case
- and is located in the
- <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.
- </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>
- <note>
- <para>
- If you experience a build error due to resources
- temporarily being unavailable and it appears you
- should not be having this issue, it might be due
- to the combination of a 4.3+ Linux kernel and
- <filename>systemd</filename> version 228+
- (i.e. see this
- <ulink url='http://unix.stackexchange.com/questions/253903/creating-threads-fails-with-resource-temporarily-unavailable-with-4-3-kernel'>link</ulink>
- for information).
- </para>
-
- <para>
- To work around this issue, you can try either
- of the following:
- <itemizedlist>
- <listitem><para>
- Try the build again.
- </para></listitem>
- <listitem><para>
- Modify the "DefaultTasksMax"
- <filename>systemd</filename> parameter
- by uncommenting it and setting it to
- "infinity".
- You can find this parameter in the
- <filename>system.conf</filename> file
- located in
- <filename>/etc/systemd</filename>
- on most systems.
- </para></listitem>
- </itemizedlist>
- </para>
- </note>
- For information on using the
- <filename>bitbake</filename> command, see the
- "<ulink url='&YOCTO_DOCS_CM_URL;#usingpoky-components-bitbake'>BitBake</ulink>"
- section in the Yocto Project Concepts 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 Tasks Manual.
- </para></listitem>
- <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.
- </para></listitem>
- </orderedlist>
- </para>
- </section>
-
- <section id='building-an-image-for-hardware'>
- <title>Building an Image for Hardware</title>
-
- <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 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 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>.
- </note>
- </para>
-
- <para>
- <orderedlist>
- <listitem><para>
- <emphasis>Create a Local Copy of the
- <filename>meta-intel</filename> Repository:</emphasis>
- 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_REF_URL;#source-directory'>Source Directory</ulink>,
- which is <filename>poky</filename> in this example:
- <literallayout class='monospaced'>
- $ cd $HOME/poky
- $ git clone git://git.yoctoproject.org/meta-intel
- Cloning into 'meta-intel'...
- remote: Counting objects: 14039, done.
- remote: Compressing objects: 100% (4471/4471), done.
- remote: Total 14039 (delta 8130), reused 13837 (delta 7947)
- Receiving objects: 100% (14039/14039), 4.27 MiB | 3.98 MiB/s, done.
- Resolving deltas: 100% (8130/8130), done.
- Checking connectivity... done.
- </literallayout>
- By default when you clone a Git repository, the
- "master" branch is checked out.
- Before you build your image that uses the
- <filename>meta-intel</filename> layer, you must be
- 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>&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 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>
- 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 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'>
- $ cd $HOME/poky/build
- $ bitbake-layers add-layer "$HOME/poky/meta-intel"
- $ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf
- </literallayout>
- <note><title>Notes</title>
- <para>
- If you want a 64-bit build, use the following:
- <literallayout class='monospaced'>
- $ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf
- </literallayout>
- </para>
-
- <para>
- If you want 32-bit images, use the following:
- <literallayout class='monospaced'>
- $ echo 'MACHINE = "intel-core2-32"' >> conf/local.conf
- </literallayout>
- </para>
- </note>
- </para></listitem>
- <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 Turbot.
- Some possibilities are <filename>core-image-base</filename>,
- which is a console-only image.
- Another choice could be a
- <filename>core-image-full-cmdline</filename>, which is
- another console-only image but has more full-features
- Linux system functionality installed.
- For types of images you can build using the Yocto
- Project, see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
- chapter in the Yocto Project Reference Manual.</para>
- <para>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.
- For this example, the <filename>core-image-base</filename>
- image is built:
- <literallayout class='monospaced'>
- $ bitbake core-image-base
- </literallayout>
- <note>
- <para>
- If you experience a build error due to resources
- temporarily being unavailable and it appears you
- should not be having this issue, it might be due
- to the combination of a 4.3+ Linux kernel and
- <filename>systemd</filename> version 228+
- (i.e. see this
- <ulink url='http://unix.stackexchange.com/questions/253903/creating-threads-fails-with-resource-temporarily-unavailable-with-4-3-kernel'>link</ulink>
- for information).
- </para>
-
- <para>
- To work around this issue, you can try either
- of the following:
- <itemizedlist>
- <listitem><para>
- Try the build again.
- </para></listitem>
- <listitem><para>
- Modify the "DefaultTasksMax"
- <filename>systemd</filename> parameter
- by uncommenting it and setting it to
- "infinity".
- You can find this parameter in the
- <filename>system.conf</filename> file
- located in
- <filename>/etc/systemd</filename>
- on most systems.
- </para></listitem>
- </itemizedlist>
- </para>
- </note>
- Once the build completes, the resulting console-only image
- is located in the Build Directory here:
- <literallayout class='monospaced'>
- tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic
- </literallayout>
- </para></listitem>
- <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:
- <literallayout class='monospaced'>
- $ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE
- </literallayout>
- In the previous command, the
- <filename>TARGET_DEVICE</filename> is the device node in
- the host machine (e.g. <filename>/dev/sdc</filename>, which
- is most likely a USB stick, or
- <filename>/dev/mmcblk0</filename>, which is most likely an
- SD card).
- </para></listitem>
- <listitem><para>
- <emphasis>Boot the Hardware:</emphasis>
- With the boot device provisioned, you can insert the
- 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>
-
- <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></listitem>
- </orderedlist>
- </para>
- </section>
- </section>
- </section>
-
- <section id='where-to-go-next'>
- <title>Where To Go Next</title>
-
- <para>
- Now that you have experienced using the Yocto Project, you might
- be asking yourself "What now?"
- This next section of the Quick Start provides some "sign posts"
- that can help you find additional information depending on what
- you want to accomplish with the Yocto Project.
- The section provides a list of resources for more information,
- some links into sections that provide basic tasks, and some
- links into more specialized areas that go beyond building images.
- <note>
- You can also see the
- <ulink url='&YOCTO_HOME_URL;/documentation'></ulink> page for
- suggested sets of Yocto Project manuals designed for various
- levels of experience.
- </note>
- </para>
-
- <section id='additional-resources'>
- <title>Additional Resources</title>
-
- <para>
- The Yocto Project has many sources of information including
- the website, wiki pages, and user manuals.
- This section lists resources you might find helpful:
- <itemizedlist>
- <listitem><para>
- <emphasis>Website:</emphasis>
- The
- <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>
- 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>
- 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>
- <listitem><para>
- <emphasis>Yocto Project Implementation of Bugzilla:</emphasis>
- The Yocto Project uses its own implementation of
- Bugzilla that you can find
- <ulink url='&YOCTO_BUGZILLA_URL;'>here</ulink>.
- Bugzilla allows you to report and track the progress
- of defects and improvements to the Yocto Project.
- </para></listitem>
- <listitem><para>
- <emphasis>Yocto Project Wiki:</emphasis>
- The
- <ulink url='&YOCTO_WIKI_URL;'>Yocto Project Wiki</ulink>
- provides additional information on where to go next
- when ramping up with the Yocto Project, release
- information, project planning, and QA information.
- </para></listitem>
- <listitem><para>
- <emphasis>Yocto Project Mailing Lists:</emphasis>
- Related mailing lists provide a forum for discussion,
- patch submission and announcements.
- Several mailing lists exist and are grouped according
- to areas of concern.
- See the
- "<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing lists</ulink>"
- section in the Yocto Project Reference Manual for a
- complete list of Yocto Project mailing lists.
- </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 all related links and other
- user documentation.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='qs-guided-examples'>
- <title>Guided Examples</title>
-
- <para>
- Depending on what you primary interests are with the Yocto
- Project, you could consider any of the following:
- <itemizedlist>
- <listitem><para>
- <emphasis>Add a Layer for Hardware Support:</emphasis>
- For steps on how to add a Board Support Package (BSP)
- layer that supports specific hardware, see the
- "<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-bitbake-layers-script'>Creating a new BSP Layer Using the <filename>bitbake-layers</filename> Script</ulink>"
- section in the Yocto Project Board Support Package
- (BSP) Developer's Guide.
- For background information on BSP layers, see the
- "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>"
- section in the same manual.
- </para></listitem>
- <listitem><para>
- <emphasis>Create a Layer for Software:</emphasis>
- For steps on how to create a general layer for software,
- see the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-a-general-layer-using-the-bitbake-layers-script'>Creating a General Layer Using the <filename>bitbake-layers</filename> Script</ulink>"
- section in the Yocto Project Development Tasks Manual.
- For background information on layers in general, see the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>"
- section in the same manual.
- </para></listitem>
- <listitem><para>
- <emphasis>Write a New Recipe:</emphasis>
- For steps on how to write a new recipe,
- 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 Tasks Manual.
- </para></listitem>
- <listitem><para role='writernotes'>
- <emphasis>Create a Layer for Customizations:</emphasis>
- This is a step suggested by Richard.
- I don't know the distinction between creating a layer
- for customizations and creating a general layer as
- pointed out earlier for creating a general layer
- (i.e. a layer for software).
- I need some help on this bullet item.
- </para></listitem>
- <listitem><para>
- <emphasis>Add a Custom Kernel:</emphasis>
- For steps on how to modify and create your own custom
- kernel, see the
- "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#using-devtool-to-patch-the-kernel'>Using <filename>devtool</filename> to Patch the Kernel</ulink>"
- section in the Yocto Project Linux Kernel Development
- Manual.
- </para></listitem>
- <listitem><para>
- <emphasis>Change the Default Kernel Configuration:</emphasis>
- For steps on how to configure the kernel, see the
- "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#configuring-the-kernel'>Configuring the Kernel</ulink>"
- section in the Yocto Project Linux Kernel Development
- Manual.
- </para></listitem>
- <listitem><para>
- <emphasis>Submit a Change to the Yocto Project:</emphasis>
- For steps on how to submit a change or patch to the
- Yocto Project, see the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#how-to-submit-a-change'>Submitting a Change to the Yocto Project</ulink>"
- section in the Yocto Project Development Tasks Manual.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='going-beyond-builds'>
- <title>Going Beyond Builds</title>
-
- <para>
- This section presents some pointers to topics that go beyond
- building images:
- <itemizedlist>
- <listitem><para>
- <emphasis>The OpenEmbedded Layer Index:</emphasis>
- This index shows layers that exist for use with the
- Yocto Project.
- More times than not, you can find layers for your own
- use or layers that are close to what you need and can
- be leveraged when creating your own layers.
- See
- <ulink url='http://layers.openembedded.org/layerindex/branch/master/layers/'>http://layers.openembedded.org/layerindex/branch/master/layers/</ulink>
- for the layer index.
- </para></listitem>
- <listitem><para>
- <emphasis>Yocto Project Autobuilder:</emphasis>
- Autobuilders provide automatic building in a
- development or production environment.
- For information on the autobuilders used by the Yocto
- Project, see the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-changes-collaborate'>Setting Up a Team Yocto Project Development Environment</ulink>"
- section of the Yocto Project Development Tasks Manual.
- You can also see the
- <ulink url='http://autobuilder.yoctoproject.org/'>http://autobuilder.yoctoproject.org/</ulink>
- link.
- </para></listitem>
- <listitem><para>
- <emphasis>Yocto Project Compatibility:</emphasis>
- When you create layers, you can take steps to make sure
- your layer is compatible with the Yocto Project.
- See the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#making-sure-your-layer-is-compatible-with-yocto-project'>Making Sure Your Layer is Compatible With Yocto Project</ulink>"
- section in the Yocto Project Development Tasks Manual
- for more information.
- </para></listitem>
- <listitem><para>
- <emphasis>Auto Upgrade Tools:</emphasis>
- Tools exits to help ease upgrading recipe versions.
- In particular, you can use the
- <ulink url='&YOCTO_DOCS_DEV_URL;#gs-using-the-auto-upgrade-helper'>Auto Upgrade Helper (AUH)</ulink>
- and
- <ulink url='&YOCTO_DOCS_DEV_URL;#gs-using-devtool-upgrade'><filename>devtool upgrade</filename></ulink>
- to upgrade recipes to newer versions.
- </para></listitem>
- <listitem><para role='writernotes'>
- <emphasis>Patches and Patchwork:</emphasis>
- This is a step suggested by Richard.
- I don't know what this is and need help with this
- bullet item.
- </para></listitem>
- <listitem><para>
- <emphasis>Pseudo:</emphasis>
- Pseudo gives the illusion of running under root and is
- used by the OpenEmbedded build system during the image
- generation process.
- For information on Fakeroot and Pseudo, see the
- "<ulink url='&YOCTO_DOCS_CM_URL;#fakeroot-and-pseudo'>Fakeroot and Pseudo</ulink>"
- section in the Yocto Project Concepts Manual.
- </para></listitem>
- <listitem><para role='writernotes'>
- <emphasis>OPKG:</emphasis>
- OPKG is a file management system.
- I am not sure what Richard had in mind for suggesting
- this "beyond builds" topic.
- I have one reference at
- "<ulink url='&YOCTO_DOCS_DEV_URL;#runtime-package-management-target-ipk'>Using IPK</ulink>"
- in the Yocto Project Development Tasks Manual that
- is the bulk of my known information.
- I need more help with this bullet item.
- </para></listitem>
- <listitem><para>
- <emphasis>Team Yocto Project Development Environments:</emphasis>
- For information on Yocto Project development team
- environments, see the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-changes-collaborate'>Setting Up a Team Yocto Project Development Environment</ulink>"
- section in the Yocto Project Development Tasks Manual.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
- </section>
-</chapter>
-<!--
-vim: expandtab tw=80 ts=4
--->