<!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>,
        <filename>meta/recipes-qt/images</filename>,
        <filename>meta/recipes-rt/images</filename>,
        <filename>meta/recipes-sato/images</filename>, and
        <filename>meta-skeleton/recipes-multilib/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>build-appliance-image</filename>:</emphasis>
            An example virtual machine that contains all the pieces required to
            run builds using the build system as well as the build system itself.
            You can boot and run the image 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>
        <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-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-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>core-image-x11</filename>:</emphasis>
            A very basic X11 image with a terminal.
            </para></listitem>
        <listitem><para><emphasis><filename>qt4e-demo-image</filename>:</emphasis>
            An image that launches into the demo application for the embedded
            (not based on X11) version of Qt.</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-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-multilib-example</filename>:</emphasis>
            An example image that includes a <filename>lib32</filename> version
            of Bash into an otherwise standard <filename>sato</filename> image.
            The image assumes a "lib32" multilib has been enabled in the your
            configuration.</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
-->
