<!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='ref-images'>
    <title>Images</title>

    <para>
        The OpenEmbedded 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 General 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
        within the <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
        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-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
            using the host.
            The image includes headers and libraries you can use in a host development
            environment.
            </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-x11</filename>:</emphasis>
            A very basic X11 image with a terminal.
            </para></listitem>
        <listitem><para><emphasis><filename>core-image-basic</filename>:</emphasis>
            A console-only image with more full-featured Linux system
            functionality installed.</para></listitem>
        <listitem><para><emphasis><filename>core-image-lsb</filename>:</emphasis>
            An image that conforms to the Linux Standard Base (LSB) specification.</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
            using the host.
            The image includes headers and libraries you can use in a host development
            environment.
            </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.
            This image is suitable for development using the target.</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 applications such as
            a terminal, editor, file manager, media player, and so forth.</para></listitem>
        <listitem><para><emphasis><filename>core-image-sato-dev</filename>:</emphasis>
            A <filename>core-image-sato</filename> image suitable for development
            using the host.
            The image includes libraries needed to build applications on the device itself,
            testing and profiling tools, and 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
            and is suitable for development using the target.</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 and is suitable for development using the target.</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>
        <listitem><para><emphasis><filename>build-appliance-image</filename>:</emphasis>
            An image you can boot and run using either the
            <ulink url='http://www.vmware.com/products/player/overview.html'>VMware Player</ulink>
            or <ulink url='http://www.vmware.com/products/workstation/overview.html'>VMware Workstation</ulink>.
            For more information on this image, see the
            <ulink url='&YOCTO_HOME_URL;/documentation/build-appliance'>Build Appliance</ulink> page on
            the Yocto Project website.</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>
</chapter>
<!--
vim: expandtab tw=80 ts=4
-->
