summaryrefslogtreecommitdiffstats
path: root/documentation/poky-ref-manual/ref-images.xml
blob: 4e7b029ea761bd06d63dcdaf2a21c3876fa4c1fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<!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 Poky SDK</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 Poky SDK</link> section for more information.
            </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 
-->