diff options
Diffstat (limited to 'documentation/yocto-project-qs/qs.xml')
-rw-r--r-- | documentation/yocto-project-qs/qs.xml | 1113 |
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 ---> |