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 |
Patrick Williams | 2a25492 | 2023-08-11 09:48:11 -0500 | [diff] [blame] | 17 | 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 Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 21 | |
Patrick Williams | 2a25492 | 2023-08-11 09:48:11 -0500 | [diff] [blame] | 22 | INCOMPATIBLE_LICENSE = "GPL-3.0* LGPL-3.0*" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 23 | |
Patrick Williams | 2a25492 | 2023-08-11 09:48:11 -0500 | [diff] [blame] | 24 | 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 Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 28 | |
| 29 | From within the ``poky`` Git repository, you can use the following |
| 30 | command to display the list of directories within the :term:`Source Directory` |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 31 | that contain image recipe files:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 32 | |
| 33 | $ ls meta*/recipes*/images/*.bb |
| 34 | |
Patrick Williams | 3965356 | 2024-03-01 08:54:02 -0600 | [diff] [blame] | 35 | Here is a list of supported recipes: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 36 | |
| 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 Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 41 | Player <https://www.vmware.com/products/player/overview.html>`__ or |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 42 | `VMware |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 43 | Workstation <https://www.vmware.com/products/workstation/overview.html>`__. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 44 | For more information on this image, see the :yocto_home:`Build |
Andrew Geissler | c3d88e4 | 2020-10-02 09:45:00 -0500 | [diff] [blame] | 45 | Appliance </software-item/build-appliance>` page |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 46 | on the Yocto Project website. |
| 47 | |
| 48 | - ``core-image-base``: A console-only image that fully supports the |
| 49 | target device hardware. |
| 50 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 51 | - ``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 Williams | 2194f50 | 2022-10-16 14:26:09 -0500 | [diff] [blame] | 83 | has the Minimal RAM-based Initial Root Filesystem (:term:`Initramfs`) as part |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 84 | 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 Williams | 2194f50 | 2022-10-16 14:26:09 -0500 | [diff] [blame] | 87 | additional information helpful when working with :term:`Initramfs` images. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 88 | |
| 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 Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 117 | - ``core-image-testmaster``: A "controller" image designed to be used for |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 118 | 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 Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 122 | ":ref:`dev-manual/runtime-testing:performing automated runtime testing`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 123 | section in the Yocto Project Development Tasks Manual. |
| 124 | |
| 125 | - ``core-image-testmaster-initramfs``: A RAM-based Initial Root |
Patrick Williams | 2194f50 | 2022-10-16 14:26:09 -0500 | [diff] [blame] | 126 | Filesystem (:term:`Initramfs`) image tailored for use with the |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 127 | ``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 Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 132 | ":ref:`dev-manual/wayland:using wayland and weston`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 133 | section in the Yocto Project Development Tasks Manual. |
| 134 | |
| 135 | - ``core-image-x11``: A very basic X11 image with a terminal. |