Bitbake Setup

We provide a script, karo-setup-release.sh, that simplifies the setup for our machines. To use the script, the name of the specific machine to be built for needs to be specified as well as the desired distro. The script sets up a directory and the configuration files for the specified machine and distro. It also adds our layers to the bblayers.conf file.

There are different configurations you can choose from.

  • NXP DISTRO configurations
DISTRO= Description
fsl-imx-wayland Wayland weston graphics
fsl-imx-xwayland Wayland graphics and X11. X11 applications using EGL are not supported
fsl-imx-fb Frame Buffer graphics - no X11 or Wayland. Frame Buffer is not supported on i.MX 8
  • Ka-Ro DISTRO configurations
DISTRO= Description
karo-minimal Ka-Ro Linux Distro with minimal read-only rootfs
karo-wayland Ka-Ro Linux Distro with wayland backend
  • A list of supported MACHINE configurations
MACHINE= Description Supported Baseboards Display Support
qs8m-mq00 QS8M-MQ00 i.MX8M Mini Solder-in Module QSBASE 2 Raspi Display, 10 inch display**
qs8m-nd00 QS8M-MQ00 i.MX8M Nano Solder-in Module QSBASE 2 Raspi Display, 10 inch display**
qsxm-mm60* QSXM-MM60 i.MX8M Mini Solder-in Module QSBASE 3 Raspi Display, 10 inch display**
qsxp-ml81* QSXP-ML81 i.MX8M Plus Solder-in Module QSBASE 3 Raspi Display, 10 inch display**
tx8m-1610 TX8M-1610 i.MX8M Mini CoM MIPI-MB, MB7 10 inch display
tx8m-1620 TX8M-1620 i.MX8M Mini CoM LVDS-MB, MB7 10 inch display
tx8m-nd00 TX8M-ND00 i.MX8M Nano CoM MIPI-MB, MB7 10 inch display
* = Experimental
** = Additional Hardware Required

Use this command to setup your build directory (specify the distro you want to use, the machine, and the build directory):

DISTRO=<distro> MACHINE=<machine> source karo-setup-release.sh -b <build-dir>

When the script has run, your current directory changes to the <build-dir> you chose before.

Example:

DISTRO=karo-minimal MACHINE=tx8m-1610 source karo-setup-release.sh -b build-tx8m-1610

Starting Build

Note

The setup-environment provided by the Zeus release already sets up a SSTATE CACHE to speedup the build process.
For more about sstate caches see Enable sstate cache 1.

Here are the different images you can build:

Image Description DISTRO= (required) Provided by layer
Official Ka-Ro images
karo-image-minimal Ka-Ro Linux BSP with minimal read-only rootfs karo-minimal meta-karo-nxp-distro
karo-image-weston Ka-Ro Linux BSP with wayland backend karo-wayland meta-karo-nxp-distro
Official NXP images
imx-boot U-Boot flashable binaries N/A (any) meta-karo-nxp
linux-imx Linux Kernel, specified .dtb files, Kernel modules N/A (any) meta-karo-nxp
fsl-image-validation-imx Builds an i.MX image with a GUI without any Qt content fsl-imx-(x)wayland meta-fsl-bsp-release
fsl-image-qt5-validation-imx Builds an opensource Qt 5 image. These images are only supported for i.MX SoC with hardware graphics fsl-imx-(x)wayland meta-fsl-bsp-release
fsl-image-qt5 Fsl-image-gui with QT 5.9 fsl-imx-(x)wayland meta-fsl-bsp-release
fsl-image-multimedia Fsl multimedia image fsl-imx-(x)wayland meta-fsl-bsp-release
imx-image-full Full i.MX image with machine learning, camera and QT support fsl-imx-(x)wayland meta-imx
General Yocto / OE images
core-image-minimal See https://layers.openembedded.org/layerindex/recipe/579/ N/A (any) Poky
core-image-baes See https://layers.openembedded.org/layerindex/recipe/584/ N/A (any) Poky
core-image-sato See https://layers.openembedded.org/layerindex/recipe/658/ N/A (any) Poky

Build the image with the following command inside your <build-dir>:

bitbake <image>

Getting the SDK

To build the SDK of a certain image run inside your <build-dir>:

bitbake <image> -c populate_sdk

Image Deployment

After a build is complete, the created image resides in the tmp/deploy/images sub-directory. An image is, for the most part, specific to the machine set in the environment setup. Each image build usually creates U-Boot, kernel, and an images based on the IMAGE_FSTYPES defined in the machine configuration file.

Usually created files are:

Filename Content
imx-boot-<machine>.bin-<type>-flash_tx8m U-Boot flashable binaries
Image Kernel image
modules-<machine>.tgz Kernel modules
<image>-<machine>.ext4 .ext4 RootFileSystem
*.dtb Devicetree blob(s)

Tip

To continue programming your board with these images have a look at UUU - Universal Update Utility.

Tip

See what you can do with Yocto Zeus built Images at NXP Zeus BSP.