blob: c45f9104a949f7470fe11e8e70533c7a2ee8b16e [file] [log] [blame]
Andrew Geisslerf0343792020-11-18 10:42:21 -06001.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Andrew Geisslerc9f78652020-09-18 14:11:35 -05002
3******
4Images
5******
6
7The OpenEmbedded build system provides several example images to satisfy
8different needs. When you issue the ``bitbake`` command you provide a
9"top-level" recipe that essentially begins the build for the type of
10image you want.
11
12.. note::
13
14 Building an image without GNU General Public License Version 3
15 (GPLv3), GNU Lesser General Public License Version 3 (LGPLv3), and
16 the GNU Affero General Public License Version 3 (AGPL-3.0) components
Patrick Williams2a254922023-08-11 09:48:11 -050017 is only tested for core-image-minimal image. Furthermore, if you would like to
18 build an image and verify that it does not include GPLv3 and similarly licensed
19 components, you must make the following changes in the image recipe
20 file before using the BitBake command to build the image:
Andrew Geisslerc9f78652020-09-18 14:11:35 -050021
Patrick Williams2a254922023-08-11 09:48:11 -050022 INCOMPATIBLE_LICENSE = "GPL-3.0* LGPL-3.0*"
Andrew Geisslerc9f78652020-09-18 14:11:35 -050023
Patrick Williams2a254922023-08-11 09:48:11 -050024 Alternatively, you can adjust ``local.conf`` file, repeating and adjusting the line
25 for all images where the license restriction must apply:
26
27 INCOMPATIBLE_LICENSE:pn-your-image-name = "GPL-3.0* LGPL-3.0*"
Andrew Geisslerc9f78652020-09-18 14:11:35 -050028
29From within the ``poky`` Git repository, you can use the following
30command to display the list of directories within the :term:`Source Directory`
Andrew Geisslerc926e172021-05-07 16:11:35 -050031that contain image recipe files::
Andrew Geisslerc9f78652020-09-18 14:11:35 -050032
33 $ ls meta*/recipes*/images/*.bb
34
Patrick Williams39653562024-03-01 08:54:02 -060035Here is a list of supported recipes:
Andrew Geisslerc9f78652020-09-18 14:11:35 -050036
37- ``build-appliance-image``: An example virtual machine that contains
38 all the pieces required to run builds using the build system as well
39 as the build system itself. You can boot and run the image using
40 either the `VMware
Andrew Geisslerd1e89492021-02-12 15:35:20 -060041 Player <https://www.vmware.com/products/player/overview.html>`__ or
Andrew Geisslerc9f78652020-09-18 14:11:35 -050042 `VMware
Andrew Geisslerd1e89492021-02-12 15:35:20 -060043 Workstation <https://www.vmware.com/products/workstation/overview.html>`__.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050044 For more information on this image, see the :yocto_home:`Build
Andrew Geisslerc3d88e42020-10-02 09:45:00 -050045 Appliance </software-item/build-appliance>` page
Andrew Geisslerc9f78652020-09-18 14:11:35 -050046 on the Yocto Project website.
47
48- ``core-image-base``: A console-only image that fully supports the
49 target device hardware.
50
Andrew Geisslerc9f78652020-09-18 14:11:35 -050051- ``core-image-full-cmdline``: A console-only image with more
52 full-featured Linux system functionality installed.
53
54- ``core-image-lsb``: An image that conforms to the Linux Standard Base
55 (LSB) specification. This image requires a distribution configuration
56 that enables LSB compliance (e.g. ``poky-lsb``). If you build
57 ``core-image-lsb`` without that configuration, the image will not be
58 LSB-compliant.
59
60- ``core-image-lsb-dev``: A ``core-image-lsb`` image that is suitable
61 for development work using the host. The image includes headers and
62 libraries you can use in a host development environment. This image
63 requires a distribution configuration that enables LSB compliance
64 (e.g. ``poky-lsb``). If you build ``core-image-lsb-dev`` without that
65 configuration, the image will not be LSB-compliant.
66
67- ``core-image-lsb-sdk``: A ``core-image-lsb`` that includes everything
68 in the cross-toolchain but also includes development headers and
69 libraries to form a complete standalone SDK. This image requires a
70 distribution configuration that enables LSB compliance (e.g.
71 ``poky-lsb``). If you build ``core-image-lsb-sdk`` without that
72 configuration, the image will not be LSB-compliant. This image is
73 suitable for development using the target.
74
75- ``core-image-minimal``: A small image just capable of allowing a
76 device to boot.
77
78- ``core-image-minimal-dev``: A ``core-image-minimal`` image suitable
79 for development work using the host. The image includes headers and
80 libraries you can use in a host development environment.
81
82- ``core-image-minimal-initramfs``: A ``core-image-minimal`` image that
Patrick Williams2194f502022-10-16 14:26:09 -050083 has the Minimal RAM-based Initial Root Filesystem (:term:`Initramfs`) as part
Andrew Geisslerc9f78652020-09-18 14:11:35 -050084 of the kernel, which allows the system to find the first "init"
85 program more efficiently. See the
86 :term:`PACKAGE_INSTALL` variable for
Patrick Williams2194f502022-10-16 14:26:09 -050087 additional information helpful when working with :term:`Initramfs` images.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050088
89- ``core-image-minimal-mtdutils``: A ``core-image-minimal`` image that
90 has support for the Minimal MTD Utilities, which let the user
91 interact with the MTD subsystem in the kernel to perform operations
92 on flash devices.
93
94- ``core-image-rt``: A ``core-image-minimal`` image plus a real-time
95 test suite and tools appropriate for real-time use.
96
97- ``core-image-rt-sdk``: A ``core-image-rt`` image that includes
98 everything in the cross-toolchain. The image also includes
99 development headers and libraries to form a complete stand-alone SDK
100 and is suitable for development using the target.
101
102- ``core-image-sato``: An image with Sato support, a mobile environment
103 and visual style that works well with mobile devices. The image
104 supports X11 with a Sato theme and applications such as a terminal,
105 editor, file manager, media player, and so forth.
106
107- ``core-image-sato-dev``: A ``core-image-sato`` image suitable for
108 development using the host. The image includes libraries needed to
109 build applications on the device itself, testing and profiling tools,
110 and debug symbols. This image was formerly ``core-image-sdk``.
111
112- ``core-image-sato-sdk``: A ``core-image-sato`` image that includes
113 everything in the cross-toolchain. The image also includes
114 development headers and libraries to form a complete standalone SDK
115 and is suitable for development using the target.
116
Andrew Geissler595f6302022-01-24 19:11:47 +0000117- ``core-image-testmaster``: A "controller" image designed to be used for
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500118 automated runtime testing. Provides a "known good" image that is
119 deployed to a separate partition so that you can boot into it and use
120 it to deploy a second image to be tested. You can find more
121 information about runtime testing in the
Andrew Geissler517393d2023-01-13 08:55:19 -0600122 ":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500123 section in the Yocto Project Development Tasks Manual.
124
125- ``core-image-testmaster-initramfs``: A RAM-based Initial Root
Patrick Williams2194f502022-10-16 14:26:09 -0500126 Filesystem (:term:`Initramfs`) image tailored for use with the
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500127 ``core-image-testmaster`` image.
128
129- ``core-image-weston``: A very basic Wayland image with a terminal.
130 This image provides the Wayland protocol libraries and the reference
131 Weston compositor. For more information, see the
Andrew Geissler517393d2023-01-13 08:55:19 -0600132 ":ref:`dev-manual/wayland:using wayland and weston`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500133 section in the Yocto Project Development Tasks Manual.
134
135- ``core-image-x11``: A very basic X11 image with a terminal.