<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">

<appendix id='ref-images'>
    <title>Reference: Images</title>

    <para>
        The Yocto Project build process supports several types of images to satisfy different needs.  
        When you issue the <filename>bitbake</filename> command you provide a “top-level” recipe 
        that essentially begins the build for the type of image you want.
    </para>

    <note>
        Building an image without GNU Public License Version 3 (GPLv3) components is 
        only supported for minimal and base images.
        Furthermore, if you are going to build an image using non-GPLv3 components,
        you must make the following changes in the <filename>local.conf</filename> file
        before using the BitBake command to build the minimal or base image:
        <literallayout class='monospaced'>
     1. Comment out the EXTRA_IMAGE_FEATURES line
     2. Set INCOMPATIBLE_LICENSE = "GPLv3"
        </literallayout>
    </note>

    <para>
        From within the <filename>poky</filename> Git repository, use the following command to list 
        the supported images:
        <literallayout class='monospaced'>
     $ ls meta*/recipes*/images/*.bb
        </literallayout>
        These recipes reside in the <filename>meta/recipes-core/images</filename>,
        <filename>meta/recipes-extended/images</filename>, 
        <filename>meta/recipes-graphics/images</filename>, and 
        <filename>meta/recipes-sato/images</filename> directories of your local Yocto Project 
        file structure (Git repository or extracted release tarball).  
        Although the recipe names are somewhat explanatory, here is a list that describes them:
    </para>

    <itemizedlist>
        <listitem><para><emphasis><filename>core-image-base</filename>:</emphasis>
            A console-only image that fully supports the target device hardware.</para></listitem>
        <listitem><para><emphasis><filename>core-image-core</filename>:</emphasis>
            An X11 image with simple applications such as terminal, editor, and file manager.
            </para></listitem>
        <listitem><para><emphasis><filename>core-image-minimal</filename>:</emphasis>
            A small image just capable of allowing a device to boot.</para></listitem>
        <listitem><para><emphasis><filename>core-image-minimal-dev</filename>:</emphasis>
            A <filename>core-image-minimal</filename> image suitable for development work.
            </para></listitem>
        <listitem><para><emphasis><filename>core-image-minimal-initramfs</filename>:</emphasis>
            A <filename>core-image-minimal</filename> image that has the Minimal RAM-based 
            Initial Root Filesystem (<filename>initramfs</filename>) as part of the kernel, 
            which allows the system to find the first “init” program more efficiently.
            </para></listitem>
        <listitem><para><emphasis><filename>core-image-minimal-mtdutils</filename>:</emphasis>
            A <filename>core-image-minimal</filename> image that has support 
            for the Minimal MTD Utilities, which let the user interact with the 
            MTD subsystem in the kernel to perform operations on flash devices.
            </para></listitem>
        <listitem><para><emphasis><filename>core-image-basic</filename>:</emphasis>
            A foundational basic image without support for X that can be reasonably used for 
            customization.</para></listitem>
        <listitem><para><emphasis><filename>core-image-lsb</filename>:</emphasis>
            A <filename>core-image-basic</filename> image suitable for implementations 
            that conform to Linux Standard Base (LSB).</para></listitem>
        <listitem><para><emphasis><filename>core-image-lsb-dev</filename>:</emphasis>
            A <filename>core-image-lsb</filename> image that is suitable for development work.
            </para></listitem>
        <listitem><para><emphasis><filename>core-image-lsb-sdk</filename>:</emphasis>
            A <filename>core-image-lsb</filename> that includes everything in meta-toolchain 
            but also includes development headers and libraries to form a complete standalone SDK. 
            See the "<link linkend='platdev-appdev-external-sdk'>External Development Using the Meta-Toolchain</link>"
            section for more information.</para></listitem>
        <listitem><para><emphasis><filename>core-image-clutter</filename>:</emphasis>
            An image with support for the Open GL-based toolkit Clutter, which enables development of 
            rich and animated graphical user interfaces.</para></listitem>
        <listitem><para><emphasis><filename>core-image-sato</filename>:</emphasis>
            An image with Sato support, a mobile environment and visual style that works well 
            with mobile devices.
            The image supports X11 with a Sato theme and Pimlico applications and also  
            contains terminal, editor, and file manager.</para></listitem>
        <listitem><para><emphasis><filename>core-image-sato-dev</filename>:</emphasis>
            A <filename>core-image-sato</filename> image suitable for development
            that also includes a native toolchain and libraries needed to build applications on 
            the device itself. 
            The image also includes testing and profiling tools as well as debug symbols.  
            This image was formerly <filename>core-image-sdk</filename>.</para></listitem>
        <listitem><para><emphasis><filename>core-image-sato-sdk</filename>:</emphasis>
            A <filename>core-image-sato</filename> image that includes everything in meta-toolchain. 
            The image also includes development headers and libraries to form a complete standalone SDK. 
            See the "<link linkend='platdev-appdev-external-sdk'>External Development Using the Meta-Toolchain</link>" 
            section for more information.</para></listitem>
        <listitem><para><emphasis><filename>core-image-rt</filename>:</emphasis>
            A <filename>core-image-minimal</filename> image plus a real-time test suite and 
            tools appropriate for real-time use.</para></listitem>
        <listitem><para><emphasis><filename>core-image-rt-sdk</filename>:</emphasis>
            A <filename>core-image-rt</filename> image that includes everything in 
            <filename>meta-toolchain</filename>.  
            The image also includes development headers and libraries to form a complete 
            stand-alone SDK.  
            See the "<link linkend='platdev-appdev-external-sdk'>External Development Using the Meta-Toolchain</link>"
            section for more information.</para></listitem>
        <listitem><para><emphasis><filename>core-image-gtk-directfb</filename>:</emphasis>
            An image that uses <filename>gtk+</filename> over <filename>directfb</filename> 
            instead of X11.  
            In order to build, this image requires specific distro configuration that enables 
            <filename>gtk</filename> over <filename>directfb</filename>.</para></listitem>
    </itemizedlist>

    <tip>
        From the Yocto Project release 1.1 onwards, <filename>-live</filename> and 
        <filename>-directdisk</filename> images have been replaced by a "live"
        option in <filename>IMAGE_FSTYPES</filename> that will work with any image to produce an 
        image file that can be
        copied directly to a CD or USB device and run as is. 
        To build a live image, simply add
        "live" to <filename>IMAGE_FSTYPES</filename> within the <filename>local.conf</filename>
        file or wherever appropriate and then build the desired image as normal.
    </tip>
</appendix>
<!-- 
vim: expandtab tw=80 ts=4 
-->
