Using Bitbake
To build a single package, an image for the target or a toolchain, Yocto uses
the bitbake command. Before you can use it, you must set up your build
environment with init-env. See Setting up and using the build
environment.
Building a single recipe
To build a single recipe use:
bitbake <recipe-name>
To list all available recipes run:
bitbake -s
Demand of Resources
Please note, that building from scratch can take a long time (several
hours!) and needs a lot of disk space and RAM! Especially when you build
images with large libraries like Qt. To build as much as possible even when
a recipe fails you can use the -k option for bitbake.
Building an image
The Kontron BSP provides three basic images:
- image-ktn-minimal is a minimal image which simply boots the hardware
- image-ktn is a basic console image with utilities for debugging, package-manager and SSH access.
- image-ktn-qt is a image with Qt5/EGLFS support with demo applications.
For information on which image is dedicated to your board, consult your platform and board documentation by selecting a platform/BSP in the top navigation dropdown menu.
To build, for example, the image-ktn type
bitbake image-ktn -k
tmp/deploy/images/<yourmachine> directory of your build repository.
EULA
Depending on the platform, before building an image, you might have to read
and accept the EULA document. Else the build will fail!
See a freshly generated local.conf where to find the license documents and
how to accept them for your board (e.g. set
ACCEPT_EULA_stm32mp-t1000-s-multi = "1" in local.conf)
After you have built your image successfully, you now can go on to boot this image on your machine. For further guidance on this go the documentation of your specific platform.
Building the SDK for your image
After you have built your image, it is possible to build a SDK which fits your machine and image contents. For the Kontron Eval-Kits there are already precompiled SDKs. See Prebuilt BSP Releases for more info.
To create an installer for the toolchain of your board and image combination type:
bitbake <image-recipe> -c populate_sdk
For example:
bitbake image-ktn -c populate_sdk
For Qt5 development there is a special recipe which contains the tools needed for Qt5 development:
bitbake meta-toolchain-qt5
Two Different Toolchains/SDKs
meta-toolchain-qt5 and image-ktn-qt are two toolchains with a little
difference:
-
the
meta-toolchain-qt5is one choice when you want to develop a GUI application based on the Qt framweork. This toolchain contains the biggest set of Qt extensions, but no additional libraries of your image. It contains the full set of Qt development tools. -
the
image-*toolchain fits exactly to your image configuration. This toolchain contains, besides the Qt extensions, all libraries included into your image. This toolchain is the best choice if you create an application which needs special libraries which are only part of your image.
After you created the toolchain-installer with Yocto, you can find it in the
directory <build-dir>/tmp/deploy/sdk.
The installer is a shell-script, that can be executed like this:
sh ktn-glibc-x86_64-cortexa7t2hf-neon-vfpv4-image-ktn-qt-toolchain-thud_1.3.1.sh
The default installation path is /opt/kontron/ if not specified otherwise.