## Chapter 8. Images

The OpenEmbedded build process supports several types of images to satisfy different needs. When you issue the `bitbake` command you provide a “top-level” recipe that essentially begins the build for the type of image you want.

### 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 `local.conf` file before using the BitBake command to build the minimal or base image:

         1. Comment out the EXTRA_IMAGE_FEATURES line
         2. Set INCOMPATIBLE_LICENSE = "GPLv3"

From within the `poky` Git repository, use the following command to list the supported images:

         $ ls meta*/recipes*/images/*.bb

These recipes reside in the `meta/recipes-core/images`, `meta/recipes-extended/images`, `meta/recipes-graphics/images`, and `meta/recipes-sato/images` directories within the source directory. Although the recipe names are somewhat explanatory, here is a list that describes them:

- `core-image-base`: A console-only image that fully supports the target device hardware.

- `core-image-minimal`: A small image just capable of allowing a device to boot.

- `core-image-minimal-dev`: A `core-image-minimal` image suitable for development work using the host. The image includes headers and libraries you can use in a host development environment.

- `core-image-minimal-initramfs`: A `core-image-minimal` image that has the Minimal RAM-based Initial Root Filesystem (`initramfs`) as part of the kernel, which allows the system to find the first “init” program more efficiently.

- `core-image-minimal-mtdutils`: A `core-image-minimal` 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.

- `core-image-x11`: A very basic X11 image with a terminal.

- `core-image-basic`: A console-only image with more full-featured Linux system functionality installed.

- `core-image-lsb`: An image that conforms to the Linux Standard Base (LSB) specification.

- `core-image-lsb-dev`: A `core-image-lsb` image that is suitable for development work using the host. The image includes headers and libraries you can use in a host development environment.

- `core-image-lsb-sdk`: A `core-image-lsb` 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.

- `core-image-clutter`: An image with support for the Open GL-based toolkit Clutter, which enables development of rich and animated graphical user interfaces.

- `core-image-sato`: 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.

- `core-image-sato-dev`: A `core-image-sato` 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 `core-image-sdk`.

- `core-image-sato-sdk`: A `core-image-sato` 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.

- `core-image-rt`: A `core-image-minimal` image plus a real-time test suite and tools appropriate for real-time use.

- `core-image-rt-sdk`: A `core-image-rt` image that includes everything in `meta-toolchain`. The image also includes development headers and libraries to form a complete stand-alone SDK and is suitable for development using the target.

- `core-image-gtk-directfb`: An image that uses `gtk+` over `directfb` instead of X11. In order to build, this image requires specific distro configuration that enables `gtk` over `directfb`.

- `build-appliance-image`: An image you can boot and run using either the VMware Player or VMware Workstation. For more information on this image, see the Build Appliance page on the Yocto Project website.

### Tip

From the Yocto Project release 1.1 onwards, `-live` and `-directdisk` images have been replaced by a "live" option in `IMAGE_FSTYPES` 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 `IMAGE_FSTYPES` within the `local.conf` file or wherever appropriate and then build the desired image as normal.