Skip to content

NXP Quick Start

Using Windows?

The Yocto build system requires a Linux environment. If you are on Windows, you can download the Engicam pre-configured Ubuntu virtual machine instead of setting up the toolchain manually. Download the Virtual Machine

There are two ways to set up the build environment:

  • Engicam BSP Scripts (recommended) — a Docker-based helper that runs the build in an isolated container. No dependency on your host Linux distribution; works on any system with Docker installed.
  • Native build — build directly on your Linux machine without Docker. You must ensure your distribution is compatible with the target Yocto release.

Regardless of the method chosen, the procedure is the same: download the BSP sources and build the image.


Build Environment Setup

Source: engicam-bsp-scripts

Engicam BSP Script

Install repo on Ubuntu

This script utilizes repo to download the correct source files.

To install the repo utility:

mkdir -p ~/.bin
PATH="${HOME}/.bin:${PATH}"
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+rx ~/.bin/repo

Install Docker Engine on Ubuntu

This script utilizes Docker in order to assure the compatibility between Yocto and Ubuntu versions.

To install Docker correctly you need to:

Setup the repository

Update the apt package index and install the following packages to allow apt to use a repository over HTTPS:

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates \
curl gnupg-agent software-properties-common linux-generic

Add Docker's official GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint:

sudo apt-key fingerprint 0EBFCD88

You should get this same output:

pub rsa4096 2017-02-22 [SCEA]
    9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]

Use the following command to set up the stable repository:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable"

Install Docker Engine:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

Download and use setup script

First you need to clone the git repository:

git clone https://github.com/engicam-stable/engicam-bsp-scripts.git

Go into the directory just created and launch the script to prepare the environment:

cd ~/engicam-bsp-scripts
./prepare_engicam_bsp --help
./prepare_engicam_bsp <branch> <version>

The next table will list all the available environments.

branch version
nxp zeus
nxp zeus-2.3
nxp gatesgarth
nxp hardknott
nxp honister
nxp kirkstone
nxp langdale
nxp mickledore
nxp scarthgap
st dunfell
st dunfell-5.10_icore
st dunfell-5.10_ugea
st kirkstone
st mickledore
rockchip kirkstone

For example:

./prepare_engicam_bsp nxp zeus-2.3

or:

./prepare_engicam_bsp st dunfell

This procedure may take some time to complete. Once it\'s finished you can find all source code in the /yocto folder.

Note: to return to the same Docker environment you just need to relaunch the same command used to set it up the first time.


BSP Sources and First Build

Sources already downloaded?

If you completed the build environment setup above using the Engicam BSP Scripts, the sources have already been downloaded — skip directly to the build command in the relevant tab.

Source: meta-engicam-nxp / walnascar

meta-engicam-nxp

Based on NXP Yocto Walnascar

To use the i.MX Manifest repository repo tool must be installed first.

mkdir ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
PATH=${PATH}:~/bin

Then download the yocto project BSP based on walnascar

mkdir imx-yocto-bsp
cd imx-yocto-bsp
repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-walnascar -m imx-6.12.49-2.2.0.xml
repo sync
cd sources/
git clone https://github.com/engicam-stable/meta-engicam-nxp.git -b walnascar

For iMX95 Smarcore and iMX95 I-core clone the meta-summit-radio:

git clone https://github.com/Ezurio/meta-summit-radio.git -b lrd-13.98.12.x

SOMs supported

  • imx6ull-microgea
  • imx8mm-icore
  • imx8mp-icore
  • imx8mp-icore-2e
  • imx8mp-icore-fasteth
  • imx8mp-smarcore
  • imx8ulp-microgea
  • imx91-microgea
  • imx93-icore
  • imx95-icore
  • imx95-smarcore

Boards supported

SOM BOARD
imx6ull-microgea microdev-rev2
microdev-rev3
loco5
imx8mm-icore ctouch2
ctouch3
starterkit-v2
imx8mp-icore ctouch2
ctouch3
starterkit-v2
imx8mp-icore-2e ctouch2
ctouch3
starterkit-v2
imx8mp-icore-fasteth ctouch2
ctouch3
starterkit-v2
imx8mp-smarcore xtouch2
imx8ulp-microgea microdev-rev2
microdev-rev3
loco5
imx91-microgea microgea_evb
loco5
microdev-rev2
microdev-rev3
starterkit-v2
imx93-icore ctouch2
ctouch3
starterkit-v2
imx95-smarcore smarcore_evb
imx95-icore starterkit-v2

Supported distros

  • fsl-imx-wayland: Distro for Wayland without X11. This distro includes wayland feature but doesn’t have X11 support.
  • fsl-imx-xwayland: Distro for Wayland with X11. This distro includes both wayland and X11 emulation features.

Images available

  • engicam-evaluation-image-mx6ull
  • engicam-evaluation-image-mx8
  • engicam-evaluation-image-mx91
  • engicam-evaluation-image-mx93
  • engicam-evaluation-image-mx95

First build

For imx6ull-microgea

DISTRO=fsl-imx-xwayland MACHINE=imx6ull-microgea source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx6

For imx8mm-icore

DISTRO=fsl-imx-xwayland MACHINE=imx8mm-icore source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx8

For imx8mp-icore-2e

DISTRO=fsl-imx-xwayland MACHINE=imx8mp-icore-2e source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx8

For imx8mp-icore-fasteth

DISTRO=fsl-imx-xwayland MACHINE=imx8mp-icore-fasteth source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx8

For imx8mp-icore

DISTRO=fsl-imx-xwayland MACHINE=imx8mp-icore source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx8

For imx8mp-smarcore

DISTRO=fsl-imx-xwayland MACHINE=imx8mp-smarcore source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx8

For imx8ulp-microgea

DISTRO=fsl-imx-xwayland MACHINE=imx8ulp-microgea source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx8

For imx91-microgea

DISTRO=fsl-imx-xwayland MACHINE=imx91-microgea source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx91

For imx93-icore

DISTRO=fsl-imx-xwayland MACHINE=imx93-icore source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx93

For imx95-icore:

Set-up enviroment

DISTRO=fsl-imx-xwayland MACHINE=imx95-icore source imx-setup-release.sh -b build

Add meta-summit-radio meta-layer

bitbake-layers add-layer ../sources/meta-summit-radio/meta-summit-radio

In local.conf add the following lines:

IMAGE_FEATURES += " allow-empty-password allow-root-login empty-root-password "
PACKAGE_EXCLUDE += "linux-firmware-bcm43430"

EXTRA_IMAGE_FEATURES += "package-management"
SKIP_RECIPE[rutabaga-gfx] = "Not needed"
SKIP_RECIPE[rutabaga-gfx-ffi] = "Not needed"
SKIP_RECIPE[qemu] = "Not needed"
SKIP_RECIPE[xen] = "Not needed"
SKIP_RECIPE[xen-tools] = "Not needed"

IMAGE_INSTALL:remove = "xen xen-tools"

PREFERRED_PROVIDER_wpa-supplicant = "summit-supplicant"
PREFERRED_RPROVIDER_wpa-supplicant = "summit-supplicant"
PREFERRED_RPROVIDER_wpa-supplicant-cli = "summit-supplicant"
PREFERRED_RPROVIDER_wpa-supplicant-passphrase = "summit-supplicant"
PREFERRED_RPROVIDER_wpa-supplicant-lib = "summit-supplicant"

Then add the needed layers and build the image:

bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx95

For imx95-smarcore:

Set-up enviroment

DISTRO=fsl-imx-xwayland MACHINE=imx95-smarcore source imx-setup-release.sh -b build

Add meta-summit-radio meta-layer

bitbake-layers add-layer ../sources/meta-summit-radio/meta-summit-radio

In local.conf add the following lines:

IMAGE_FEATURES += " allow-empty-password allow-root-login empty-root-password "

EXTRA_IMAGE_FEATURES += "package-management"
SKIP_RECIPE[rutabaga-gfx] = "Not needed"
SKIP_RECIPE[rutabaga-gfx-ffi] = "Not needed"
SKIP_RECIPE[qemu] = "Not needed"
SKIP_RECIPE[xen] = "Not needed"
SKIP_RECIPE[xen-tools] = "Not needed"

IMAGE_INSTALL:remove = "xen xen-tools"

PREFERRED_PROVIDER_wpa-supplicant = "summit-supplicant"
PREFERRED_RPROVIDER_wpa-supplicant = "summit-supplicant"
PREFERRED_RPROVIDER_wpa-supplicant-cli = "summit-supplicant"
PREFERRED_RPROVIDER_wpa-supplicant-passphrase = "summit-supplicant"
PREFERRED_RPROVIDER_wpa-supplicant-lib = "summit-supplicant"

Then add the needed layers and build the image:

bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx95

Source: meta-engicam-nxp / scarthgap

meta-engicam-nxp

Based on NXP Yocto Scarthgap

To use the i.MX Mmanifest repository repo tool must be installed first.

mkdir ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
PATH=${PATH}:~/bin

Then download the yocto project BSP base on scarthgap

mkdir imx-yocto-bsp
cd imx-yocto-bsp
repo init -u https://github.com/engicam-stable/engicam-bsp-release.git -b scarthgap-nxp -m engicam-bsp-release.xml
repo sync

SOMs supported

  • imx6dl-icore
  • imx6qd-icore
  • imx6ull-microgea
  • imx8mm-icore
  • imx8mp-icore
  • imx8mp-icore-2e
  • imx8mp-icore-fasteth
  • imx8mp-smarcore
  • imx8ulp-microgea
  • imx91-microgea
  • imx93-icore
  • imx95-icore
  • imx95-smarcore

Boards supported

SOM BOARD
imx95-icore starterkit-v2
ctouch 3.1
imx95-smarcore xtouch2
imx93-icore starterkit-v2
ctouch2
ctouch3.1
imx91-microgea microdev-rev3
micro5
imx8mm-icore ctouch2
starterkit-v2
imx8mp-icore-2e ctouch2
starterkit-v2
imx8mp-icore-fasteth ctouch2
starterkit-v2
imx8mp-icore ctouch2
starterkit-v2
imx8ulp-microgea microdev-rev3
imx8mp-smarcore xtouch2
starterkit-v2
imx6dl-icore starterkit-v2
imx6qd-icore starterkit-v2
imx6ull-microgea microdev-rev3

Supported distros

  • fsl-imx-wayland: Distro for Wayland without X11. This distro includes wayland feature but doesn’t have X11 support.
  • fsl-imx-xwayland: Distro for Wayland with X11. This distro includes both wayland and X11 emulation features.

Images available

  • engicam-evaluation-image-mx6
  • engicam-evaluation-image-mx6ull
  • engicam-evaluation-image-mx8
  • engicam-evaluation-image-mx93
  • engicam-evaluation-image-mx91
  • engicam-evaluation-image-mx95

First build

For imx8mp-icore:

DISTRO=fsl-imx-xwayland MACHINE=imx8mp-icore source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx8

For imx91-microgea:

DISTRO=fsl-imx-xwayland MACHINE=imx91-microgea source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image-mx91

NOTE for iMX95 family

To correctly compile the image you need to add meta-summit-radio to your bblayer.conf

bitbake-layers add-layer ../sources/meta-summit-radio/meta-summit-radio

FOR CTOUCH 3.1

Add the following line to the local.conf file

CORE_IMAGE_EXTRA_INSTALL:remove:mx95-icore = "kernel-module-lwb-if-backports lwb-etsi-firmware"

Source: meta-engicam-nxp / mickledore

meta-engicam-nxp

Based on NXP Yocto Langdale

mkdir imx-yocto-bsp
cd imx-yocto-bsp
repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-mickledore -m imx-6.1.36-2.1.0.xml
repo sync

SOMs supported

  • imx6dl-icore
  • imx6qd-icore
  • imx6s-icore
  • imx6ull-microgea
  • imx8mm-icore
  • imx8mp-icore
  • imx8mp-icore-fasteth
  • imx8mp-icore-2e
  • imx8mp-smarcore
  • imx8qxp-icore
  • imx8ulp-microgea
  • imx93-icore

Supported distros

  • fsl-imx-wayland: Distro for Wayland without X11. This distro includes wayland feature but doesn’t have X11 support.
  • fsl-imx-xwayland: Distro for Wayland with X11. This distro includes both wayland and X11 emulation features.

Images available

  • engicam-evaluation-image-mx6
  • engicam-evaluation-image-mx6ull
  • engicam-evaluation-image-mx8
  • engicam-evaluation-image-mx93

First build

DISTRO=fsl-imx-xwayland MACHINE=imx8mp-icore source imx-setup-release.sh -b build
bitbake-layers add-layer ../sources/meta-engicam-nxp
bitbake engicam-evaluation-image