1.7.1. Building TX8 Series

We provide a script, karo-nxp-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 graphical backend. The script sets up a directory and the configuration files for the specified machine and backend. [1] It also adds our layer to the bblayers.conf file.

There are different configurations you can choose from.

  • DISTRO configurations:
DISTRO= Description
fsl-imx-x11 X11 graphics are not supported on i.MX 8
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
  • A list of supported MACHINE configurations:
    • tx8m-1610-mipi-mb - RECOMMENDED For TX8M machine on 10.1” Development Kit board.
    • tx8m-1610 - For TX8M machine on any board.

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-nxp-release.sh -b <build-dir>

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

Example:

DISTRO=fsl-imx-wayland MACHINE=tx8m-1610-mipi-mb source karo-nxp-release.sh -b build

1.7.1.1. U-Boot Version

Inside your build-directory in conf/local.conf you can set the variable UBOOT_CONFIG. This sets which u-boot should be built. If you leave it unset, “default” is built.

UBOOT_CONFIG = Description
default Our U-Boot with default environment to write inside the eMMC and boot your module.
noenv Our U-Boot with an empty environment.
mfg Our U-Boot with enabled fastboot protocol. (e.g. for using uuu)
secure-boot Our U-Boot with secure-boot enabled.

Note

For programming TX8M with uuu (see Flashing Images), it is necessary to build both, default and mfg U-Boot.

1.7.1.2. Graphics Acceleration For QT

If you want to use graphics acceleration in the current fsl-image-qt5 image, you should enable the QT5 kernel features. This will enable the usage of NXP’s defconfig.

To enable these, add the following line into your build-directory to local.conf:

KERNEL_FEATURES_append = "qt5"

Hint

Your kernel size will expand around the double size.

1.7.1.3. Building The Image

Note

Before starting a build, you should consider enabling the SSTATE CACHE to speedup the build process.

See Enable sstate cache 1.

Here are the different images you can build:

Image Description Provided by layer
core-image-minimal See https://layers.openembedded.org/layerindex/recipe/579/ Poky
core-image-base See https://layers.openembedded.org/layerindex/recipe/584/ Poky
core-image-sato See https://layers.openembedded.org/layerindex/recipe/658/ Poky
fsl-image-machine-test An FSL Community i.MX core image with console environment - no GUI interface. meta-freescale-distro
fsl-image-validation-imx Builds an i.MX image with a GUI without any Qt content. meta-fsl-bsp-release/imx/meta-sdk
fsl-image-qt5-validation-imx Builds an opensource Qt 5 image. These images are only supported for i.MX SoC with hardware graphics. They are not supported on the i.MX 6UltraLite, i.MX 6UltraLiteLite, and i.MX 7Dual. meta-fsl-bsp-release/imx/meta-sdk
fsl-image-qt5 Fsl-image-gui with QT 5.9.  
meta-toolchain-qt5 QT 5 Toolchain SDK.  
fsl-image-multimedia    
fsl-image-multimedia-full    
fsl-image-gui Full image with demos and tests, used for testing with graphics, no QT  

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

bitbake <image>

1.7.1.4. Restarting a build environment [1]

If a new terminal window is opened or the machine is rebooted after a build directory is set up, the setup environment script should be used to set up the environment variables and run a build again. The full fsl-setup-release.sh is not needed.

You can simply run:

source setup-environment <build-dir>

1.7.1.5. 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 creates a U-Boot, a kernel, and an image type based on the IMAGE_FSTYPES defined in the machine configuration file.

The following files are created for Ka-Ro TX modules:

Filename Content
imx-boot-<machine>-<version>.bin U-Boot binaries
Image-<version>-<machine>.bin Kernel image
modules-<machine>.tgz Kernel modules
<image>-<machine>.tar.bz2 RFS
*.dtb Devicetree blob

To continue with these images have a look at Flashing Images.

[1](1, 2) Copied from the official NXP Yocto Project User’s Guide, mentioned above.