Building a target image
Poky provides several predesigned image recipes that we can use to build our own binary image. We can check the list of available images by running the following command from the poky directory:
$ ls meta*/recipes*/images/*.bb
All the recipes provide images which are a set of unpacked and configured packages, generating a filesystem that we can use on a hardware or one of the supported QEMU machines.
Next, we can see the list of most commonly used images:
- core-image-minimal: This is a small image allowing a device to boot, and it is very useful for kernel and boot loader tests and development.
- core-image-base: This is a console-only image that fully supports the target device hardware.
- core-image-weston: This is an image that provides the Wayland protocol libraries and the reference Weston compositor.
- core-image-x11: This is a very basic X11 image with a terminal.
- core-image-sato: This is an image with Sato support and a mobile environment for mobile devices that use X11; it provides applications such as a terminal, editor, file manager, media player, and so forth.
The complete list would likely be outdated, so it's not included here. There are several different images supporting different features as Real Time, InitRAMFS, MTD (flash tools) and others. It is advisable to check the source code or the Yocto Project Reference Manual for the complete and updated list.
The process of building an image for a target is very simple. We must run the following command:
$ bitbake <recipe name>
For example, to build core-image-full-cmdline, run the following command:
$ bitbake core-image-full-cmdline