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:
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
- For imx8mm-icore
- For imx8mp-icore-2e
- For imx8mp-icore-fasteth
- For imx8mp-icore
- For imx8mp-smarcore
- For imx8ulp-microgea
- For imx91-microgea
- For imx93-icore
- For imx95-icore
- For imx95-smarcore
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
Add meta-summit-radio meta-layer
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:
For imx95-smarcore:
Set-up enviroment
Add meta-summit-radio meta-layer
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:
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
FOR CTOUCH 3.1
Add the following line to the local.conf file
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