Andrew Geissler | f034379 | 2020-11-18 10:42:21 -0600 | [diff] [blame] | 1 | .. SPDX-License-Identifier: CC-BY-SA-2.0-UK |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 2 | |
| 3 | ****** |
| 4 | Images |
| 5 | ****** |
| 6 | |
| 7 | The OpenEmbedded build system provides several example images to satisfy |
| 8 | different needs. When you issue the ``bitbake`` command you provide a |
| 9 | "top-level" recipe that essentially begins the build for the type of |
| 10 | image 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 |
| 17 | is only supported for minimal and base images. Furthermore, if you |
| 18 | are going to build an image using non-GPLv3 and similarly licensed |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 19 | components, you must make the following changes in the ``local.conf`` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 20 | file before using the BitBake command to build the minimal or base |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 21 | image:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 22 | |
| 23 | 1. Comment out the EXTRA_IMAGE_FEATURES line |
Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 24 | 2. Set INCOMPATIBLE_LICENSE = "GPL-3.0* LGPL-3.0* AGPL-3.0*" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 25 | |
| 26 | |
| 27 | From within the ``poky`` Git repository, you can use the following |
| 28 | command to display the list of directories within the :term:`Source Directory` |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 29 | that contain image recipe files:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 30 | |
| 31 | $ ls meta*/recipes*/images/*.bb |
| 32 | |
| 33 | Following is a list of supported recipes: |
| 34 | |
| 35 | - ``build-appliance-image``: An example virtual machine that contains |
| 36 | all the pieces required to run builds using the build system as well |
| 37 | as the build system itself. You can boot and run the image using |
| 38 | either the `VMware |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 39 | Player <https://www.vmware.com/products/player/overview.html>`__ or |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 40 | `VMware |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 41 | Workstation <https://www.vmware.com/products/workstation/overview.html>`__. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 42 | For more information on this image, see the :yocto_home:`Build |
Andrew Geissler | c3d88e4 | 2020-10-02 09:45:00 -0500 | [diff] [blame] | 43 | Appliance </software-item/build-appliance>` page |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 44 | on the Yocto Project website. |
| 45 | |
| 46 | - ``core-image-base``: A console-only image that fully supports the |
| 47 | target device hardware. |
| 48 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 49 | - ``core-image-full-cmdline``: A console-only image with more |
| 50 | full-featured Linux system functionality installed. |
| 51 | |
| 52 | - ``core-image-lsb``: An image that conforms to the Linux Standard Base |
| 53 | (LSB) specification. This image requires a distribution configuration |
| 54 | that enables LSB compliance (e.g. ``poky-lsb``). If you build |
| 55 | ``core-image-lsb`` without that configuration, the image will not be |
| 56 | LSB-compliant. |
| 57 | |
| 58 | - ``core-image-lsb-dev``: A ``core-image-lsb`` image that is suitable |
| 59 | for development work using the host. The image includes headers and |
| 60 | libraries you can use in a host development environment. This image |
| 61 | requires a distribution configuration that enables LSB compliance |
| 62 | (e.g. ``poky-lsb``). If you build ``core-image-lsb-dev`` without that |
| 63 | configuration, the image will not be LSB-compliant. |
| 64 | |
| 65 | - ``core-image-lsb-sdk``: A ``core-image-lsb`` that includes everything |
| 66 | in the cross-toolchain but also includes development headers and |
| 67 | libraries to form a complete standalone SDK. This image requires a |
| 68 | distribution configuration that enables LSB compliance (e.g. |
| 69 | ``poky-lsb``). If you build ``core-image-lsb-sdk`` without that |
| 70 | configuration, the image will not be LSB-compliant. This image is |
| 71 | suitable for development using the target. |
| 72 | |
| 73 | - ``core-image-minimal``: A small image just capable of allowing a |
| 74 | device to boot. |
| 75 | |
| 76 | - ``core-image-minimal-dev``: A ``core-image-minimal`` image suitable |
| 77 | for development work using the host. The image includes headers and |
| 78 | libraries you can use in a host development environment. |
| 79 | |
| 80 | - ``core-image-minimal-initramfs``: A ``core-image-minimal`` image that |
Patrick Williams | 2194f50 | 2022-10-16 14:26:09 -0500 | [diff] [blame] | 81 | has the Minimal RAM-based Initial Root Filesystem (:term:`Initramfs`) as part |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 82 | of the kernel, which allows the system to find the first "init" |
| 83 | program more efficiently. See the |
| 84 | :term:`PACKAGE_INSTALL` variable for |
Patrick Williams | 2194f50 | 2022-10-16 14:26:09 -0500 | [diff] [blame] | 85 | additional information helpful when working with :term:`Initramfs` images. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 86 | |
| 87 | - ``core-image-minimal-mtdutils``: A ``core-image-minimal`` image that |
| 88 | has support for the Minimal MTD Utilities, which let the user |
| 89 | interact with the MTD subsystem in the kernel to perform operations |
| 90 | on flash devices. |
| 91 | |
| 92 | - ``core-image-rt``: A ``core-image-minimal`` image plus a real-time |
| 93 | test suite and tools appropriate for real-time use. |
| 94 | |
| 95 | - ``core-image-rt-sdk``: A ``core-image-rt`` image that includes |
| 96 | everything in the cross-toolchain. The image also includes |
| 97 | development headers and libraries to form a complete stand-alone SDK |
| 98 | and is suitable for development using the target. |
| 99 | |
| 100 | - ``core-image-sato``: An image with Sato support, a mobile environment |
| 101 | and visual style that works well with mobile devices. The image |
| 102 | supports X11 with a Sato theme and applications such as a terminal, |
| 103 | editor, file manager, media player, and so forth. |
| 104 | |
| 105 | - ``core-image-sato-dev``: A ``core-image-sato`` image suitable for |
| 106 | development using the host. The image includes libraries needed to |
| 107 | build applications on the device itself, testing and profiling tools, |
| 108 | and debug symbols. This image was formerly ``core-image-sdk``. |
| 109 | |
| 110 | - ``core-image-sato-sdk``: A ``core-image-sato`` image that includes |
| 111 | everything in the cross-toolchain. The image also includes |
| 112 | development headers and libraries to form a complete standalone SDK |
| 113 | and is suitable for development using the target. |
| 114 | |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 115 | - ``core-image-testmaster``: A "controller" image designed to be used for |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 116 | automated runtime testing. Provides a "known good" image that is |
| 117 | deployed to a separate partition so that you can boot into it and use |
| 118 | it to deploy a second image to be tested. You can find more |
| 119 | information about runtime testing in the |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 120 | ":ref:`dev-manual/common-tasks:performing automated runtime testing`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 121 | section in the Yocto Project Development Tasks Manual. |
| 122 | |
| 123 | - ``core-image-testmaster-initramfs``: A RAM-based Initial Root |
Patrick Williams | 2194f50 | 2022-10-16 14:26:09 -0500 | [diff] [blame] | 124 | Filesystem (:term:`Initramfs`) image tailored for use with the |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 125 | ``core-image-testmaster`` image. |
| 126 | |
| 127 | - ``core-image-weston``: A very basic Wayland image with a terminal. |
| 128 | This image provides the Wayland protocol libraries and the reference |
| 129 | Weston compositor. For more information, see the |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 130 | ":ref:`dev-manual/common-tasks:using wayland and weston`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 131 | section in the Yocto Project Development Tasks Manual. |
| 132 | |
| 133 | - ``core-image-x11``: A very basic X11 image with a terminal. |