|
@@ -1,21 +1,140 @@
|
|
|
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
|
+<!DOCTYPE book 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; ] >
|
|
|
|
|
|
-<article id='yocto-project-qs-intro'>
|
|
|
- <articleinfo>
|
|
|
- <title>Yocto Project Quick Start</title>
|
|
|
+<book id='yocto-project-qs' lang='en'
|
|
|
+ xmlns:xi="http://www.w3.org/2003/XInclude"
|
|
|
+ xmlns="http://docbook.org/ns/docbook"
|
|
|
+ >
|
|
|
+ <bookinfo>
|
|
|
+
|
|
|
+ <mediaobject>
|
|
|
+ <imageobject>
|
|
|
+ <imagedata fileref='figures/ypqs-title.png'
|
|
|
+ format='SVG'
|
|
|
+ align='center' scalefit='1' width='100%'/>
|
|
|
+ </imageobject>
|
|
|
+ </mediaobject>
|
|
|
+
|
|
|
+ <title>
|
|
|
+ Yocto Project Quick Start
|
|
|
+ </title>
|
|
|
+
|
|
|
+ <authorgroup>
|
|
|
+ <author>
|
|
|
+ <firstname>Scott</firstname> <surname>Rifenbark</surname>
|
|
|
+ <affiliation>
|
|
|
+ <orgname>Scotty's Documentation Services, INC</orgname>
|
|
|
+ </affiliation>
|
|
|
+ <email>srifenbark@gmail.com</email>
|
|
|
+ </author>
|
|
|
+ </authorgroup>
|
|
|
|
|
|
- <copyright>
|
|
|
- <year>©RIGHT_YEAR;</year>
|
|
|
- <holder>Linux Foundation</holder>
|
|
|
- </copyright>
|
|
|
+<!--
|
|
|
+ <revhistory>
|
|
|
+ <revision>
|
|
|
+ <revnumber>0.9</revnumber>
|
|
|
+ <date>24 November 2010</date>
|
|
|
+ <revremark>The initial document draft released with the Yocto Project 0.9 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.0</revnumber>
|
|
|
+ <date>6 April 2011</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.0 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.0.1</revnumber>
|
|
|
+ <date>23 May 2011</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.0.1 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.1</revnumber>
|
|
|
+ <date>6 October 2011</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.1 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.2</revnumber>
|
|
|
+ <date>April 2012</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.2 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.3</revnumber>
|
|
|
+ <date>October 2012</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.3 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.4</revnumber>
|
|
|
+ <date>April 2013</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.4 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.5</revnumber>
|
|
|
+ <date>October 2013</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.5 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.5.1</revnumber>
|
|
|
+ <date>January 2014</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.5.1 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.6</revnumber>
|
|
|
+ <date>April 2014</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.6 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.7</revnumber>
|
|
|
+ <date>October 2014</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.7 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>1.8</revnumber>
|
|
|
+ <date>April 2015</date>
|
|
|
+ <revremark>Released with the Yocto Project 1.8 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>2.0</revnumber>
|
|
|
+ <date>October 2015</date>
|
|
|
+ <revremark>Released with the Yocto Project 2.0 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>2.1</revnumber>
|
|
|
+ <date>April 2016</date>
|
|
|
+ <revremark>Released with the Yocto Project 2.1 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>2.2</revnumber>
|
|
|
+ <date>October 2016</date>
|
|
|
+ <revremark>Released with the Yocto Project 2.2 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>2.3</revnumber>
|
|
|
+ <date>May 2017</date>
|
|
|
+ <revremark>Released with the Yocto Project 2.3 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>2.4</revnumber>
|
|
|
+ <date>October 2017</date>
|
|
|
+ <revremark>Released with the Yocto Project 2.4 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ <revision>
|
|
|
+ <revnumber>2.5</revnumber>
|
|
|
+ <date>April 2018</date>
|
|
|
+ <revremark>Released with the Yocto Project 2.5 Release.</revremark>
|
|
|
+ </revision>
|
|
|
+ </revhistory>
|
|
|
+-->
|
|
|
|
|
|
- <legalnotice>
|
|
|
- <para>
|
|
|
- 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>
|
|
|
+ <copyright>
|
|
|
+ <year>©RIGHT_YEAR;</year>
|
|
|
+ <holder>Linux Foundation</holder>
|
|
|
+ </copyright>
|
|
|
+
|
|
|
+ <legalnotice>
|
|
|
+ <para>
|
|
|
+ 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-nc-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>
|
|
@@ -44,1022 +163,18 @@
|
|
|
</para></listitem>
|
|
|
</itemizedlist>
|
|
|
</note>
|
|
|
- </legalnotice>
|
|
|
-
|
|
|
- <abstract>
|
|
|
- <imagedata fileref="figures/yocto-project-transp.png"
|
|
|
- width="6in" depth="1in"
|
|
|
- align="right" scale="25" />
|
|
|
- </abstract>
|
|
|
- </articleinfo>
|
|
|
+ </legalnotice>
|
|
|
|
|
|
- <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.
|
|
|
- Among other things, 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 Linux 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>Pah</emphasis>-kee).
|
|
|
- </para>
|
|
|
+ </bookinfo>
|
|
|
|
|
|
- <para>
|
|
|
- This quick start is written so that you can quickly get a
|
|
|
- build host set up to use the Yocto Project and then build some
|
|
|
- Linux images.
|
|
|
- Rather than go into great detail about the Yocto Project and its
|
|
|
- many capabilities, this quick start provides the minimal
|
|
|
- information you need to try out the Yocto Project using 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>
|
|
|
+ <xi:include href="qs.xml"/>
|
|
|
|
|
|
- <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 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>
|
|
|
+<!-- <index id='index'>
|
|
|
+ <title>Index</title>
|
|
|
+ </index>
|
|
|
-->
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- For more detailed information on the Yocto Project, you can
|
|
|
- reference these resources:
|
|
|
- <itemizedlist>
|
|
|
- <listitem><para>
|
|
|
- <emphasis>Website:</emphasis>
|
|
|
- The
|
|
|
- <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>
|
|
|
- provides bacground 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>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>
|
|
|
- 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>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-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>
|
|
|
- CentOS 6.x users need to ensure that the
|
|
|
- required versions of Git, tar and Python
|
|
|
- are available.
|
|
|
- For details, See the
|
|
|
- "<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
|
|
|
- section in the Yocto Project Reference
|
|
|
- Manual for information.
|
|
|
- </para></listitem>
|
|
|
- <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_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
|
|
|
- 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.
|
|
|
- $ 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_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>"
|
|
|
- section in the Yocto Project Reference Manual, or see the
|
|
|
- "<ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual-command'>BitBake Command</ulink>"
|
|
|
- section in the BitBake User Manual.
|
|
|
- For information on other targets, see the
|
|
|
- "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
|
|
|
- chapter in the Yocto Project Reference Manual.
|
|
|
- </para></listitem>
|
|
|
- <listitem><para>
|
|
|
- <emphasis>Simulate Your Image Using QEMU:</emphasis>
|
|
|
- Once this particular image is built, you can start QEMU
|
|
|
- and run the image:
|
|
|
- <literallayout class='monospaced'>
|
|
|
- $ runqemu qemux86
|
|
|
- </literallayout>
|
|
|
- If you want to learn more about running QEMU, see the
|
|
|
- "<ulink url="&YOCTO_DOCS_DEV_URL;#dev-manual-qemu">Using the Quick EMUlator (QEMU)</ulink>"
|
|
|
- chapter in the Yocto Project Development 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 id='qs-next-steps'>
|
|
|
- <title>Next Steps</title>
|
|
|
-
|
|
|
- <para>
|
|
|
- If you completed all the steps in the previous section then
|
|
|
- congratulations!
|
|
|
- What now?
|
|
|
- </para>
|
|
|
|
|
|
- <para>
|
|
|
- Depending on what you primary interests are with the Yocto Project,
|
|
|
- you could consider any of the following:
|
|
|
- <itemizedlist>
|
|
|
- <listitem><para>
|
|
|
- <emphasis>Visit the Yocto Project Web Site:</emphasis>
|
|
|
- The official
|
|
|
- <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink>
|
|
|
- web site contains information on the entire project.
|
|
|
- Visiting this site is a good way to familiarize yourself
|
|
|
- with the overall project.
|
|
|
- </para></listitem>
|
|
|
- <listitem><para>
|
|
|
- <emphasis>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
|
|
|
- <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-intro'>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 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>"
|
|
|
- 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 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>
|
|
|
- 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
|
|
|
- <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;#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>,
|
|
|
- guidance on
|
|
|
- <ulink url='&YOCTO_DOCS_REF_URL;#migration'>migrating to a newer Yocto Project release</ulink>,
|
|
|
- reference material on the
|
|
|
- <ulink url='&YOCTO_DOCS_REF_URL;#ref-structure'>directory structure</ulink>,
|
|
|
- <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes'>classes</ulink>,
|
|
|
- and
|
|
|
- <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks'>tasks</ulink>.
|
|
|
- The Yocto Project Reference Manual also contains a fairly
|
|
|
- comprehensive
|
|
|
- <ulink url='&YOCTO_DOCS_REF_URL;#ref-variables-glossary'>glossary of variables</ulink>
|
|
|
- used within the Yocto Project.
|
|
|
- </para></listitem>
|
|
|
- </itemizedlist>
|
|
|
- </para>
|
|
|
- </section>
|
|
|
-</article>
|
|
|
+</book>
|
|
|
<!--
|
|
|
vim: expandtab tw=80 ts=4
|
|
|
-->
|