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