Yocto Build Release: Difference between revisions

From Variscite Wiki
(sd card creation: correct size in accompanying comment)
(Replaced content with "{{Yocto_Build_Release_IMX}}")
Tag: Replaced
Line 1: Line 1:
<!-- Set release according to "release" parameter in URL and use RELEASE_MORTY_V1.0_DART-6UL as default
{{Yocto_Build_Release_IMX}}
--> {{INIT_RELEASE_PARAM|RELEASE_MORTY_V1.0_DART-6UL}}<!--
--> {{#lst:Yocto_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!--
--> {{#lst:B2QT_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!--
--> {{COMMON_YOCTO_VARS}} <!-- Include common yocto variables
--> {{#vardefine:GITHUB_WARNING|{{#ifexpr: {{#var:YOCTO_VERSION}} < 2.3 |{{Note|'''Warning:''' Due to a GitHub policy change, it is necessary to add HTTPS mirrors to local.conf for Yocto Morty and older. Please refer to [[:Yocto_Common_Errors#GitHub Git protocol on port 9418|Yocto Common Errors]].}}}}}}<!--
--> {{PageHeader|{{#var:HARDWARE_NAME}} - Yocto {{#var:YOCTO_NAME}} {{#var:YOCTO_VERSION}} based on FSL Community BSP {{#var:FSLC_BSP_VERSION}} with {{#var:FSL_BSP_VERSION}} Linux release}} {{DocImage|category1=Yocto|category2={{#var:HARDWARE_NAME}}}} __toc__
 
<!-- Set local variables
--> {{#varexists: META_VARISCITE_SDK |
|
{{#vardefine:META_VARISCITE_SDK | {{#var:META_VARISCITE_REPO}}}}
}}<!--
-->{{#vardefine:UBUNTU_COMPAT|16.04}}<!--
-->{{#vardefine:UBUNTU_COMPAT|{{#ifeq:{{#var:YOCTO_NAME}}|Morty|14.04/16.04|{{#var:UBUNTU_COMPAT}}}}}}<!--
-->{{#vardefine:UBUNTU_COMPAT|{{#ifeq:{{#var:YOCTO_NAME}}|Zeus|18.04|{{#var:UBUNTU_COMPAT}}}}}}<!--
-->{{#vardefine:UBUNTU_COMPAT|{{#ifexpr: {{#var:YOCTO_VERSION}} >= 3.1|18.04/20.04|{{#var:UBUNTU_COMPAT}}}}}}<!--
-->{{#vardefine:UBUNTU_COMPAT|{{#ifexpr: {{#var:YOCTO_VERSION}} >= 4.0|18.04/20.04/22.04|{{#var:UBUNTU_COMPAT}}}}}}
= Installing required packages =
Please make sure your host PC is running Ubuntu {{#var:UBUNTU_COMPAT}} 64-bit and is up to date:
  $ sudo apt-get update && sudo apt-get dist-upgrade
 
Then, install the following packages:
 
  $ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib \
  build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
  xz-utils debianutils iputils-ping libsdl1.2-dev xterm libyaml-dev libssl-dev
 
  $ sudo apt-get install autoconf libtool libglib2.0-dev libarchive-dev \
  sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 \
  help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev \
  mercurial automake groff curl lzop asciidoc u-boot-tools dos2unix mtd-utils pv \
  libncurses5 libncurses5-dev libncursesw5-dev libelf-dev zlib1g-dev bc rename \
  zstd libgnutls28-dev
 
  {{#ifexpr: {{#var:YOCTO_VERSION}} >= 3.1|
  $ sudo apt-get install python3-git zstd liblz4-tool
  |
  $ sudo apt-get install python-git
  }}
{{#ifexpr:{{#rpos:{{#var:UBUNTU_COMPAT}}|16.04}} >= 0|{{Ubuntu16_Python}}|}}<!--
-->{{#ifexpr:{{#rpos:{{#var:UBUNTU_COMPAT}}|22.04}} >= 0|{{Ubuntu22_Python}}|}}
 
{{Note|'''Note:''' Variscite provides Docker containers that can be used for a development environment as an alternative to using a virtual machine or a dedicated computer.
To learn more, please see Variscite's [[Docker_Build_Environment | Docker Build Environment]] guide.}}
 
= Reference documentation =
  {{#lst:Yocto_Platform_Customization|YOCTO_DOC_{{#var:YOCTO_VERSION}}}} <!--
-->{{#if:{{#var:FSLC_BSP_VERSION}}|{{#lst:Yocto_Platform_Customization|YOCTO_DOC_FSLC_BSP_{{#var:FSLC_BSP_VERSION}}}}|}} <!--
-->{{#lst:Yocto_Platform_Customization|YOCTO_DOC_FSL_BSP_{{#var:FSL_BSP_VERSION}}}}
 
= Download Yocto {{#var:YOCTO_NAME}} based on Freescale Community BSP =
<pre>
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
 
$ mkdir ~/bin (this step may not be needed if the bin folder already exists)
$ curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ export PATH=~/bin:$PATH
</pre>
 
$ mkdir {{#var:BUILD_FOLDER}}
$ cd {{#var:BUILD_FOLDER}}
 
Now, choose between downloading a release tag, and downloading the latest revision (recommended) and '''follow only one of the next two bullet sections''', accordingly:<br>
<br>
* '''Download the latest revision (recommended)'''<br>
{{#varexists: YOCTO_MANIFEST |
$ repo init -u {{#var:YOCTO_GIT}} -b {{#var:YOCTO_BRANCH}} -m {{#var:YOCTO_MANIFEST}}
$ repo sync -j$(nproc)
|
$ repo init -u {{#var:YOCTO_GIT}} -b {{#var:YOCTO_BRANCH}}
$ repo sync -j$(nproc)
}}
<br>
or<br>
<br>
* '''Download a release tag'''<br>
Each release in https://github.com/varigit/variscite-bsp-platform/releases corresponds to a tag.<br>
The tags are also listed in https://github.com/varigit/variscite-bsp-platform/tags<br>
To specify a specific release/tag, run the following:
$ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b refs/tags/TAG_NAME
For example:
{{#varexists: YOCTO_MANIFEST |
$ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b refs/tags/{{#var:RELEASE_NAME}} -m {{#var:YOCTO_MANIFEST}}
$ repo sync -j$(nproc)
|
$ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b refs/tags/{{#var:RELEASE_NAME}}
$ repo sync -j$(nproc)
}}
 
= Setup and build Yocto =
== Supported images ==
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9=
The following images are provided by Variscite for evaluation purpose
* '''fsl-image-gui''': Default Variscite demo image with GUI and without any Qt{{#var:QT_VER}} content. This image recipe works for Xwayland and Wayland backends.
* '''fsl-image-qt{{#var:QT_VER}}''': Extends fsl-image-gui image with Qt{{#var:QT_VER}} support and various Qt samples for Xwayland and Wayland backends.
|
The following images are provided by Variscite for evaluation purpose
* '''fsl-image-gui''': Default Variscite demo image with GUI and without any Qt{{#var:QT_VER}} content. This image recipe works on all backends for {{#ifeq: {{#var:BUILD_DISTRO}} | fslc-x11 | X11, |}} Frame Buffer, Wayland and XWayland and the content is optimized to fit 512MB NAND flash.
* '''fsl-image-qt{{#var:QT_VER}}''': Extends fsl-image-gui image with Qt{{#var:QT_VER}} support and various Qt samples for {{#ifeq: {{#var:BUILD_DISTRO}} | fslc-x11 | X11, |}} Frame Buffer, Wayland and XWayland backends.
{{Note| Will result in image size greater than 512 MB, which will not fit into NAND flash. Use SD card or eMMC to test.}}
}}
 
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9=
|
The following images are provided by FSL Community BSP:
* '''fsl-image-machine-test''': A console-only image that includes gstreamer packages{{#if:{{#var:GSTREAMER_SUPPORT}}|, Freescale’s multimedia packages (VPU and GPU),|}} and test and benchmark applications.
* '''fsl-image-mfgtool-initramfs''': Small image to be used with Manufacturing Tool (mfg-tool) in a production environment.
{{#if:{{#var:GSTREAMER_SUPPORT}}|
* '''fsl-image-multimedia'''/'''fsl-image-multimedia-full''': A console-only image that includes gstreamer packages and Freescale’s multimedia packages (VPU and GPU).
|}}
}}
See the list of Yocto Project’s reference images in [http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#ref-images Yocto Project Reference Manual]
 
== Supported distros ==
The following distros can be used:
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9=
{{#varexists: FSLC_BSP_VERSION |
* '''fslc-xwayland''': Distro for Wayland with X11. This distro includes both wayland and X11 features.
* '''fslc-wayland''': Distro for Wayland without X11. This distro includes wayland feature but doesn’t have x11 support.
|
* '''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.
}}
|
{{#ifeq: {{#var:BUILD_DISTRO_FB}} | fslc-framebuffer |
{{#ifeq: {{#var:BUILD_DISTRO}} | fslc-x11 |
* '''fslc-x11''': Distro for X11 without wayland. This distro include x11 feature and doesn’ has wayland support.
|
{{note| For this Yocto release, NXP/Vivante do no longer provide GPU accelerations for X11 native backend.}}
}}
* '''fslc-framebuffer''': Distro for Framebuffer graphical backend. This distro doesn’t include X11 and wayland features.
* '''fslc-wayland''': Distro for Wayland without X11. This distro includes wayland feature but doesn’t have x11 support.
* '''fslc-xwayland''': Distro for Wayland with X11. This distro includes both wayland and X11 emulation features.
|
* '''fsl-imx-x11''': Distro for X11 without wayland. This distro include x11 feature and doesn’ has wayland support.
* '''fsl-imx-fb''': Distro for Framebuffer graphical backend. This distro doesn’t include X11 and wayland features.
* '''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.
}}
}}
Note: Also [http://www.informit.com/articles/article.aspx?p=2514911&seqNum=4 standard Poky distros] can be used
 
{{#if:{{#var:GSTREAMER_SUPPORT}}|
== GStreamer support ==
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9=
|
FSL community BSP comes with [https://github.com/Freescale/gstreamer-imx/blob/master/README.md gstreamer-imx], a set of GStreamer1.0 plugins for i.MX platform, which make use of the i.MX multimedia capabilities.<br>
Some of the multimedia plugins do not work well with X11 and Wayland backends.<br>
To get the most from gstreamer-imx, it is recommended to use fslc-framebufer distro with one of the demo images
}}
|}}
 
== {{#ifeq: {{#var:BUILD_FOLDER_X11}} | build_x11 | Build X11 | Build XWayland }} GUI demo image ==
{{#lst:Yocto_Platform_Customization|YOCTO_ENV_SETUP_X}}
{{#lst:Yocto_Platform_Customization|YOCTO_ENV_SETUP_X_SHORT}}
{{#var:GITHUB_WARNING}}
<br>
Optional steps: [[#local.conf customization|local.conf customization]]
 
launch bitbake:
 
Without Qt content:
$ bitbake fsl-image-gui
Or with Qt content:
$ bitbake fsl-image-qt{{#var:QT_VER}}
 
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9=
|
{{#if:{{#var:GSTREAMER_SUPPORT}}|
NOTE: Some of the [https://github.com/Freescale/gstreamer-imx/blob/master/docs/blitter-architecture.md blitter-based i.MX GStreamer plugins] do not work with X11 and Wayland backends. To get the most of the i.MX GPU/VPU acceleration, use the fslc-framebuffer backend.
|}}
 
== Build console-only demo image {{#if:{{#var:GSTREAMER_SUPPORT}}|with Freescale’s multimedia packages (VPU and GPU)|}} ==
$ cd {{#var:BUILD_FOLDER}}
$ MACHINE={{#var:MACHINE_NAME}} DISTRO={{#var:BUILD_DISTRO_FB}} {{#var:BUILD_SCR_CMD}} {{#var:BUILD_FOLDER_FB}}
{{#var:GITHUB_WARNING}}
<br>
Optional steps: [[#local.conf customization|local.conf customization]]
 
<pre>
Without Qt content:
$ bitbake fsl-image-gui
 
Or with Qt content:
$ bitbake fsl-image-qt{{#var:QT_VER}}
</pre>
}}
 
== local.conf customization ==
=== Change the downloads directory ===
 
Create a /opt/yocto_downloads directory and set its permissions:
<pre>
$ sudo mkdir /opt/yocto_downloads
$ sudo chmod 777 /opt/yocto_downloads/
</pre>
 
Direct downloads to it, by replacing 'DL_DIR ?= "${BSPDIR}/downloads/"' with 'DL_DIR = "/opt/yocto_downloads/"' in conf/local.conf under your build directory:
<pre>
$ sed -i 's/DL_DIR ?= "${BSPDIR}\/downloads/DL_DIR = "\/opt\/yocto_downloads/g' conf/local.conf
</pre>
 
=== Add Qt creator and Eclipse debug support to your images ===
{{#ifexpr: {{#var:YOCTO_VERSION}} > 2.4 |
Append the following to the conf/local.conf file in your Yocto build directory, to add Eclipse debug support to your images:
<pre>
EXTRA_IMAGE_FEATURES = " \
    eclipse-debug \
    ssh-server-openssh \
    "
</pre>
 
Append the following to the conf/local.conf file in your Yocto build directory, to add Qt creator debug support to your images:
<pre>
EXTRA_IMAGE_FEATURES = " \
    qtcreator-debug \
    ssh-server-openssh \
    "
</pre>
|
Append the following to the conf/local.conf file in your Yocto build directory, to add Eclipse debug and Qt creator support to your images:
<pre>
EXTRA_IMAGE_FEATURES = " \
    debug-tweaks \
    tools-debug \
    eclipse-debug \
    "
 
IMAGE_INSTALL_append = " \
    tcf-agent \
    openssh-sftp-server \
    "
</pre>
}}
 
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9=
|
{{#ifeq: {{#var:RELEASE_LINK}} | RELEASE_ZEUS_V1.0_DART-6UL |
=== Use SysV instead of systemd init ===
Apply this [https://github.com/varigit/meta-variscite-imx/commit/209a3615706d472c511e9647c267ded5b314c692 patch] to the meta-variscite-imx layer
|
=== Use systemd instead of SysV init ===
{{#ifeq: {{#rpos:{{#var:RELEASE_LINK}}|RELEASE_ZEUS_V1}} | 0 |
Comment out the last 4 lines of file [https://github.com/varigit/meta-variscite-imx/blob/zeus-imx-5.4.3-var01/conf/machine/imx6ul-var-dart.conf#L82-L85 ~/var-fsl-yocto/sources/meta-variscite-imx/conf/machine/imx6ul-var-dart.conf]
|
Append the following to the conf/local.conf file in your Yocto build directory, to use systemd instead of SysV init in your images:
<pre>
DISTRO_FEATURES_append = " systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
VIRTUAL-RUNTIME_init_manager = "systemd"
VIRTUAL-RUNTIME_initscripts = ""
IMX_DEFAULT_DISTRO_FEATURES_append = " systemd"
</pre>
}}
}}
}}
 
=== Create a read-only root file system ===
Append the following to the conf/local.conf file in your Yocto build directory, to create a read-only rootfs:
<pre>
EXTRA_IMAGE_FEATURES += "read-only-rootfs"
</pre>
 
== Build Results ==
The resulting images are located in tmp/deploy/images/{{#var:MACHINE_NAME}}.
 
{{#lst:Yocto_Platform_Customization|{{#var:YOCTO_BUILD_RESULTS_SECTION}}}}
 
= Create a bootable SD card =
 
== SD card structure ==
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9=
This is the structure of our Recovery/Extended SD card:<br>
[[File:SD_card_part_mx8m.png]]<br><br>
 
 
The SD card is divided into 2 sections as shown in the picture above:<br>
* The first unallocated 8MiB section reserved for U-Boot. It can be replaced using the dd command as described in the {{Varlink2|Yocto Build U-Boot|{{#var:RELEASE_LINK}}}} section.<br>
* The first partition is an ext4 partition that contains the complete root filesystem (including kernel image and device tree files under /boot).<br><br>
|
This is the structure of our Recovery/Extended SD card:<br>
[[File:SD_card_part_v50.png|SD card partitions]]<br><br>
 
 
The SD card is divided into 3 sections as shown in the picture above:<br>
* The first unallocated 4MiB are saved space for U-Boot. It can be replaced using the dd command as described in the {{Varlink2|Yocto Build U-Boot|{{#var:RELEASE_LINK}}}} section.<br>
* The first partition is a fat16 partition used for the device tree files and the kernel image file. You can copy them as described in the {{Varlink2|Yocto Build Linux|{{#var:RELEASE_LINK}}}} section.<br>
* The second partition is an ext4 partition that contains the complete root filesystem (including the kernel modules).<br><br>
}}
 
Note:<br>
The last unallocated area is not used. It is there so that the rootfs will fit on any 4GB SD card, as not all 4GB SD cards are really the same size. If you want, you can use a program such as GParted to resize the roofs partition and make it end at the end of your specific SD card (of course, you can also use SD cards with much bigger capacity than 4GB, and then it makes more sense to resize the partition).<br>
Also, if you create the extended SD card yourself by following the [[#Create_an_extended_SD_card | Create an extended SD card]] section below, and you use the '-a' option, the rootfs partition will end at the end of your specific SD card automatically.<br>
 
==Yocto pre-built bootable SD card==
 
The Yocto build products contains many files as explained in the [[#Build_Results | Build Results section]]. For example, fsl-image-gui-{{#var:MACHINE_NAME}}.{{#var:SDCARD_IMG_EXT}}, depending on your build. This is a complete image to be flashed directly to an SD card.<br>
 
Example usage:
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9=
<br>
$ sudo umount /dev/sdX*
 
# For GUI-XWAYLAND & Qt{{#var:QT_VER}}-XWAYLAND
$ cd {{#var:BUILD_FOLDER}}/{{#var:BUILD_FOLDER_XWAYLAND}}
Or
# For GUI-WAYLAND & Qt{{#var:QT_VER}}-WAYLAND
$ cd {{#var:BUILD_FOLDER}}/{{#var:BUILD_FOLDER_WAYLAND}}
# For fsl-image-gui image (GUI-XWAYLAND & GUI-WAYLAND)
$ zcat tmp/deploy/images/{{#var:MACHINE_NAME}}/fsl-image-gui-{{#var:MACHINE_NAME}}.{{#var:SDCARD_IMG_EXT|sdcard.gz}} <nowiki>|</nowiki> sudo dd of=/dev/sdX bs=1M conv=fsync
Or
# For fsl-image-qt{{#var:QT_VER}} image (Qt{{#var:QT_VER}}-XWAYLAND & Qt{{#var:QT_VER}}-WAYLAND)
$ zcat tmp/deploy/images/{{#var:MACHINE_NAME}}/fsl-image-qt{{#var:QT_VER}}-{{#var:MACHINE_NAME}}.{{#var:SDCARD_IMG_EXT|sdcard.gz}} <nowiki>|</nowiki> sudo dd of=/dev/sdX bs=1M conv=fsync
|
<br>
$ sudo umount /dev/sdX*
 
# For GUI-X11 & Qt{{#var:QT_VER}}-X11
$ cd {{#var:BUILD_FOLDER}}/{{#var:BUILD_FOLDER_X11}}
Or
# For Qt{{#var:QT_VER}}-FB
$ cd {{#var:BUILD_FOLDER}}/{{#var:BUILD_FOLDER_FB}}
# For fsl-image-gui image (GUI-X11)
{{#ifeq: {{#var:SDCARD_IMG_EXT}} | wic.gz |
$ zcat tmp/deploy/images/{{#var:MACHINE_NAME}}/fsl-image-gui-{{#var:MACHINE_NAME}}.{{#var:SDCARD_IMG_EXT}} <nowiki>|</nowiki> sudo dd of=/dev/sdX bs=1M && sync
|
$ sudo dd if=tmp/deploy/images/{{#var:MACHINE_NAME}}/fsl-image-gui-{{#var:MACHINE_NAME}}.{{#var:SDCARD_IMG_EXT}} of=/dev/sdX bs=1M && sync
}}
Or
# For fsl-image-qt{{#var:QT_VER}} image (Qt{{#var:QT_VER}}-X11 & Qt{{#var:QT_VER}}-FB)
{{#ifeq: {{#var:SDCARD_IMG_EXT}} | wic.gz |
$ zcat tmp/deploy/images/{{#var:MACHINE_NAME}}/fsl-image-qt{{#var:QT_VER}}-{{#var:MACHINE_NAME}}.{{#var:SDCARD_IMG_EXT}} <nowiki>|</nowiki> sudo dd of=/dev/sdX bs=1M && sync
|
$ sudo dd if=tmp/deploy/images/{{#var:MACHINE_NAME}}/fsl-image-qt{{#var:QT_VER}}-{{#var:MACHINE_NAME}}.{{#var:SDCARD_IMG_EXT}} of=/dev/sdX bs=1M && sync
}}
}}
 
Replace sdX with the right device name. This can be obtained by "dmesg" command on your host Linux PC, after the SD card reader is inserted.
 
* <span style="color:red">Note:</span> Booting your system from an SD card requires pressing the boot-select button, or switching the relevant DIP switch to "Boot from SD card", according to the relevant start-up guide of your system<br><br>
 
 
Drawbacks of the native .{{#var:SDCARD_IMG_EXT}} yocto-built image, (relative to the Recovery/Extended SD card):
* The rootfs partition doesn't use the entire SD card.
* The rootfs partition is not labeled as rootfs.
* The NAND flash and eMMC installation scripts and images are not included.
 
== Create an extended SD card ==
Variscite provides the var-create-yocto-sdcard.sh script which creates our recovery SD card - an SD card based on the fsl-image-gui filesystem, which also contain the scripts and relevant binaries for installation to the internal storage of the SOM.<br>
Later, you will be able to follow either the more automatic {{Varlink2|Yocto Recovery SD card|{{#var:RELEASE_LINK}}}} guide or the more manual {{Varlink|Yocto NAND Flash Burning|{{#var:RELEASE_LINK}}|Installing Yocto to the SOM's internal storage}} guide.<br><br>
 
Note:<br>
This is essentially the same as our pre-built Recovery SD image, with the following main differences:<br>
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX6 |
* The Android recovery (Android-eMMC) is only present on the pre-built SD image, and not on the SD card built from the Yocto script.<br>
}}
* The pre-built image's rootfs partition size is 3700MiB, which is also the default size when using the script, but the script also has an option to set the rootfs partition size to fill the whole free space of the used SD card. Anyway, you can always resize the partition later with an external tool such as gparted.<br>
Naturally, the pre-built image is more straight forward and easier to use, while the script method is easier to customize.<br><br>
 
Usage:<br>
* Follow the [[#Setup and build Yocto|Setup and build Yocto]] guide, and bitbake fsl-image-gui.
* Plug-in the SD card to your Linux Host PC, run dmesg and see which device is added (i.e. /dev/sdX or /dev/mmcblkX)
 
$ cd {{#var:BUILD_FOLDER}}
$ sudo MACHINE={{#var:MACHINE_NAME}} sources/{{#var:META_VARISCITE_SDK}}/scripts/var_mk_yocto_sdcard/var-create-yocto-sdcard.sh <options> /dev/sdX
(Replace /dev/sdX with your actual device)
 
options:
  -h            Display help message
  -s            Only show partition sizes to be written, without actually write them
  -a            Automatically set the rootfs partition size to fill the SD card
  -r            Select alternative rootfs for recovery images (default: {{#var:BUILD_FOLDER_X11}}/tmp/deploy/images/{{#var:MACHINE_NAME}}/fsl-image-gui-{{#var:MACHINE_NAME}}.*)
 
If you don't use the '-a' option, a default rootfs size of 3700MiB will be used
The '-r' option allows you to create a bootable SD card with an alternative image for the installation to NAND flash or eMMC.
Example: "-r tmp/deploy/images/{{#var:MACHINE_NAME}}/fsl-image-qt{{#var:QT_VER}}-{{#var:MACHINE_NAME}}" -- selected the "Qt{{#var:QT_VER}} image with X11" recovery image
 
=== Create an extended SD card image using a loop device ===
It is also possible to use the var-create-yocto-sdcard.sh script to create an extended SD card image, while using a loop device instead of attaching a real SD card.<br>
<br>
Create an empty file using the following command:
$ dd if=/dev/zero of={{#var:MACHINE_NAME}}-extended-sd.img bs=1M count=7420
 
The above command creates a 7420MiB file representing the SD card.<br>
<br>
Attach the first available loop device to this file:
$ sudo losetup -Pf {{#var:MACHINE_NAME}}-extended-sd.img
 
To find the actual loop device being used, run:
$ losetup -a | grep {{#var:MACHINE_NAME}}-extended-sd.img
 
Write the content to the loop device to generate the SD card image:
$ sudo MACHINE={{#var:MACHINE_NAME}} sources/{{#var:META_VARISCITE_SDK}}/scripts/var_mk_yocto_sdcard/var-create-yocto-sdcard.sh <options> /dev/loopX
(Replace /dev/loopX with your actual loop device, e.g. /dev/loop0)<br><br>
 
Detach the loop device from the file:
$ sudo losetup -d /dev/loopX
 
To compress the SD card image file use the following command:
$ gzip -9 {{#var:MACHINE_NAME}}-extended-sd.img
 
To write the SD card image to a real SD card device use the following command:
$ zcat {{#var:MACHINE_NAME}}-extended-sd.img.gz | sudo dd of=/dev/sdX bs=1M && sync
(Replace /dev/sdX with your actual SD device, e.g. /dev/sdb)
 
= Boot the board with a bootable SD card =
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-6UL |
Note: <span style="color:red">The WiFi is not operational when booting from SD card</span>, as the WiFi and SD card are using the same SDIO interface.<br>
A typical use-case is to boot from an SD card, flash the eMMC/NAND flash, and re-boot from the eMMC/NAND flash to have the WiFi operational.
|}}
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-MX8M |
Note: <span style="color:red">The WiFi is not operational when booting from SD card</span>, as the WiFi and SD card are using the same SDIO interface.<br>
A typical use-case is to boot from an SD card, flash the eMMC, and re-boot from the eMMC to have the WiFi operational.
|}}
== Setting the Boot Mode ==
{{#lst:Yocto_Platform_Customization|{{#var:YOCTO_BOOT_BOARD_SECTION}}}}
 
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX8X|
|
== Automatic device tree selection in U-Boot ==
As shown in the [[#Build_Results| Build Results]] table above, we have different kernel device trees, corresponding to our different H/W configurations.<br>
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-MX8M |
We implemented a script in U-Boot's environment, which sets the fdt_file environment variable based on the detected version of the carrier board revision.<br>
This file is actually a symbolic link, pointing to the real dtb file. The symbolic link can be set manually and defaults to the LVDS display configuration<br>
(when using the install_yocto.sh script with a display parameter, this script automatically sets this symbolic link to the appropriate dtb file).<br>
|
We implemented a script in U-Boot's environment, which sets the fdt_file environment variable based on the detected hardware.
}}
=== Enable/Disable automatic device tree selection ===
To enable the automatic device tree selection in U-Boot (already enabled by default):
<pre>
$ setenv fdt_file undefined
$ saveenv
</pre>
To disable the automatic device tree selection in U-Boot, set the device tree file manually:
<pre>
$ setenv fdt_file YOUR_DTB_FILE
$ saveenv
</pre>
 
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9=
Useful example: To list all files in the /boot directory (where the dtb files are by default) of an SD card:
$ ls mmc {{#var:U-BOOT_SD_DEV}}:1 /boot
|
Useful example: To list all files in the boot partition (where the dtb files are by default) of an SD card:
<pre>
$ ls mmc 0:1
</pre>
}}
<!-- Make NOTE for DART-6UL only -->
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-6UL |
{{note|Comment:<br>Make sure you don't set an inappropriate dtb file, like a dtb with nand on a SOM that has eMMC, or a dtb for mx6ull on a SOM with an mx6ul SOC.|info}}
|}}
}}
 
= Flash images to NAND/eMMC =
Please refer to {{Varlink2|Yocto NAND Flash Burning|{{#var:RELEASE_LINK}}}} guide.
 
= Yocto Image Customization =
== Update Yocto {{#var:YOCTO_NAME}} to latest revision ==
From time to time we update the Yocto sources (especially meta-variscite) with new features and bug fixes.<br>
Follow the '''Download the latest revision (recommended)''' bullet section of the [[#Download Yocto {{#var:YOCTO_NAME}} based on Freescale Community BSP|Download Yocto {{#var:YOCTO_NAME}} based on Freescale Community BSP]] step again to update your tree to the latest revision, and rebuild your image.
 
== Update Yocto {{#var:YOCTO_NAME}} to a release tag ==
Follow the '''Download a release tag''' bullet section of the [[#Download Yocto {{#var:YOCTO_NAME}} based on Freescale Community BSP|Download Yocto {{#var:YOCTO_NAME}} based on Freescale Community BSP]] step to update your tree to a release tag, and rebuild your image.
 
== Forcing Clean Build ==
 
In order to update the kernel, U-Boot and rootfs:
$ bitbake -c cleanall u-boot-variscite linux-variscite kernel-module-imx-gpu-viv ti-compat-wireless-wl18xx wl18xx-firmware cryptodev-module
for GUI image
$ bitbake -c clean fsl-image-gui
for Qt{{#var:QT_VER}} image
$ bitbake -c clean fsl-image-qt{{#var:QT_VER}}
 
{{#switch: {{#var:SOC_SERIES}} | imx8 | imx9=
|
== Qt{{#var:QT_VER}} for Embedded Linux ==
To run Qt{{#var:QT_VER}} applications without X11 backend the platform specific plugins (e.g. EGLFS or LinuxFB) should be configured with QT_QPA_PLATFORM environment variable or with -platform command-line.
{{Note| See more information on Qt{{#var:QT_VER}} customization for Embedded Linux [http://doc.qt.io/qt-5.6/embedded-linux.html here]}}
 
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX6 |
=== Configure EGLFS Plugin ===
<pre>
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=95
export QT_QPA_EGLFS_PHYSICAL_WIDTH=160
export QT_QPA_EGLFS_HEIGHT=480
export QT_QPA_EGLFS_WIDTH=800
export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
export QT_QPA_EGLFS_DEPTH=24
export QT_QPA_PLATFORM=eglfs
</pre>
|
=== Configure LinuxFB Plugin ===
{{#var:HARDWARE_NAME}} supports only LinuxFB plugin
<pre>
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x480:mmSize=160x95
</pre>
 
LinuxFB plugin is optimized for not accelerated platforms, but do not provide rotation capabilities.
 
If required you may be interested in reading [https://borkedlabs.com/blog/2015/06-01-qt{{#var:QT_VER}}-linuxfb-rotation-for-lcds this article], providing a dedicate patch and usage instructions.
 
{{#ifeq: {{#var:QT5_FB_SUPPORT_ROTATION}} | true |
The patch proposed in the above article has been ported in the Yocto BSP and the rotation option is available for linuxfb plugin.
|
To integrate the patch in yocto BSP, you are supposed to:
* copy the plane patch in the folder
  {{#var:BUILD_FOLDER}}/sources/{{#var:META_VARISCITE_SDK}}/dynamic-layers/qt{{#var:QT_VER}}-layer/recipes-qt/qt{{#var:QT_VER}}/qtbase
* add the reference patch in the SRC_URI_append section of file
  {{#var:BUILD_FOLDER}}/sources/{{#var:META_VARISCITE_SDK}}/dynamic-layers/qt{{#var:QT_VER}}-layer/recipes-qt/qt{{#var:QT_VER}}/qtbase_%.bbappend
}}
}}
 
=== Configure Touch Input ===
When no windowing system is present, the mouse, keyboard, and touch input are read directly via evdev or tslib.
==== Evdev ====
By default, the Qt{{#var:QT_VER}} uses automatic device discovery based on libudev.
In case you want to override the default touchscreen configuration the following parameters can be used:
*/dev/input/... - Specifies the name of the input device. When not given, Qt looks for a suitable device either via libudev or by walking through the available nodes.
* rotate - On some touch screens the coordinates must be rotated, which is done by setting rotate to 90, 180, or 270.
* invertx and inverty - To invert the X or Y coordinates in the input events, pass invertx or inverty.
<pre>export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS='/dev/input/touchscreen0'</pre>
 
==== Tslib ====
Tslib is used for resistive single-touch touchscreens and should be pre-configured with:
<pre>
export TSLIB_TSEVENTTYPE='INPUT'
export TSLIB_TSDEVICE='/dev/input/touchscreen0'
export TSLIB_CALIBFILE='/etc/pointercal'
export TSLIB_CONFFILE='/etc/ts.conf'
export TSLIB_CONSOLEDEVICE='none'
export TSLIB_FBDEVICE='/dev/fb0'
export TSLIB_PLUGINDIR='/usr/lib/ts'
export QT_QPA_EGLFS_TSLIB=1
export QT_QPA_FB_TSLIB=1
</pre>
It is recommended to put the above setup inside /etc/profile.d/tslib.sh.
 
=== Running Qt{{#var:QT_VER}} Applications ===
 
$ cd /usr/share/cinematicexperience-1.0; ./Qt5_CinematicExperience --platform {{#var:QT_PLATFORM_PLUGIN}}
$ cd /usr/share/qt5everywheredemo-1.0; ./QtDemo --platform {{#var:QT_PLATFORM_PLUGIN}}
$ cd /usr/share/qtsmarthome-1.0; ./smarthome --platform {{#var:QT_PLATFORM_PLUGIN}}
 
== UBIFS ==
By default we create ubifs image for 512MB NAND flash size.
You can change the size by editing {{#var:BUILD_FOLDER}}/sources/{{#var:META_VARISCITE_REPO}}/conf/machine/include/variscite.inc <br>and comment / uncomment the relevant section based on size.
}}
 
{{#if:{{#var:GSTREAMER_SUPPORT}}|
== DDR size and Contiguous Memory Allocator ==
By default Freescale allocates 256MB of RAM to the Contiguous Memory allocator.
This is for proper operation of the IPU VPU, X11 etc.
On VAR-SOM-SOLO with 256MB DDR RAM size, it will cause a kernel freeze during boot.
Adding cma=32MB to the bootargs parameters is required to fix.
|}}
 
= Make changes to the rootfs =
The following is usually not the recommended way to work with Yocto.<br>
You should usually create new specific recipes (.bb files) and/or append to specific present recipes by using .bbappend files.<br>
However, if you are not yet experienced enough with Yocto, and you just want to quickly add your files to the resultant file system (or make any other change to it), you can do it in a general way, by using the following variable:
<pre>
ROOTFS_POSTPROCESS_COMMAND
 
    Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem.
    You can specify functions separated by semicolons:
 
        ROOTFS_POSTPROCESS_COMMAND += "function; ... "                 
 
    If you need to pass the root filesystem path to a command within a function, you can use ${IMAGE_ROOTFS},
    which points to the directory that becomes the root filesystem image. See the IMAGE_ROOTFS variable for more information.
</pre>
 
The functions will be called right after the root filesystem is created and right before it is packed to images (.{{#var:SDCARD_IMG_EXT}}, .ubi, .tar.gz, etc.).<br>
 
== Example ==
Let's say you have your files that you want to put in the filesystem arranged on your host under a directory called /my_rootfs_additions, like the following:
<pre>
my_rootfs_additions/
├── data
│  ├── example.m4v
│  └── example.bin
├── etc
│  └── example.conf
└── home
    └── root
        └── .example
</pre>
And let's say you want to build the fsl-image-gui image.<br>
<br>
Create a file called {{#var:BUILD_FOLDER}}/sources/{{#var:META_VARISCITE_REPO}}/recipes-images/images/fsl-image-gui.bbappend<br>
with the following content:
<pre>
add_my_files() {
    cp -r /my_rootfs_additions/*  ${IMAGE_ROOTFS}/
}
 
ROOTFS_POSTPROCESS_COMMAND += "add_my_files;"
</pre>
Now, when you bitbake fsl-image-gui, the files in /my_rootfs_additions will be added to the rootfs (be careful when overwriting files).<br>
 
= Useful Bitbake commands =
 
[http://elinux.org/Bitbake_Cheat_Sheet Bitbake Cheat Sheet]
 
[https://community.freescale.com/docs/DOC-94953 Useful bitbake commands]
 
[https://community.freescale.com/docs/DOC-94874 i.MX Yocto Project: ltib versus bitbake]

Revision as of 22:15, 20 March 2023

- Yocto based on NXP BSP with Linux release


Installing required packages

Please make sure your host PC is running Ubuntu Expression error: Unexpected >= operator. 64-bit and is up to date:

 $ sudo apt-get update && sudo apt-get dist-upgrade

Then, install the following packages:

 $ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib \
 build-essential chrpath socat cpio python3 python3-pip python3-pexpect \
 xz-utils debianutils iputils-ping libsdl1.2-dev xterm libyaml-dev libssl-dev
 
 $ sudo apt-get install autoconf libtool libglib2.0-dev libarchive-dev \
 sed cvs subversion coreutils texi2html docbook-utils \
 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev \
 mercurial automake groff curl lzop asciidoc u-boot-tools dos2unix mtd-utils pv \
 libncurses5 libncurses5-dev libncursesw5-dev libelf-dev zlib1g-dev bc rename \
 zstd libgnutls28-dev
 
 Expression error: Unexpected >= operator.

For Ubuntu 20.04 and earlier, install python2:

$ sudo apt-get install python python-pysqlite2



Note: Variscite provides Docker containers that can be used for a development environment as an alternative to using a virtual machine or a dedicated computer. To learn more, please see Variscite's Docker Build Environment guide.

Reference documentation

Download Yocto based on NXP BSP

Configure git user and email:

$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"

Fetch and install the Google git-repo tool:

$ mkdir -p ~/bin

# For Ubuntu 20.04 and older, install repo 2.32 according to https://gerrit.googlesource.com/git-repo/+/HEAD/docs/python-support.md:
$ curl https://commondatastorage.googleapis.com/git-repo-downloads/repo-2.32 > ~/bin/repo

# For Ubuntu 22.04 and newer, install the latest repo tool:
$ curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

# Give repo execute permissions and add it to the path:
$ chmod a+x ~/bin/repo
$ export PATH=~/bin:$PATH

Create a build directory:

$ mkdir 
$ cd 

Now, choose between downloading a release tag, and downloading the latest revision (recommended) and follow only one of the next two bullet sections, accordingly:

  • Download the latest revision (recommended)
$ repo init -u  -b 
$ repo sync -j$(nproc)


or

  • Download a release tag

Each release in https://github.com/varigit/variscite-bsp-platform/releases corresponds to a tag.
The tags are also listed in https://github.com/varigit/variscite-bsp-platform/tags
To specify a specific release/tag, run the following:

$ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b refs/tags/TAG_NAME

For example:
$ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b refs/tags/
$ repo sync -j$(nproc)


Setup and build Yocto

Supported images

The following images are provided by Variscite for evaluation purpose

  • fsl-image-gui: Default Variscite demo image with GUI and without any Qt content. This image recipe works on all backends for Frame Buffer, Wayland and XWayland and the content is optimized to fit 512MB NAND flash.
  • fsl-image-qt: Extends fsl-image-gui image with Qt support and various Qt samples for Frame Buffer, Wayland and XWayland backends.
Will result in image size greater than 512 MB, which will not fit into NAND flash. Use SD card or eMMC to test.

The following images are provided by FSL Community BSP:

  • fsl-image-machine-test: A console-only image that includes gstreamer packages and test and benchmark applications.
  • fsl-image-mfgtool-initramfs: Small image to be used with Manufacturing Tool (mfg-tool) in a production environment.

See the list of Yocto Project’s reference images in Yocto Project Reference Manual

Supported distros

The following distros can be used:

  • fsl-imx-x11: Distro for X11 without wayland. This distro include x11 feature and doesn’ has wayland support.
  • fsl-imx-fb: Distro for Framebuffer graphical backend. This distro doesn’t include X11 and wayland features.
  • 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.

Note: Also standard Poky distros can be used


Build XWayland GUI demo image

 Expression error: Unexpected > operator. Expression error: Unexpected >= operator. Expression error: Unexpected >= operator.  
$ cd 
$ MACHINE= DISTRO=

The above command is only mandatory for the very first build setup: whenever restarting a newer build session (from a different terminal or in a different time), you can skip the full setup and just run

$ cd 
$ source setup-environment


Expression error: Unexpected < operator.
Optional steps: local.conf customization

launch bitbake:

Without Qt content:
$ bitbake fsl-image-gui

Or with Qt content:
$ bitbake fsl-image-qt


local.conf customization

Change the downloads directory

Create a /opt/yocto_downloads directory and set its permissions:

$ sudo mkdir /opt/yocto_downloads
$ sudo chmod 777 /opt/yocto_downloads/

Direct downloads to it, by replacing 'DL_DIR ?= "${BSPDIR}/downloads/"' with 'DL_DIR = "/opt/yocto_downloads/"' in conf/local.conf under your build directory:

$ sed -i 's/DL_DIR ?= "${BSPDIR}\/downloads/DL_DIR = "\/opt\/yocto_downloads/g' conf/local.conf

Add Qt creator and Eclipse debug support to your images

Expression error: Unexpected > operator.

Use systemd instead of SysV init

Append the following to the conf/local.conf file in your Yocto build directory, to use systemd instead of SysV init in your images:

DISTRO_FEATURES_append = " systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
VIRTUAL-RUNTIME_init_manager = "systemd"
VIRTUAL-RUNTIME_initscripts = ""
IMX_DEFAULT_DISTRO_FEATURES_append = " systemd"

Create a read-only root file system

Append the following to the conf/local.conf file in your Yocto build directory, to create a read-only rootfs:

EXTRA_IMAGE_FEATURES += "read-only-rootfs"

Build Results

The resulting images are located in tmp/deploy/images/.

Yocto

Documentation

Kirkstone 4.0

  • Yocto Project Core - Kirkstone 4.0

Documentation is available from www.docs.yoctoproject.org

Hardknott 3.3

  • Yocto Project Core - Hardknott 3.3

Documentation is available from www.docs.yoctoproject.org

Dunfell 3.1

  • Yocto Project Core - Dunfell 3.1

Documentation is available from www.yoctoproject.org

Thud 2.6.2

  • Yocto Project Core - Thud 2.6.2

Documentation is available from www.yoctoproject.org

Sumo 2.5

  • Yocto Project Core - Sumo 2.5

Documentation is available from www.yoctoproject.org

Rocko 2.4.3

  • Yocto Project Core - Rocko 2.4.3

Documentation is available from www.yoctoproject.org

Rocko 2.4.1

  • Yocto Project Core - Rocko 2.4.1

Documentation is available from www.yoctoproject.org

Rocko 2.4

  • Yocto Project Core - Rocko 2.4

Documentation is available from www.yoctoproject.org

Pyro 2.3.1

  • Yocto Project Core - Pyro 2.3.1 (released on 07/21/2017)

Documentation is available from www.yoctoproject.org

Morty 2.2.1

  • Yocto Project Core - Morty 2.2.1 (released on 02/24/2017)

Documentation is available from www.yoctoproject.org

FSLC BSP 2.5

  • FSL Community BSP Release Notes 2.5 documentation

Documentation is available from http://freescale.github.io

FSLC BSP 2.4

  • FSL Community BSP Release Notes 2.4 documentation

Documentation is available from http://freescale.github.io

FSLC BSP 2.3

  • FSL Community BSP Release Notes 2.3 documentation

Documentation is available from http://freescale.github.io

FSLC BSP 2.2

  • FSL Community BSP Release Notes 2.2 documentation

Documentation is available from http://freescale.github.io

FSL BSP L4.9.88_2.0.0-ga

  • Kernel documentation from fsl-yocto-L4.9.88_2.0.0-ga release

Documentation is available for download from fsl-yocto-imx-4.9.88_2.0.0-docs

FSL BSP L4.9.11_1.0.0-ga

  • Kernel documentation from fsl-yocto-L4.9.11_1.0.0-ga release

Documentation is available for download from fsl-yocto-imx-4.9.11_1.0.0-docs

FSL BSP L4.1.15_2.0.0-ga

  • Kernel documentation from fsl-yocto-L4.1.15_2.0.0-ga release

Documentation is available for download from fsl-yocto-imx-4.1.15_2.0.0-docs


Scripts

Code::Blocks

TARGET_DIR="/home/root"
TARGET_IP="192.168.73.165"
TARGET_PORT="3000"
SSH_OPTIONS="-oStrictHostKeyChecking=no"


#!/bin/bash

readonly PROGRAM="$1"
PROGRAMNAME="$(basename $PROGRAM)"

. /home/user/bin/var-sdk.conf

echo "Deploying to target"

# prevent "Host key verification failed"
ssh-keygen -f "${HOME}/.ssh/known_hosts" -R "${TARGET_IP}"

# delete old binary
ssh ${SSH_OPTIONS} root@${TARGET_IP} "sh -c 'rm -rf ${TARGET_DIR}/${PROGRAMNAME}'"

# send the program to the target
scp ${PROGRAM} root@${TARGET_IP}:${TARGET_DIR}/${PROGRAMNAME}


#!/bin/bash

readonly PROGRAM="$1"
PROGRAMNAME="$(basename $PROGRAM)"

. /home/user/bin/var-sdk.conf

echo "Starting GDB Server on Target"

# kill gdbserver on target
ssh ${SSH_OPTIONS} root@${TARGET_IP} "sh -c '/usr/bin/killall -q gdbserver'"

# start gdbserver on target and fork
ssh ${SSH_OPTIONS} -t root@${TARGET_IP} "sh -c 'XDG_RUNTIME_DIR=/run/user/0 gdbserver localhost:${TARGET_PORT} ${TARGET_DIR}/${PROGRAMNAME}'" &


VAR-SOM-MX6

Build Results

Image Name
Description
fsl-image-gui-. This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
fsl-image-gui-_128kbpeb.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash with 128KiB PEB.
fsl-image-gui-_256kbpeb.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash with 256KiB PEB.
Linux kernel image, same binary for SD card/eMMC or NAND flash.
SPL built for SD card boot or eMMC boot.
SPL built for NAND flash.
U-Boot built for SD card boot or eMMC boot.
U-Boot built for NAND flash.
Device Tree Name
SOM type
Carrier Board type
LCD Type
Evaluation Kit name
uImage-imx6q-var-som-cap.dtb VAR-SOM-MX6_V2 (Quad / Dual) VAR-MX6CustomBoard Capacitive touch VAR-DVK-MX6_V2-PRO
VAR-STK-MX6_V2
uImage-imx6q-var-som-res.dtb VAR-SOM-MX6_V2 (Quad / Dual) VAR-MX6CustomBoard Resistive touch VAR-DVK-MX6_V2-PRO
VAR-STK-MX6_V2
uImage-imx6q-var-som-vsc.dtb VAR-SOM-MX6_V2 (Quad / Dual) VAR-SOLOCustomBoard Capacitive LVDS touch N/A
uImage-imx6dl-var-som-cap.dtb VAR-SOM-MX6_V2 (DualLite / Solo) VAR-MX6CustomBoard Capacitive touch N/A
uImage-imx6dl-var-som-res.dtb VAR-SOM-MX6_V2 (DualLite / Solo) VAR-MX6CustomBoard Resistive touch N/A
uImage-imx6dl-var-som-vsc.dtb VAR-SOM-MX6_V2 (DualLite / Solo) VAR-SOLOCustomBoard Capacitive LVDS touch N/A
uImage-imx6qp-var-som-cap.dtb VAR-SOM-MX6_V2 (QuadPlus / DualPlus) VAR-MX6CustomBoard Capacitive touch N/A
uImage-imx6qp-var-som-res.dtb VAR-SOM-MX6_V2 (QuadPlus / DualPlus) VAR-MX6CustomBoard Resistive touch N/A
uImage-imx6qp-var-som-vsc.dtb VAR-SOM-MX6_V2 (QuadPlus / DualPlus) VAR-SOLOCustomBoard Capacitive LVDS touch N/A
uImage-imx6dl-var-som-solo-cap.dtb VAR-SOM-SOLO / VAR-SOM-DUAL VAR-MX6CustomBoard Capacitive touch N/A
uImage-imx6dl-var-som-solo-res.dtb VAR-SOM-SOLO / VAR-SOM-DUAL VAR-MX6CustomBoard Resistive touch N/A
uImage-imx6dl-var-som-solo-vsc.dtb VAR-SOM-SOLO / VAR-SOM-DUAL VAR-SOLOCustomBoard Capacitive LVDS touch VAR-DVK-SOLO/DUAL
VAR-STK-SOLO/DUAL
uImage-imx6q-var-dart.dtb DART-MX6 VAR-DT6CustomBoard Capacitive LVDS touch VAR-DVK-DT6
VAR-STK-DT6


Device trees

Build individual device trees:

Build the device tree for VAR-SOM-MX6 Dualite/Solo on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6dl-var-som-cap.dtb

Build the device tree for VAR-SOM-MX6 Dualite/Solo on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6dl-var-som-res.dtb

Build the device tree for VAR-SOM-MX6 Dualite/Solo on VAR-SOLOCustomBoard:
$ make -j4 imx6dl-var-som-vsc.dtb

Build the device tree for VAR-SOM-MX6 Quad/Dual on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6q-var-som-cap.dtb

Build the device tree for VAR-SOM-MX6 Quad/Dual on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6q-var-som-res.dtb

Build the device tree for VAR-SOM-MX6 Quad/Dual on VAR-SOLOCustomBoard:
$ make -j4 imx6q-var-som-vsc.dtb

Build the device tree for VAR-SOM-MX6 QuadPlus/DualPlus on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6qp-var-som-cap.dtb

Build the device tree for VAR-SOM-MX6 QuadPlus/DualPlus on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6qp-var-som-res.dtb

Build the device tree for VAR-SOM-MX6 QuadPlus/DualPlus on VAR-SOLOCustomBoard:
$ make -j4 imx6qp-var-som-vsc.dtb

Build the device tree for VAR-SOM-SOLO on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6dl-var-som-solo-cap.dtb

Build the device tree for VAR-SOM-SOLO on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6dl-var-som-solo-res.dtb

Build the device tree for VAR-SOM-SOLO on VAR-SOLOCustomBoard:
$ make -j4 imx6dl-var-som-solo-vsc.dtb

Build the device tree for DART-MX6:
$ make -j4 imx6q-var-dart.dtb


Device trees with Symphony-Board

Build individual device trees:

Build the device tree for VAR-SOM-MX6 Dualite/Solo on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6dl-var-som-cap.dtb

Build the device tree for VAR-SOM-MX6 Dualite/Solo on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6dl-var-som-res.dtb

Build the device tree for VAR-SOM-MX6 Dualite/Solo on Symphony-Board:
$ make -j4 imx6dl-var-som-symphony.dtb

Build the device tree for VAR-SOM-MX6 Dualite/Solo on VAR-SOLOCustomBoard:
$ make -j4 imx6dl-var-som-vsc.dtb

Build the device tree for VAR-SOM-MX6 Quad/Dual on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6q-var-som-cap.dtb

Build the device tree for VAR-SOM-MX6 Quad/Dual on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6q-var-som-res.dtb

Build the device tree for VAR-SOM-MX6 Quad/Dual on Symphony-Board:
$ make -j4 imx6q-var-som-symphony.dtb

Build the device tree for VAR-SOM-MX6 Quad/Dual on VAR-SOLOCustomBoard:
$ make -j4 imx6q-var-som-vsc.dtb

Build the device tree for VAR-SOM-MX6 QuadPlus/DualPlus on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6qp-var-som-cap.dtb

Build the device tree for VAR-SOM-MX6 QuadPlus/DualPlus on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6qp-var-som-res.dtb

Build the device tree for VAR-SOM-MX6 QuadPlus/DualPlus on Symphony-Board:
$ make -j4 imx6qp-var-som-symphony.dtb

Build the device tree for VAR-SOM-MX6 QuadPlus/DualPlus on VAR-SOLOCustomBoard:
$ make -j4 imx6qp-var-som-vsc.dtb

Build the device tree for VAR-SOM-SOLO on VAR-MX6CustomBoard with capacitive touchscreen:
$ make -j4 imx6dl-var-som-solo-cap.dtb

Build the device tree for VAR-SOM-SOLO on VAR-MX6CustomBoard with resistive touchscreen:
$ make -j4 imx6dl-var-som-solo-res.dtb

Build the device tree for VAR-SOM-SOLO on VAR-SOLOCustomBoard:
$ make -j4 imx6dl-var-som-solo-vsc.dtb

Build the device tree for VAR-SOM-SOLO on Symphony-Board:
$ make -j4 imx6dl-var-som-solo-symphony.dtb

Build the device tree for DART-MX6:
$ make -j4 imx6q-var-dart.dtb


SD card image file tree

/opt/images/
└── Yocto
    ├── SPL-nand
    ├── SPL-sd
    ├── imx6dl-var-som-cap.dtb
    ├── imx6dl-var-som-res.dtb
    ├── imx6dl-var-som-solo-cap.dtb
    ├── imx6dl-var-som-solo-res.dtb
    ├── imx6dl-var-som-solo-vsc.dtb
    ├── imx6dl-var-som-vsc.dtb
    ├── imx6q-var-dart.dtb
    ├── imx6q-var-som-cap.dtb
    ├── imx6q-var-som-res.dtb
    ├── imx6q-var-som-vsc.dtb
    ├── imx6qp-var-som-cap.dtb
    ├── imx6qp-var-som-res.dtb
    ├── imx6qp-var-som-vsc.dtb
    ├── rootfs.tar.gz
    ├── rootfs_128kbpeb.ubi
    ├── rootfs_256kbpeb.ubi
    ├── u-boot.img-nand
    ├── u-boot.img-sd
    └── uImage


SD card image file tree with Symphony-Board

/opt/images/
└── Yocto
    ├── SPL-nand
    ├── SPL-sd
    ├── imx6dl-var-som-cap.dtb
    ├── imx6dl-var-som-res.dtb
    ├── imx6dl-var-som-solo-cap.dtb
    ├── imx6dl-var-som-solo-res.dtb
    ├── imx6dl-var-som-solo-symphony.dtb
    ├── imx6dl-var-som-solo-vsc.dtb
    ├── imx6dl-var-som-vsc.dtb
    ├── imx6q-var-dart.dtb
    ├── imx6q-var-som-cap.dtb
    ├── imx6q-var-som-res.dtb
    ├── imx6q-var-som-symphony.dtb
    ├── imx6q-var-som-vsc.dtb
    ├── imx6qp-var-som-cap.dtb
    ├── imx6qp-var-som-res.dtb
    ├── imx6qp-var-som-symphony.dtb
    ├── imx6qp-var-som-vsc.dtb
    ├── rootfs.tar.gz
    ├── rootfs_128kbpeb.ubi
    ├── rootfs_256kbpeb.ubi
    ├── u-boot.img-nand
    ├── u-boot.img-sd
    └── uImage


Flash Recovery SD from GUI

Flash from GUI

VAR-SOM-MX6 Pyro Recovery.png

Click the appropriate button:

  • Install Yocto SOLOCB NAND: Flash Yocto on NAND flash, on VAR-SOLOCustomBoard
  • Install Yocto SOLOCB eMMC: Flash Yocto on eMMC, on VAR-SOLOCustomBoard
  • Install Yocto MX6CB Res NAND: Flash Yocto with Resistive touch panel support on NAND flash, on VAR-MX6CustomBoard
  • Install Yocto MX6CB Cap NAND: Flash Yocto with Capacitive touch panel support on NAND flash, on VAR-MX6CustomBoard
  • Install Yocto MX6CB Res eMMC: Flash Yocto with Resistive touch panel support on eMMC, on VAR-MX6CustomBoard
  • Install Yocto MX6CB Cap eMMC: Flash Yocto with Capacitive touch panel support on eMMC, on VAR-MX6CustomBoard
  • Install Yocto DART (eMMC): Flash Yocto on eMMC, on VAR-DT6CustomBoard


Flash from GUI

For this Yocto release, NXP/Vivante do no longer provide GPU accelerations for X11 native backend.

The default backend is now XWayland: Wayland accelerated backend with basic (not accelerated) X11 emulation.

Only "Flash from command line" is supported.


Setting the Boot Mode

Follow the instruction below according to the appropriate carrier board type:

MX6CustomBoard

Booting your MX6CustomBoard system from SD card requires pushing the middle button while powering up the system. See picture below.

Mx6 boot.jpg

To boot a board using an SD card, follow the steps below:

  • Power-off the board.
  • Insert the SD card into the SD/MMC slot of the carrier board (DVK)
  • Push the middle button (Boot Select) and hold
  • Power-up the board
  • Release the middle button (Boot Select) after system starts to boot.
  • The board will automatically boot into Linux from the SD card

SoloCustomBoard

Booting your system requires switching the relevant DIP switch to "Boot from MMC". See picture below.

Solo boot.jpg

To boot board with SD card, Follow the steps below:

  • Power-off the board.
  • Insert the SD card into the SD/MMC slot of the carrier board (DVK)
  • Switch the relevant DIP switch to "Boot from MMC"
  • Power-up board
  • The board will automatically boot into Linux from SD card

DT6CustomBoard

Booting your system requires switching the relevant DIP switch to "Boot from SD card". See picture below.

Dart boot.jpg

To boot board with SD card, Follow the steps below:

  • Power-off the board.
  • Insert the SD card into the SD/MMC slot of the carrier board (DVK)
  • Switch the relevant DIP switch to "Boot from SD card"
  • Power-up board
  • The board will automatically boot into Linux from SD card



DART-6UL

Build Results

Image Name
How to use
fsl-image-gui-.sdcard This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
fsl-image-gui-.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash.
Linux kernel image, same binary for SD card/eMMC or NAND flash.
SPL built for SD card boot or eMMC boot.
SPL built for NAND flash.
U-Boot built for SD card boot or eMMC boot.
U-Boot built for NAND flash.
File Name Description
zImage-imx6ul-var-dart-emmc_wifi.dtb Device tree blob for DART-6UL with eMMC & WI-FI enabled. (SD card & NAND disabled)
zImage-imx6ul-var-dart-nand_wifi.dtb Device tree blob for DART-6UL with NAND flash & WI-FI enabled. (SD card & eMMC disabled)
zImage-imx6ul-var-dart-sd_emmc.dtb Device tree blob for DART-6UL with SD card & eMMC enabled (WIFI & NAND disabled)
zImage-imx6ul-var-dart-sd_nand.dtb Device tree blob for DART-6UL with SD card & NAND flash enabled (WIFI & eMMC disabled)
zImage-imx6ull-var-dart-emmc_wifi.dtb Device tree blob for DART-6ULL with eMMC & WI-FI enabled. (SD card & NAND disabled)
zImage-imx6ull-var-dart-nand_wifi.dtb Device tree blob for DART-6ULL with NAND flash & WI-FI enabled. (SD card & eMMC disabled)
zImage-imx6ull-var-dart-sd_emmc.dtb Device tree blob for DART-6ULL with SD card & eMMC enabled (WIFI & NAND disabled)
zImage-imx6ull-var-dart-sd_nand.dtb Device tree blob for DART-6ULL with SD card & NAND flash enabled (WIFI & eMMC disabled)


Image Name
How to use
fsl-image-gui-. This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
fsl-image-gui-_128kbpeb.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash with 128KiB PEB
fsl-image-gui-_256kbpeb.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash with 256KiB PEB
Linux kernel image, same binary for SD card/eMMC or NAND flash.
SPL built for SD card boot or eMMC boot.
SPL built for NAND flash.
U-Boot built for SD card boot or eMMC boot.
U-Boot built for NAND flash.
File Name Description
zImage-imx6ul-var-dart-emmc_wifi.dtb Device tree blob for DART-6UL with eMMC & WI-FI enabled. (SD card & NAND disabled)
zImage-imx6ul-var-dart-nand_wifi.dtb Device tree blob for DART-6UL with NAND flash & WI-FI enabled. (SD card & eMMC disabled)
zImage-imx6ul-var-dart-5g-emmc_wifi.dtb Device tree blob for DART-6UL-5G with eMMC & WI-FI enabled. (SD card & NAND disabled)
zImage-imx6ul-var-dart-5g-nand_wifi.dtb Device tree blob for DART-6UL-5G with NAND flash & WI-FI enabled. (SD card & eMMC disabled)
zImage-imx6ul-var-dart-sd_emmc.dtb Device tree blob for DART-6UL with SD card & eMMC enabled (WIFI & NAND disabled)
zImage-imx6ul-var-dart-sd_nand.dtb Device tree blob for DART-6UL with SD card & NAND flash enabled (WIFI & eMMC disabled)
zImage-imx6ull-var-dart-emmc_wifi.dtb Device tree blob for DART-6ULL with eMMC & WI-FI enabled. (SD card & NAND disabled)
zImage-imx6ull-var-dart-nand_wifi.dtb Device tree blob for DART-6ULL with NAND flash & WI-FI enabled. (SD card & eMMC disabled)
zImage-imx6ull-var-dart-5g-emmc_wifi.dtb Device tree blob for DART-6ULL-5G with eMMC & WI-FI enabled. (SD card & NAND disabled)
zImage-imx6ull-var-dart-5g-nand_wifi.dtb Device tree blob for DART-6ULL-5G with NAND flash & WI-FI enabled. (SD card & eMMC disabled)
zImage-imx6ull-var-dart-sd_emmc.dtb Device tree blob for DART-6ULL with SD card & eMMC enabled (WIFI & NAND disabled)
zImage-imx6ull-var-dart-sd_nand.dtb Device tree blob for DART-6ULL with SD card & NAND flash enabled (WIFI & eMMC disabled)


Image Name
How to use
fsl-image-gui-. This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
fsl-image-gui-_128kbpeb.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash with 128KiB PEB
fsl-image-gui-_256kbpeb.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash with 256KiB PEB
Linux kernel image, same binary for SD card/eMMC or NAND flash.
SPL built for SD card boot or eMMC boot.
SPL built for NAND flash.
U-Boot built for SD card boot or eMMC boot.
U-Boot built for NAND flash.
File Name Description
imx6ull-var-dart-6ulcustomboard-emmc-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ull-var-dart-6ulcustomboard-emmc-wifi.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ull-var-dart-6ulcustomboard-nand-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ull-var-dart-6ulcustomboard-nand-wifi.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ul-var-dart-6ulcustomboard-emmc-sd-card.dtb Device tree blob for DART-6UL with i.MX6UL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ul-var-dart-6ulcustomboard-emmc-wifi.dtb Device tree blob for DART-6UL with i.MX6UL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ul-var-dart-6ulcustomboard-nand-sd-card.dtb Device tree blob for DART-6UL with i.MX6UL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ul-var-dart-6ulcustomboard-nand-wifi.dtb Device tree blob for DART-6UL with i.MX6UL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ulz-var-dart-6ulcustomboard-emmc-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ulz-var-dart-6ulcustomboard-emmc-wifi.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ulz-var-dart-6ulcustomboard-nand-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ulz-var-dart-6ulcustomboard-nand-wifi.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ull-var-som-concerto-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ull-var-som-concerto-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ull-var-som-concerto-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ull-var-som-concerto-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ul-var-som-concerto-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6UL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ul-var-som-concerto-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6UL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ul-var-som-concerto-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6UL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ul-var-som-concerto-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6UL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ulz-var-som-concerto-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULZ SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ulz-var-som-concerto-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULZ SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ulz-var-som-concerto-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULZ SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ulz-var-som-concerto-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULZ SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)


Image Name
How to use
fsl-image-gui-. This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
fsl-image-gui-_128kbpeb.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash with 128KiB PEB
fsl-image-gui-_256kbpeb.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash with 256KiB PEB
Linux kernel image, same binary for SD card/eMMC or NAND flash.
SPL built for SD card boot or eMMC boot.
SPL built for NAND flash.
U-Boot built for SD card boot or eMMC boot.
U-Boot built for NAND flash.
File Name Description
imx6ull-var-dart-6ulcustomboard-emmc-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ull-var-dart-6ulcustomboard-emmc-wifi.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ull-var-dart-6ulcustomboard-nand-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ull-var-dart-6ulcustomboard-nand-wifi.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ul-var-dart-6ulcustomboard-emmc-sd-card.dtb Device tree blob for DART-6UL with i.MX6UL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ul-var-dart-6ulcustomboard-emmc-wifi.dtb Device tree blob for DART-6UL with i.MX6UL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ul-var-dart-6ulcustomboard-nand-sd-card.dtb Device tree blob for DART-6UL with i.MX6UL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ul-var-dart-6ulcustomboard-nand-wifi.dtb Device tree blob for DART-6UL with i.MX6UL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ulz-var-dart-6ulcustomboard-emmc-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ulz-var-dart-6ulcustomboard-emmc-wifi.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ulz-var-dart-6ulcustomboard-nand-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ulz-var-dart-6ulcustomboard-nand-wifi.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ull-var-som-concerto-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6ULL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ull-var-som-concerto-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6ULL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ull-var-som-concerto-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6ULL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ull-var-som-concerto-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6ULL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ul-var-som-concerto-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6UL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ul-var-som-concerto-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6UL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ul-var-som-concerto-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6UL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ul-var-som-concerto-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6UL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ulz-var-som-concerto-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6ULZ SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ulz-var-som-concerto-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6ULZ SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ulz-var-som-concerto-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6ULZ SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ulz-var-som-concerto-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL on Concerto board with i.MX6ULZ SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ull-var-som-symphony-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6ULL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ull-var-som-symphony-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6ULL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ull-var-som-symphony-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6ULL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ull-var-som-symphony-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6ULL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ul-var-som-symphony-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6UL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ul-var-som-symphony-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6UL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ul-var-som-symphony-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6UL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ul-var-som-symphony-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6UL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ulz-var-som-symphony-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6ULZ SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ulz-var-som-symphony-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6ULZ SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ulz-var-som-symphony-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6ULZ SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ulz-var-som-symphony-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL on Symphony board with i.MX6ULZ SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)


Device tree

Build only the device tree for DART-6UL with i.MX6UL SOC, eMMC and WiFi:
$ make -j4 imx6ul-var-dart-emmc_wifi.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, eMMC and SD card:
$ make -j4 imx6ul-var-dart-sd_emmc.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, NAND flash and WiFi:
$ make -j4 imx6ul-var-dart-nand_wifi.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, NAND flash and SD card:
$ make -j4 imx6ul-var-dart-sd_nand.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, eMMC and WiFi:
$ make -j4 imx6ull-var-dart-emmc_wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, eMMC and SD card:
$ make -j4 imx6ull-var-dart-sd_emmc.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, NAND flash and WiFi:
$ make -j4 imx6ull-var-dart-nand_wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, NAND flash and SD card:
$ make -j4 imx6ull-var-dart-sd_nand.dtb


Build only the device tree for DART-6UL with i.MX6UL SOC, eMMC and WiFi:
$ make -j4 imx6ul-var-dart-emmc_wifi.dtb

Build only the device tree for DART-6UL-5G with i.MX6UL SOC, eMMC and WiFi:
$ make -j4 imx6ul-var-dart-5g-emmc_wifi.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, eMMC and SD card:
$ make -j4 imx6ul-var-dart-sd_emmc.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, NAND flash and WiFi:
$ make -j4 imx6ul-var-dart-nand_wifi.dtb

Build only the device tree for DART-6UL-5G with i.MX6UL SOC, NAND flash and WiFi:
$ make -j4 imx6ul-var-dart-5g-nand_wifi.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, NAND flash and SD card:
$ make -j4 imx6ul-var-dart-sd_nand.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, eMMC and WiFi:
$ make -j4 imx6ull-var-dart-emmc_wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, eMMC and SD card:
$ make -j4 imx6ull-var-dart-sd_emmc.dtb

Build only the device tree for DART-6UL-5G with i.MX6ULL SOC, eMMC and WiFi:
$ make -j4 imx6ull-var-dart-5g-emmc_wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, NAND flash and WiFi:
$ make -j4 imx6ull-var-dart-nand_wifi.dtb

Build only the device tree for DART-6UL-5G with i.MX6ULL SOC, NAND flash and WiFi:
$ make -j4 imx6ull-var-dart-5g-nand_wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, NAND flash and SD card:
$ make -j4 imx6ull-var-dart-sd_nand.dtb


Build only the device tree for DART-6UL with i.MX6ULL SOC, eMMC and SD card:
$ make -j4 imx6ull-var-dart-6ulcustomboard-emmc-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, eMMC and WiFi:
$ make -j4 imx6ull-var-dart-6ulcustomboard-emmc-wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, NAND flash and SD card:
$ make -j4 imx6ull-var-dart-6ulcustomboard-nand-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, NAND flash and WiFi:
$ make -j4 imx6ull-var-dart-6ulcustomboard-nand-wifi.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, eMMC and SD card:
$ make -j4 imx6ul-var-dart-6ulcustomboard-emmc-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, eMMC and WiFi:
$ make -j4 imx6ul-var-dart-6ulcustomboard-emmc-wifi.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, NAND flash and SD card:
$ make -j4 imx6ul-var-dart-6ulcustomboard-nand-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, NAND flash and WiFi:
$ make -j4 imx6ul-var-dart-6ulcustomboard-nand-wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULZ SOC, eMMC and SD card:
$ make -j4 imx6ulz-var-dart-6ulcustomboard-emmc-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6ULZ SOC, eMMC and WiFi:
$ make -j4 imx6ulz-var-dart-6ulcustomboard-emmc-wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULZ SOC, NAND flash and SD card:
$ make -j4 imx6ulz-var-dart-6ulcustomboard-nand-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6ULZ SOC, NAND flash and WiFi:
$ make -j4 imx6ulz-var-dart-6ulcustomboard-nand-wifi.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6ULL SOC, eMMC and SD card:
$ make -j4 imx6ull-var-som-concerto-board-emmc-sd-card.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6ULL SOC, eMMC and WiFi:
$ make -j4 imx6ull-var-som-concerto-board-emmc-wifi.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6ULL SOC, NAND flash and SD card:
$ make -j4 imx6ull-var-som-concerto-board-nand-sd-card.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6ULL SOC, NAND flash and WiFi:
$ make -j4 imx6ull-var-som-concerto-board-nand-wifi.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6UL SOC, eMMC and SD card:
$ make -j4 imx6ul-var-som-concerto-board-emmc-sd-card.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6UL SOC, eMMC and WiFi:
$ make -j4 imx6ul-var-som-concerto-board-emmc-wifi.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6UL SOC, NAND flash and SD card:
$ make -j4 imx6ul-var-som-concerto-board-nand-sd-card.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6UL SOC, NAND flash and WiFi:
$ make -j4 imx6ul-var-som-concerto-board-nand-wifi.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6ULZ SOC, eMMC and SD card:
$ make -j4 imx6ulz-var-som-concerto-board-emmc-sd-card.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6ULZ SOC, eMMC and WiFi:
$ make -j4 imx6ulz-var-som-concerto-board-emmc-wifi.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6ULZ SOC, NAND flash and SD card:
$ make -j4 imx6ulz-var-som-concerto-board-nand-sd-card.dtb

Build only the device tree for VAR-SOM-6UL with i.MX6ULZ SOC, NAND flash and WiFi:
$ make -j4 imx6ulz-var-som-concerto-board-nand-wifi.dtb


Build only the device tree for DART-6UL with i.MX6ULL SOC, eMMC and SD card:
$ make -j4 imx6ull-var-dart-6ulcustomboard-emmc-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, eMMC and WiFi:
$ make -j4 imx6ull-var-dart-6ulcustomboard-emmc-wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, NAND flash and SD card:
$ make -j4 imx6ull-var-dart-6ulcustomboard-nand-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6ULL SOC, NAND flash and WiFi:
$ make -j4 imx6ull-var-dart-6ulcustomboard-nand-wifi.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, eMMC and SD card:
$ make -j4 imx6ul-var-dart-6ulcustomboard-emmc-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, eMMC and WiFi:
$ make -j4 imx6ul-var-dart-6ulcustomboard-emmc-wifi.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, NAND flash and SD card:
$ make -j4 imx6ul-var-dart-6ulcustomboard-nand-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6UL SOC, NAND flash and WiFi:
$ make -j4 imx6ul-var-dart-6ulcustomboard-nand-wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULZ SOC, eMMC and SD card:
$ make -j4 imx6ulz-var-dart-6ulcustomboard-emmc-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6ULZ SOC, eMMC and WiFi:
$ make -j4 imx6ulz-var-dart-6ulcustomboard-emmc-wifi.dtb

Build only the device tree for DART-6UL with i.MX6ULZ SOC, NAND flash and SD card:
$ make -j4 imx6ulz-var-dart-6ulcustomboard-nand-sd-card.dtb

Build only the device tree for DART-6UL with i.MX6ULZ SOC, NAND flash and WiFi:
$ make -j4 imx6ulz-var-dart-6ulcustomboard-nand-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6ULL SOC, eMMC and SD card:
$ make -j4 imx6ull-var-som-concerto-board-emmc-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6ULL SOC, eMMC and WiFi:
$ make -j4 imx6ull-var-som-concerto-board-emmc-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6ULL SOC, NAND flash and SD card:
$ make -j4 imx6ull-var-som-concerto-board-nand-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6ULL SOC, NAND flash and WiFi:
$ make -j4 imx6ull-var-som-concerto-board-nand-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6UL SOC, eMMC and SD card:
$ make -j4 imx6ul-var-som-concerto-board-emmc-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6UL SOC, eMMC and WiFi:
$ make -j4 imx6ul-var-som-concerto-board-emmc-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6UL SOC, NAND flash and SD card:
$ make -j4 imx6ul-var-som-concerto-board-nand-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6UL SOC, NAND flash and WiFi:
$ make -j4 imx6ul-var-som-concerto-board-nand-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6ULZ SOC, eMMC and SD card:
$ make -j4 imx6ulz-var-som-concerto-board-emmc-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6ULZ SOC, eMMC and WiFi:
$ make -j4 imx6ulz-var-som-concerto-board-emmc-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6ULZ SOC, NAND flash and SD card:
$ make -j4 imx6ulz-var-som-concerto-board-nand-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Concerto board with i.MX6ULZ SOC, NAND flash and WiFi:
$ make -j4 imx6ulz-var-som-concerto-board-nand-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6ULL SOC, eMMC and SD card:
$ make -j4 imx6ull-var-som-symphony-board-emmc-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6ULL SOC, eMMC and WiFi:
$ make -j4 imx6ull-var-som-symphony-board-emmc-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6ULL SOC, NAND flash and SD card:
$ make -j4 imx6ull-var-som-symphony-board-nand-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6ULL SOC, NAND flash and WiFi:
$ make -j4 imx6ull-var-som-symphony-board-nand-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6UL SOC, eMMC and SD card:
$ make -j4 imx6ul-var-som-symphony-board-emmc-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6UL SOC, eMMC and WiFi:
$ make -j4 imx6ul-var-som-symphony-board-emmc-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6UL SOC, NAND flash and SD card:
$ make -j4 imx6ul-var-som-symphony-board-nand-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6UL SOC, NAND flash and WiFi:
$ make -j4 imx6ul-var-som-symphony-board-nand-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6ULZ SOC, eMMC and SD card:
$ make -j4 imx6ulz-var-som-symphony-board-emmc-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6ULZ SOC, eMMC and WiFi:
$ make -j4 imx6ulz-var-som-symphony-board-emmc-wifi.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6ULZ SOC, NAND flash and SD card:
$ make -j4 imx6ulz-var-som-symphony-board-nand-sd-card.dtb

Build only the device tree for VAR-SOM-6UL on Symphony board with i.MX6ULZ SOC, NAND flash and WiFi:
$ make -j4 imx6ulz-var-som-symphony-board-nand-wifi.dtb


SD card image file tree

/opt/images/
└── Yocto
    ├── imx6ul-var-dart-emmc_wifi.dtb
    ├── imx6ul-var-dart-nand_wifi.dtb
    ├── imx6ul-var-dart-sd_emmc.dtb
    ├── imx6ul-var-dart-sd_nand.dtb
    ├── imx6ull-var-dart-emmc_wifi.dtb
    ├── imx6ull-var-dart-nand_wifi.dtb
    ├── imx6ull-var-dart-sd_emmc.dtb
    ├── imx6ull-var-dart-sd_nand.dtb
    ├── rootfs.tar.gz
    ├── rootfs.ubi
    ├── SPL-nand
    ├── SPL-sd
    ├── u-boot.img-nand
    ├── u-boot.img-sd
    └── zImage


/opt/images/
└── Yocto
    ├── imx6ul-var-dart-5g-emmc_wifi.dtb
    ├── imx6ul-var-dart-5g-nand_wifi.dtb
    ├── imx6ul-var-dart-emmc_wifi.dtb
    ├── imx6ul-var-dart-nand_wifi.dtb
    ├── imx6ul-var-dart-sd_emmc.dtb
    ├── imx6ul-var-dart-sd_nand.dtb
    ├── imx6ull-var-dart-5g-emmc_wifi.dtb
    ├── imx6ull-var-dart-5g-nand_wifi.dtb
    ├── imx6ull-var-dart-emmc_wifi.dtb
    ├── imx6ull-var-dart-nand_wifi.dtb
    ├── imx6ull-var-dart-sd_emmc.dtb
    ├── imx6ull-var-dart-sd_nand.dtb
    ├── rootfs.tar.gz
    ├── rootfs.ubi
    ├── SPL-nand
    ├── SPL-sd
    ├── u-boot.img-nand
    ├── u-boot.img-sd
    └── zImage


/opt/images/
└── Yocto
    ├── imx6ul-var-dart-5g-emmc_wifi.dtb
    ├── imx6ul-var-dart-5g-nand_wifi.dtb
    ├── imx6ul-var-dart-emmc_wifi.dtb
    ├── imx6ul-var-dart-nand_wifi.dtb
    ├── imx6ul-var-dart-sd_emmc.dtb
    ├── imx6ul-var-dart-sd_nand.dtb
    ├── imx6ull-var-dart-5g-emmc_wifi.dtb
    ├── imx6ull-var-dart-5g-nand_wifi.dtb
    ├── imx6ull-var-dart-emmc_wifi.dtb
    ├── imx6ull-var-dart-nand_wifi.dtb
    ├── imx6ull-var-dart-sd_emmc.dtb
    ├── imx6ull-var-dart-sd_nand.dtb
    ├── rootfs.tar.gz
    ├── rootfs_128kbpeb.ubi
    ├── rootfs_256kbpeb.ubi
    ├── SPL-nand
    ├── SPL-sd
    ├── u-boot.img-nand
    ├── u-boot.img-sd
    └── zImage


/opt/images/
└── Yocto
    ├── imx6ull-var-dart-6ulcustomboard-emmc-sd-card.dtb
    ├── imx6ull-var-dart-6ulcustomboard-emmc-wifi.dtb
    ├── imx6ull-var-dart-6ulcustomboard-nand-sd-card.dtb
    ├── imx6ull-var-dart-6ulcustomboard-nand-wifi.dtb
    ├── imx6ull-var-som-concerto-board-emmc-sd-card.dtb
    ├── imx6ull-var-som-concerto-board-emmc-wifi.dtb
    ├── imx6ull-var-som-concerto-board-nand-sd-card.dtb
    ├── imx6ull-var-som-concerto-board-nand-wifi.dtb
    ├── imx6ul-var-dart-6ulcustomboard-emmc-sd-card.dtb
    ├── imx6ul-var-dart-6ulcustomboard-emmc-wifi.dtb
    ├── imx6ul-var-dart-6ulcustomboard-nand-sd-card.dtb
    ├── imx6ul-var-dart-6ulcustomboard-nand-wifi.dtb
    ├── imx6ul-var-som-concerto-board-emmc-sd-card.dtb
    ├── imx6ul-var-som-concerto-board-emmc-wifi.dtb
    ├── imx6ul-var-som-concerto-board-nand-sd-card.dtb
    ├── imx6ul-var-som-concerto-board-nand-wifi.dtb
    ├── imx6ulz-var-dart-6ulcustomboard-emmc-sd-card.dtb
    ├── imx6ulz-var-dart-6ulcustomboard-emmc-wifi.dtb
    ├── imx6ulz-var-dart-6ulcustomboard-nand-sd-card.dtb
    ├── imx6ulz-var-dart-6ulcustomboard-nand-wifi.dtb
    ├── imx6ulz-var-som-concerto-board-emmc-sd-card.dtb
    ├── imx6ulz-var-som-concerto-board-emmc-wifi.dtb
    ├── imx6ulz-var-som-concerto-board-nand-sd-card.dtb
    ├── imx6ulz-var-som-concerto-board-nand-wifi.dtb
    ├── rootfs_128kbpeb.ubi
    ├── rootfs_256kbpeb.ubi
    ├── rootfs.tar.gz
    ├── SPL-nand
    ├── SPL-sd
    ├── u-boot.img-nand
    ├── u-boot.img-sd
    └── zImage


/opt/images/
└── Yocto
    ├── imx6ull-var-dart-6ulcustomboard-emmc-sd-card.dtb
    ├── imx6ull-var-dart-6ulcustomboard-emmc-wifi.dtb
    ├── imx6ull-var-dart-6ulcustomboard-nand-sd-card.dtb
    ├── imx6ull-var-dart-6ulcustomboard-nand-wifi.dtb
    ├── imx6ull-var-som-concerto-board-emmc-sd-card.dtb
    ├── imx6ull-var-som-concerto-board-emmc-wifi.dtb
    ├── imx6ull-var-som-concerto-board-nand-sd-card.dtb
    ├── imx6ull-var-som-concerto-board-nand-wifi.dtb
    ├── imx6ull-var-som-symphony-board-emmc-sd-card.dtb
    ├── imx6ull-var-som-symphony-board-emmc-wifi.dtb
    ├── imx6ull-var-som-symphony-board-nand-sd-card.dtb
    ├── imx6ull-var-som-symphony-board-nand-wifi.dtb
    ├── imx6ul-var-dart-6ulcustomboard-emmc-sd-card.dtb
    ├── imx6ul-var-dart-6ulcustomboard-emmc-wifi.dtb
    ├── imx6ul-var-dart-6ulcustomboard-nand-sd-card.dtb
    ├── imx6ul-var-dart-6ulcustomboard-nand-wifi.dtb
    ├── imx6ul-var-som-concerto-board-emmc-sd-card.dtb
    ├── imx6ul-var-som-concerto-board-emmc-wifi.dtb
    ├── imx6ul-var-som-concerto-board-nand-sd-card.dtb
    ├── imx6ul-var-som-symphony-board-emmc-sd-card.dtb
    ├── imx6ul-var-som-symphony-board-emmc-wifi.dtb
    ├── imx6ul-var-som-symphony-board-nand-sd-card.dtb
    ├── imx6ul-var-som-symphony-board-nand-wifi.dtb
    ├── imx6ul-var-som-concerto-board-nand-wifi.dtb
    ├── imx6ulz-var-dart-6ulcustomboard-emmc-sd-card.dtb
    ├── imx6ulz-var-dart-6ulcustomboard-emmc-wifi.dtb
    ├── imx6ulz-var-dart-6ulcustomboard-nand-sd-card.dtb
    ├── imx6ulz-var-dart-6ulcustomboard-nand-wifi.dtb
    ├── imx6ulz-var-som-concerto-board-emmc-sd-card.dtb
    ├── imx6ulz-var-som-concerto-board-emmc-wifi.dtb
    ├── imx6ulz-var-som-concerto-board-nand-sd-card.dtb
    ├── imx6ulz-var-som-concerto-board-nand-wifi.dtb
    ├── imx6ulz-var-som-symphony-board-emmc-sd-card.dtb
    ├── imx6ulz-var-som-symphony-board-emmc-wifi.dtb
    ├── imx6ulz-var-som-symphony-board-nand-sd-card.dtb
    ├── imx6ulz-var-som-symphony-board-nand-wifi.dtb
    ├── rootfs_128kbpeb.ubi
    ├── rootfs_256kbpeb.ubi
    ├── rootfs.tar.gz
    ├── SPL-nand
    ├── SPL-sd
    ├── u-boot.img-nand
    ├── u-boot.img-sd
    └── zImage


Flash Recovery SD from GUI

Flash from GUI

DART-6UL Recovery Sumo.png

Touch/Click on the appropriate icon:

  • Install Yocto NAND, WiFi: Flash Yocto with WiFi support to NAND flash
  • Install Yocto NAND, SD card: Flash Yocto with SD card support to NAND flash
  • Install Yocto eMMC (SD/WiFi) : Flash Yocto to eMMC (installs both SD card and WiFi dtbs to the BOOT partition and let U-Boot select between them at boot time)


Setting the Boot Mode

Booting your system from an SD card requires switching the Boot DIP switches. See picture below.

Boot switch 6ul1.jpg
  • "00" The current position in the picture will set the system to boot from SD card
  • "01" Moving the right switch will set the system to boot from eMMC
  • "10" Moving the left switch will set the system to boot from NAND flash
  • "11" is illegal.
Be aware that your system has eMMC or NAND but never both.


Booting your system from an SD card requires switching the Boot DIP switches. See picture below.
On the VAR-6ULCustomBoard (with a DART-6UL):

Boot switch 6ul1.jpg
  • "00" The current position in the picture will set the system to boot from SD card
  • "01" Moving the right switch will set the system to boot from eMMC
  • "10" Moving the left switch will set the system to boot from NAND flash
  • "11" is illegal.
Be aware that your system has eMMC or NAND but never both.



On the Concerto-Board (with a VAR-SOM-6UL):

Boot switch concerto.jpg
  • ON-EXT: Boot from the external storage (SD card) - the current position in the picture
  • OFF-INT: Boot from the SOM's internal storage (eMMC/NAND flash)


Using only one Ethernet port

Apply the following patch to the Linux kernel source, for removing the second Ethernet port, in case your own custom carrier board only has one and doesn't have the second Ethernet phy:

diff --git a/arch/arm/boot/dts/imx6ul-imx6ull-var-dart-common.dtsi b/arch/arm/boot/dts/imx6ul-imx6ull-var-dart-common.dtsi
index f79a356..032ed00 100644
--- a/arch/arm/boot/dts/imx6ul-imx6ull-var-dart-common.dtsi
+++ b/arch/arm/boot/dts/imx6ul-imx6ull-var-dart-common.dtsi
@@ -159,17 +159,6 @@
 	phy-reset-on-resume;
 	phy-handle = <&ethphy0>;
 	status = "okay";
-};
-
-&fec2 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_enet2>;
-	phy-mode = "rmii";
-	phy-handle = <&ethphy1>;
-	phy-reset-gpios=<&gpio1 10 1>;
-	phy-reset-duration=<100>;
-	phy-reset-on-resume;
-	status = "okay";
 	mdio {
 		#address-cells = <1>;
 		#size-cells = <0>;
@@ -181,14 +170,6 @@
 			clock-names = "rmii-ref";
 			reg = <1>;
 		};
-
-		ethphy1: ethernet-phy@3 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			micrel,rmii-reference-clock-select-25-mhz;
-			clocks = <&rmii_ref_clk>;
-			clock-names = "rmii-ref";
-			reg = <3>;
-		};
 	};
 };
 
@@ -460,8 +441,8 @@
 			fsl,pins = <
 				MX6UL_PAD_CSI_HSYNC__GPIO4_IO20		0x1b0b0	/* User LED */
 				MX6UL_PAD_GPIO1_IO00__GPIO1_IO00	0x17059	/* User Button */
-				MX6UL_PAD_GPIO1_IO07__ENET2_MDC		0x1b0b0
-				MX6UL_PAD_GPIO1_IO06__ENET2_MDIO	0x1b0b0
+				MX6UL_PAD_GPIO1_IO07__ENET1_MDC		0x1b0b0
+				MX6UL_PAD_GPIO1_IO06__ENET1_MDIO	0x1b0b0
 #ifdef WIFI
 				MX6UL_PAD_GPIO1_IO03__REF_CLK_32K	0x03029	/* WLAN Slow Clock */
 #endif
@@ -481,20 +462,6 @@
 			>;
 		};
 
-		pinctrl_enet2: enet2grp {
-			fsl,pins = <
-				MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN	0x1b0b0
-				MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER	0x1b0b0
-				MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00	0x1b0b0
-				MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01	0x1b0b0
-				MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN	0x1b0b0
-				MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00	0x1b0b0
-				MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01	0x1b0b0
-				MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2	0x4001b031
-				MX6UL_PAD_JTAG_MOD__GPIO1_IO10		0x1b0b0
-			>;
-		};
-
 		pinctrl_flexcan1: flexcan1grp{
 			fsl,pins = <
 				MX6UL_PAD_LCD_DATA09__FLEXCAN1_RX	0x1b020

Notes:
- You can follow the "Build Linux from source code" guide to get the Linux kernel source, apply the above patch, build only the device trees and copy them to your SD card.
- In older kernel releases where there is no imx6ul-imx6ull-var-dart-common.dtsi file, the relevant file to edit is called imx6ul-var-dart.dtsi


To remove the second Ethernet port, in case your own custom carrier board only has one and doesn't have the second Ethernet phy:
Edit the dtsi file of the reference carrier board in the Linux kernel source and remove the &fec1 and &fec2 nodes from it.
In case of the VAR-6ULCustomBoard (DART-6UL carrier), the file is arch/arm/boot/dts/imx6ul-imx6ull-var-dart-6ulcustomboard.dtsi.
In case of the Concerto-Board (VAR-SOM-6UL carrier), the file is arch/arm/boot/dts/imx6ul-imx6ull-var-som-concerto-board.dtsi.
The above will result in using the &fec1 node from the dtsi file of the SOM, as is (as the phy of the first Ethernet port is on the SOM), without adding the second port (which its phy is on the reference carrier board).
Notes:
- You can follow the "Build Linux from source code" guide to get the Linux kernel source, apply the above patch, build only the device trees and copy them to your SD card.


VAR-SOM-MX7

Build Results

Image Name
How to use
fsl-image-gui-. This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
fsl-image-gui-_128kbpeb.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash with 128KiB PEB
fsl-image-gui-_256kbpeb.ubi A complete UBI image containing a UBIFS volume, for writing to NAND flash with 256KiB PEB
Linux kernel image, same binary for SD card/eMMC or NAND flash.
SPL built for SD card boot or eMMC boot.
SPL built for NAND flash.
U-Boot built for SD card boot or eMMC boot.
U-Boot built for NAND flash.
File Name Description
zImage-imx7d-var-som-emmc.dtb Device tree blob for SOMs with eMMC.
zImage-imx7d-var-som-nand.dtb Device tree blob for SOMs with NAND flash.
zImage-imx7d-var-som-emmc-m4.dtb Device tree blob for SOMs with eMMC and M4 support.
zImage-imx7d-var-som-nand-m4.dtb Device tree blob for SOMs with NAND flash and M4 support.


Device tree

Build only the device tree for VAR-SOM-MX7 with eMMC:
$ make -j4 imx7d-var-som-emmc.dtb

Build only the device tree for VAR-SOM-MX7 with NAND flash:
$ make -j4 imx7d-var-som-nand.dtb

Build only the device tree for VAR-SOM-MX7 with eMMC and M4 support:
$ make -j4 imx7d-var-som-emmc-m4.dtb

Build only the device tree for VAR-SOM-MX7 with NAND flash and M4 support:
$ make -j4 imx7d-var-som-nand-m4.dtb


SD card image file tree

/opt/images/
└── Yocto
    ├── imx7d-var-som-emmc.dtb
    ├── imx7d-var-som-nand.dtb
    ├── imx7d-var-som-emmc-m4.dtb
    ├── imx7d-var-som-nand-m4.dtb
    ├── rootfs.tar.gz
    ├── rootfs.ubi
    ├── u-boot.imx-nand
    ├── u-boot.imx-sd
    └── zImage


/opt/images/
└── Yocto
    ├── imx7d-var-som-emmc.dtb
    ├── imx7d-var-som-nand.dtb
    ├── imx7d-var-som-emmc-m4.dtb
    ├── imx7d-var-som-nand-m4.dtb
    ├── rootfs.tar.gz
    ├── rootfs.ubi
    ├── SPL-nand
    ├── SPL-sd
    ├── u-boot.img-nand
    ├── u-boot.img-sd
    └── zImage


/opt/images/
└── Yocto
    ├── imx7d-var-som-emmc.dtb
    ├── imx7d-var-som-nand.dtb
    ├── imx7d-var-som-emmc-m4.dtb
    ├── imx7d-var-som-nand-m4.dtb
    ├── rootfs.tar.gz
    ├── rootfs_128kbpeb.ubi
    ├── rootfs_256kbpeb.ubi
    ├── SPL-nand
    ├── SPL-sd
    ├── u-boot.img-nand
    ├── u-boot.img-sd
    └── zImage


Flash Recovery SD from GUI

Flash from GUI

VAR-SOM-MX7 Rocko Recovery.png

Touch/Click on the appropriate icon:

  • Install Yocto NAND flash: Flash Yocto to NAND flash
  • Install Yocto eMMC: Flash Yocto to eMMC


Setting the Boot Mode

Make sure the BOOT SELECT DIP switches on the carrier board are set correctly before you power on the board.

SW1-SW2
 0 - 0 : Boot from SD card
 1 - 0 : Boot from eMMC
 0 - 1 : Boot from NAND flash
 1 - 1 : Illegal
The VAR-SOM-MX7 SOM comes with either NAND or eMMC, but not both.


DART-MX8M

Build Results

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
Image.gz-imx8m-var-dart-emmc-wifi-hdmi.dtb Device tree blob for eMMC, WIFI and HDMI display configuration.
Image.gz-imx8m-var-dart-emmc-wifi-hdmi-4k.dtb Device tree blob for eMMC, WIFI and HDMI 4K display configuration.
Image.gz-imx8m-var-dart-emmc-wifi-dcss-lvds.dtb Device tree blob for eMMC, WIFI and DCSS LVDS display configuration.
Image.gz-imx8m-var-dart-emmc-wifi-lcdif-lvds.dtb Device tree blob for eMMC, WIFI and LCDIF LVDS display configuration.
Image.gz-imx8m-var-dart-emmc-wifi-dual-display.dtb Device tree blob for eMMC, WIFI and dual LVDS+HDMI display configuration.
Image.gz-imx8m-var-dart-sd-emmc-hdmi.dtb Device tree blob for SD, eMMC and HDMI display configuration.
Image.gz-imx8m-var-dart-sd-emmc-hdmi-4k.dtb Device tree blob for SD, eMMC and HDMI 4K display configuration.
Image.gz-imx8m-var-dart-sd-emmc-dcss-lvds.dtb Device tree blob for SD, eMMC and DCSS LVDS display configuration.
Image.gz-imx8m-var-dart-sd-emmc-lcdif-lvds.dtb Device tree blob for SD, eMMC and LCDIF LVDS display configuration.
Image.gz-imx8m-var-dart-sd-emmc-dual-display.dtb Device tree blob for SD, eMMC and dual LVDS+HDMI display configuration.


Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
Image.gz-fsl-imx8mq-var-dart-emmc-wifi-hdmi.dtb DTB for DART-MX8M with WIFI and HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-emmc-wifi-lvds.dtb DTB for DART-MX8M with WIFI and LVDS display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-emmc-wifi-dual-display.dtb DTB for DART-MX8M with WIFI and dual LVDS+HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-emmc-wifi-hdmi-cb12.dtb DTB for DART-MX8M with WIFI and HDMI display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-emmc-wifi-lvds-cb12.dtb DTB for DART-MX8M with WIFI and LVDS display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-emmc-wifi-dual-display-cb12.dtb DTB for DART-MX8M with WIFI and dual LVDS+HDMI display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-sd-emmc-hdmi.dtb DTB for DART-MX8M with SD card and HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-sd-emmc-lvds.dtb DTB for DART-MX8M with SD card and LCDIF LVDS display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-sd-emmc-dual-display.dtb DTB for DART-MX8M with SD card and dual LVDS+HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-sd-emmc-hdmi-cb12.dtb DTB for DART-MX8M with SD card and HDMI display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-sd-emmc-lvds-cb12.dtb DTB for DART-MX8M with SD card and LCDIF LVDS display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-sd-emmc-dual-display-cb12.dtb DTB for DART-MX8M with SD card and dual LVDS+HDMI display support on carrier board revisions 1.1 and 1.2.


Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
Image.gz-fsl-imx8mq-var-dart-sd-dp.dtb DTB for DART-MX8M with SD card and DP display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-sd-hdmi.dtb DTB for DART-MX8M with SD card and HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-sd-lvds.dtb DTB for DART-MX8M with SD card and LVDS display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-sd-lvds-dp.dtb DTB for DART-MX8M with SD card and dual LVDS+DP display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-sd-lvds-hdmi.dtb DTB for DART-MX8M with SD card and dual LVDS+HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-sd-hdmi-cb12.dtb DTB for DART-MX8M with SD card and HDMI display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-sd-lvds-cb12.dtb DTB for DART-MX8M with SD card and LVDS display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-sd-lvds-hdmi-cb12.dtb DTB for DART-MX8M with SD card and dual LVDS+HDMI display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-wifi-dp.dtb DTB for DART-MX8M with WIFI and DP display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-wifi-hdmi.dtb DTB for DART-MX8M with WIFI and HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-wifi-lvds.dtb DTB for DART-MX8M with WIFI and LVDS display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-wifi-lvds-dp.dtb DTB for DART-MX8M with WIFI and dual LVDS+DP display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-wifi-lvds-hdmi.dtb DTB for DART-MX8M with WIFI and dual LVDS+HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-wifi-hdmi-cb12.dtb DTB for DART-MX8M with WIFI and HDMI display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-wifi-lvds-cb12.dtb DTB for DART-MX8M with WIFI and LVDS display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-wifi-lvds-hdmi-cb12.dtb DTB for DART-MX8M with WIFI and dual LVDS+HDMI display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-m4-sd-dp.dtb DTB for DART-MX8M with M4, SD card and DP display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-m4-sd-hdmi.dtb DTB for DART-MX8M with M4, SD card and HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-m4-sd-lvds.dtb DTB for DART-MX8M with M4, SD card and LVDS display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-m4-sd-lvds-dp.dtb DTB for DART-MX8M with M4, SD card and dual LVDS+DP display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-m4-sd-lvds-hdmi.dtb DTB for DART-MX8M with M4, SD card and dual LVDS+HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-m4-sd-hdmi-cb12.dtb DTB for DART-MX8M with M4, SD card and HDMI display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-m4-sd-lvds-cb12.dtb DTB for DART-MX8M with M4, SD card and LVDS display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-m4-sd-lvds-hdmi-cb12.dtb DTB for DART-MX8M with M4, SD card and dual LVDS+HDMI display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-m4-wifi-dp.dtb DTB for DART-MX8M with M4, WIFI and DP display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-m4-wifi-hdmi.dtb DTB for DART-MX8M with M4, WIFI and HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-m4-wifi-lvds.dtb DTB for DART-MX8M with M4, WIFI and LVDS display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-m4-wifi-lvds-dp.dtb DTB for DART-MX8M with M4, WIFI and dual LVDS+DP display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-m4-wifi-lvds-hdmi.dtb DTB for DART-MX8M with M4, WIFI and dual LVDS+HDMI display support on carrier board revisions 1.3 and higher.
Image.gz-fsl-imx8mq-var-dart-m4-wifi-hdmi-cb12.dtb DTB for DART-MX8M with M4, WIFI and HDMI display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-m4-wifi-lvds-cb12.dtb DTB for DART-MX8M with M4, WIFI and LVDS display support on carrier board revisions 1.1 and 1.2.
Image.gz-fsl-imx8mq-var-dart-m4-wifi-lvds-hdmi-cb12.dtb DTB for DART-MX8M with M4, WIFI and dual LVDS+HDMI display support on carrier board revisions 1.1 and 1.2.


Image Name
How to use
fsl-image-gui-.wic.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mq-var-dart-dt8mcustomboard-sd-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with SD card and HDMI display.
imx8mq-var-dart-dt8mcustomboard-sd-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with SD card and LVDS display.
imx8mq-var-dart-dt8mcustomboard-sd-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with SD card and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-wifi-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with WIFI and HDMI display.
imx8mq-var-dart-dt8mcustomboard-wifi-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with WIFI and LVDS display.
imx8mq-var-dart-dt8mcustomboard-wifi-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with WIFI and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-sd-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, SD card and HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, SD card and LVDS display.
imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, SD card and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-wifi-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, WIFI and HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, WIFI and LVDS display.
imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, WIFI and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-sd-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD card and DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-sd-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD card and HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-sd-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD card and LVDS display.
imx8mq-var-dart-dt8mcustomboard-legacy-sd-lvds-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD card and dual LVDS+DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-sd-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD card and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-wifi-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-wifi-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-wifi-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and LVDS display.
imx8mq-var-dart-dt8mcustomboard-legacy-wifi-lvds-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and dual LVDS+DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-wifi-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD card and DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD card and HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD card and LVDS display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-lvds-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD card and dual LVDS+DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD card and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and LVDS display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-lvds-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and dual LVDS+DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and dual LVDS+HDMI display.


Image Name
How to use
fsl-image-gui-.wic.zst This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.zst Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mq-var-dart-dt8mcustomboard-sd-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard with SD card and HDMI display.
imx8mq-var-dart-dt8mcustomboard-sd-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard with SD card and LVDS display.
imx8mq-var-dart-dt8mcustomboard-sd-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard with SD card and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-wifi-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard with WIFI and HDMI display.
imx8mq-var-dart-dt8mcustomboard-wifi-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard with WIFI and LVDS display.
imx8mq-var-dart-dt8mcustomboard-wifi-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard with WIFI and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-sd-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard with M4, SD card and HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard with M4, SD card and LVDS display.
imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard with M4, SD card and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-wifi-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard with M4, WIFI and HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard with M4, WIFI and LVDS display.
imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard with M4, WIFI and dual LVDS+HDMI display.


Basler Camera

local.conf

IMAGE_INSTALL_append = " \
	basler-camera-driver \
	pylon \
	python3-pypylon \
	gentl-producer \
	xauth \
"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-module-basler-camera-driver"


ACCEPT_BASLER_EULA = "1"
IMAGE_INSTALL_append = "packagegroup-dart-bcon-mipi"


E-con Camera

local.conf

IMAGE_INSTALL_append = " \
       econ-camera-driver \
"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-module-econ-camera-driver"


Device tree

Build only the device tree for DART-MX8M with WIFI and HDMI display support:
$ make -j4 imx8m-var-dart-emmc-wifi-hdmi.dtb

Build only the device tree for DART-MX8M with WIFI and HDMI 4K display support:
$ make -j4 imx8m-var-dart-emmc-wifi-hdmi-4k.dtb

Build only the device tree for DART-MX8M with WIFI and DCSS LVDS display support:
$ make -j4 imx8m-var-dart-emmc-wifi-dcss-lvds.dtb

Build only the device tree for DART-MX8M with WIFI and LCDIF LVDS display support:
$ make -j4 imx8m-var-dart-emmc-wifi-lcdif-lvds.dtb

Build only the device tree for DART-MX8M with WIFI and dual LVDS+HDMI display support:
$ make -j4 imx8m-var-dart-emmc-wifi-dual-display.dtb

Build only the device tree for DART-MX8M with SD, and HDMI display support:
$ make -j4 imx8m-var-dart-sd-emmc-hdmi.dtb

Build only the device tree for DART-MX8M with SD, and HDMI 4K display support:
$ make -j4 imx8m-var-dart-sd-emmc-hdmi-4k.dtb

Build only the device tree for DART-MX8M with SD, and DCSS LVDS display support:
$ make -j4 imx8m-var-dart-sd-emmc-dcss-lvds.dtb

Build only the device tree for DART-MX8M with SD, and LCDIF LVDS display support:
$ make -j4 imx8m-var-dart-sd-emmc-lcdif-lvds.dtb

Build only the device tree for DART-MX8M with SD, and dual LVDS+HDMI display support:
$ make -j4 imx8m-var-dart-sd-emmc-dual-display.dtb


Build only the device tree for DART-MX8M with WIFI and HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-emmc-wifi-hdmi.dtb

Build only the device tree for DART-MX8M with WIFI and LVDS display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-emmc-wifi-lvds.dtb

Build only the device tree for DART-MX8M with WIFI and dual LVDS+HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-emmc-wifi-dual-display.dtb

Build only the device tree for DART-MX8M with SD, and HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-sd-emmc-hdmi.dtb

Build only the device tree for DART-MX8M with SD, and LVDS display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-sd-emmc-lvds.dtb

Build only the device tree for DART-MX8M with SD, and dual LVDS+HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-sd-emmc-dual-display.dtb


Build only the device tree for DART-MX8M with SD and DP display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-sd-dp.dtb

Build only the device tree for DART-MX8M with SD and HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-sd-hdmi.dtb

Build only the device tree for DART-MX8M with SD and LVDS display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-sd-lvds.dtb

Build only the device tree for DART-MX8M with SD and dual LVDS+DP display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-sd-lvds-dp.dtb

Build only the device tree for DART-MX8M with SD and dual LVDS+HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M with WIFI and DP display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-wifi-dp.dtb

Build only the device tree for DART-MX8M with WIFI and HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-wifi-hdmi.dtb

Build only the device tree for DART-MX8M with WIFI and LVDS display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-wifi-lvds.dtb

Build only the device tree for DART-MX8M with WIFI and dual LVDS+DP display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-wifi-lvds-dp.dtb

Build only the device tree for DART-MX8M with WIFI and dual LVDS+HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-wifi-lvds-hdmi.dtb

Build only the device tree for DART-MX8M with M4, SD and DP display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-m4-sd-dp.dtb

Build only the device tree for DART-MX8M with M4, SD and HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-m4-sd-hdmi.dtb

Build only the device tree for DART-MX8M with M4, SD and LVDS display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-m4-sd-lvds.dtb

Build only the device tree for DART-MX8M with M4, SD and dual LVDS+DP display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-m4-sd-lvds-dp.dtb

Build only the device tree for DART-MX8M with M4, SD and dual LVDS+HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-m4-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M with M4, WIFI and DP display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-m4-wifi-dp.dtb

Build only the device tree for DART-MX8M with M4, WIFI and HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-m4-wifi-hdmi.dtb

Build only the device tree for DART-MX8M with M4, WIFI and LVDS display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-m4-wifi-lvds.dtb

Build only the device tree for DART-MX8M with M4, WIFI and dual LVDS+DP display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-m4-wifi-lvds-dp.dtb

Build only the device tree for DART-MX8M with M4, WIFI and dual LVDS+HDMI display support:
$ make -j4 freescale/fsl-imx8mq-var-dart-m4-wifi-lvds-hdmi.dtb


Build only the device tree for DART-MX8M with SD and DP display support:
$ make -j4 freescale/imx8mq-var-dart-sd-dp.dtb

Build only the device tree for DART-MX8M with SD and HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-sd-hdmi.dtb

Build only the device tree for DART-MX8M with SD and LVDS display support:
$ make -j4 freescale/imx8mq-var-dart-sd-lvds.dtb

Build only the device tree for DART-MX8M with SD and dual LVDS+DP display support:
$ make -j4 freescale/imx8mq-var-dart-sd-lvds-dp.dtb

Build only the device tree for DART-MX8M with SD and dual LVDS+HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M with WIFI and DP display support:
$ make -j4 freescale/imx8mq-var-dart-wifi-dp.dtb

Build only the device tree for DART-MX8M with WIFI and HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-wifi-hdmi.dtb

Build only the device tree for DART-MX8M with WIFI and LVDS display support:
$ make -j4 freescale/imx8mq-var-dart-wifi-lvds.dtb

Build only the device tree for DART-MX8M with WIFI and dual LVDS+DP display support:
$ make -j4 freescale/imx8mq-var-dart-wifi-lvds-dp.dtb

Build only the device tree for DART-MX8M with WIFI and dual LVDS+HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-wifi-lvds-hdmi.dtb

Build only the device tree for DART-MX8M with M4, SD and DP display support:
$ make -j4 freescale/imx8mq-var-dart-m4-sd-dp.dtb

Build only the device tree for DART-MX8M with M4, SD and HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-m4-sd-hdmi.dtb

Build only the device tree for DART-MX8M with M4, SD and LVDS display support:
$ make -j4 freescale/imx8mq-var-dart-m4-sd-lvds.dtb

Build only the device tree for DART-MX8M with M4, SD and dual LVDS+DP display support:
$ make -j4 freescale/imx8mq-var-dart-m4-sd-lvds-dp.dtb

Build only the device tree for DART-MX8M with M4, SD and dual LVDS+HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-m4-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M with M4, WIFI and DP display support:
$ make -j4 freescale/imx8mq-var-dart-m4-wifi-dp.dtb

Build only the device tree for DART-MX8M with M4, WIFI and HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-m4-wifi-hdmi.dtb

Build only the device tree for DART-MX8M with M4, WIFI and LVDS display support:
$ make -j4 freescale/imx8mq-var-dart-m4-wifi-lvds.dtb

Build only the device tree for DART-MX8M with M4, WIFI and dual LVDS+DP display support:
$ make -j4 freescale/imx8mq-var-dart-m4-wifi-lvds-dp.dtb

Build only the device tree for DART-MX8M with M4, WIFI and dual LVDS+HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-m4-wifi-lvds-hdmi.dtb


Build only the device tree for DART-MX8M with SD and DP display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-dp.dtb

Build only the device tree for DART-MX8M with SD and HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-hdmi.dtb

Build only the device tree for DART-MX8M with SD and LVDS display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-lvds.dtb

Build only the device tree for DART-MX8M with SD and dual LVDS+DP display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-lvds-dp.dtb

Build only the device tree for DART-MX8M with SD and dual LVDS+HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M with WIFI and DP display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-dp.dtb

Build only the device tree for DART-MX8M with WIFI and HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-hdmi.dtb

Build only the device tree for DART-MX8M with WIFI and LVDS display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-lvds.dtb

Build only the device tree for DART-MX8M with WIFI and dual LVDS+DP display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-lvds-dp.dtb

Build only the device tree for DART-MX8M with WIFI and dual LVDS+HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-lvds-hdmi.dtb

Build only the device tree for DART-MX8M with M4, SD and DP display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-sd-dp.dtb

Build only the device tree for DART-MX8M with M4, SD and HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-sd-hdmi.dtb

Build only the device tree for DART-MX8M with M4, SD and LVDS display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds.dtb

Build only the device tree for DART-MX8M with M4, SD and dual LVDS+DP display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds-dp.dtb

Build only the device tree for DART-MX8M with M4, SD and dual LVDS+HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M with M4, WIFI and DP display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-dp.dtb

Build only the device tree for DART-MX8M with M4, WIFI and HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-hdmi.dtb

Build only the device tree for DART-MX8M with M4, WIFI and LVDS display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds.dtb

Build only the device tree for DART-MX8M with M4, WIFI and dual LVDS+DP display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds-dp.dtb

Build only the device tree for DART-MX8M with M4, WIFI and dual LVDS+HDMI display support:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds-hdmi.dtb


Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with SD and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with SD and LVDS display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-lvds.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with SD and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with WIFI and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with WIFI and LVDS display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-lvds.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with WIFI and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-lvds-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with M4, SD and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-sd-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with M4, SD and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with M4, WIFI and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with M4, WIFI and LVDS display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V2.x and above with M4, WIFI and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD and DP display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-sd-dp.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-sd-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD and LVDS display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-sd-lvds.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD and dual LVDS+DP display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-sd-lvds-dp.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and DP display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-wifi-dp.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-wifi-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and LVDS display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-wifi-lvds.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and dual LVDS+DP display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-wifi-lvds-dp.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-wifi-lvds-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD and DP display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-dp.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD and dual LVDS+DP display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-lvds-dp.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and DP display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-dp.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and LVDS display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-lvds.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and dual LVDS+DP display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-lvds-dp.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-lvds-hdmi.dtb


Build only the device tree for DART-MX8M on DT8MCustomBoard with SD and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard with SD and LVDS display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-lvds.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard with SD and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard with WIFI and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard with WIFI and LVDS display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-lvds.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard with WIFI and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-wifi-lvds-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard with M4, SD and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-sd-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard with M4, SD and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard with M4, WIFI and HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-hdmi.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard with M4, WIFI and LVDS display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds.dtb

Build only the device tree for DART-MX8M on DT8MCustomBoard with M4, WIFI and dual LVDS+HDMI display:
$ make -j4 freescale/imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds-hdmi.dtb


SD card image file tree

/opt/images/
└── Yocto
    ├── imx-boot-sd.bin
    └── rootfs.tar.gz


SD card image file tree

/opt/images/
└── Yocto
    ├── imx-boot-imx8mq-var-dart-sd.bin-flash_dp_evk
    ├── imx-boot-imx8mq-var-dart-sd.bin-flash_evk
    ├── imx-boot-imx8mq-var-dart-sd.bin-flash_evk_no_hdmi
    ├── imx-boot-sd.bin -> imx-boot-imx8mq-var-dart-sd.bin-flash_evk
    └── rootfs.tar.gz



DTB File Name
Description
imx8m-var-dart-emmc-wifi-hdmi.dtb Device tree blob for eMMC, WIFI and HDMI display configuration. SD card disabled.
imx8m-var-dart-emmc-wifi-hdmi-4k.dtb Device tree blob for eMMC, WIFI and HDMI 4K display configuration. SD card disabled.
imx8m-var-dart-emmc-wifi-dcss-lvds.dtb Device tree blob for eMMC, WIFI and DCSS LVDS display configuration. SD card disabled.
imx8m-var-dart-emmc-wifi-lcdif-lvds.dtb Device tree blob for eMMC, WIFI and LCDIF LVDS display configuration. SD card disabled.
imx8m-var-dart-emmc-wifi-dual-display.dtb Device tree blob for eMMC, WIFI and dual LVDS+HDMI display configuration. SD card disabled.
imx8m-var-dart-sd-emmc-hdmi.dtb Device tree blob for SD, eMMC and HDMI display configuration. WIFI disabled.
imx8m-var-dart-sd-emmc-hdmi-4k.dtb Device tree blob for SD, eMMC and HDMI 4K display configuration. WIFI disabled.
imx8m-var-dart-sd-emmc-dcss-lvds.dtb Device tree blob for SD, eMMC and DCSS LVDS display configuration. WIFI disabled.
imx8m-var-dart-sd-emmc-lcdif-lvds.dtb Device tree blob for SD, eMMC and LCDIF LVDS display configuration. WIFI disabled.
imx8m-var-dart-sd-emmc-dual-display.dtb Device tree blob for SD, eMMC and dual LVDS+HDMI display configuration. WIFI disabled.


DTB File Name
Description
fsl-imx8mq-var-dart-emmc-wifi-hdmi.dtb Device tree blob for eMMC, WIFI and HDMI display configuration. SD card disabled.
fsl-imx8mq-var-dart-emmc-wifi-lvds.dtb Device tree blob for eMMC, WIFI and LVDS display configuration. SD card disabled.
fsl-imx8mq-var-dart-emmc-wifi-dual-display.dtb Device tree blob for eMMC, WIFI and dual LVDS+HDMI display configuration. SD card disabled.
fsl-imx8mq-var-dart-sd-emmc-hdmi.dtb Device tree blob for SD, eMMC and HDMI display configuration. WIFI disabled.
fsl-imx8mq-var-dart-sd-emmc-lvds.dtb Device tree blob for SD, eMMC and LVDS display configuration. WIFI disabled.
fsl-imx8mq-var-dart-sd-emmc-dual-display.dtb Device tree blob for SD, eMMC and dual LVDS+HDMI display configuration. WIFI disabled.


DTB File Name
Description
fsl-imx8mq-var-dart-sd-dp.dtb Device tree blob for eMMC, SD and DP display configuration. WIFI disabled.
fsl-imx8mq-var-dart-sd-hdmi.dtb Device tree blob for eMMC, SD and HDMI display configuration. WIFI disabled.
fsl-imx8mq-var-dart-sd-lvds.dtb Device tree blob for eMMC, SD and LVDS display configuration. WIFI disabled.
fsl-imx8mq-var-dart-sd-lvds-dp.dtb Device tree blob for eMMC, SD and dual LVDS+DP display configuration. WIFI disabled.
fsl-imx8mq-var-dart-sd-lvds-hdmi.dtb Device tree blob for eMMC, SD and dual LVDS+HDMI display configuration. WIFI disabled.
fsl-imx8mq-var-dart-wifi-dp.dtb Device tree blob for eMMC, WIFI and DP display configuration. SD card disabled.
fsl-imx8mq-var-dart-wifi-hdmi.dtb Device tree blob for eMMC, WIFI and HDMI display configuration. SD card disabled.
fsl-imx8mq-var-dart-wifi-lvds.dtb Device tree blob for eMMC, WIFI and LVDS display configuration. SD card disabled.
fsl-imx8mq-var-dart-wifi-lvds-dp.dtb Device tree blob for eMMC, WIFI and dual LVDS+DP display configuration. SD card disabled.
fsl-imx8mq-var-dart-wifi-lvds-hdmi.dtb Device tree blob for eMMC, WIFI and dual LVDS+HDMI display configuration. SD card disabled.
fsl-imx8mq-var-dart-m4-sd-dp.dtb Device tree blob for eMMC, SD and DP display configuration. WIFI disabled.
fsl-imx8mq-var-dart-m4-sd-hdmi.dtb Device tree blob for M4, eMMC, SD and HDMI display configuration. WIFI disabled.
fsl-imx8mq-var-dart-m4-sd-lvds.dtb Device tree blob for M4, eMMC, SD and LVDS display configuration. WIFI disabled.
fsl-imx8mq-var-dart-m4-sd-lvds-dp.dtb Device tree blob for M4, eMMC, SD and dual LVDS+DP display configuration. WIFI disabled.
fsl-imx8mq-var-dart-m4-sd-lvds-hdmi.dtb Device tree blob for M4, eMMC, SD and dual LVDS+HDMI display configuration. WIFI disabled.
fsl-imx8mq-var-dart-m4-wifi-dp.dtb Device tree blob for M4, eMMC, WIFI and DP display configuration. SD card disabled.
fsl-imx8mq-var-dart-m4-wifi-hdmi.dtb Device tree blob for M4, eMMC, WIFI and HDMI display configuration. SD card disabled.
fsl-imx8mq-var-dart-m4-wifi-lvds.dtb Device tree blob for M4, eMMC, WIFI and LVDS display configuration. SD card disabled.
fsl-imx8mq-var-dart-m4-wifi-lvds-dp.dtb Device tree blob for M4, eMMC, WIFI and dual LVDS+DP display configuration. SD card disabled.
fsl-imx8mq-var-dart-m4-wifi-lvds-hdmi.dtb Device tree blob for M4, eMMC, WIFI and dual LVDS+HDMI display configuration. SD card disabled.


DTB File Name
Description
imx8mq-var-dart-dt8mcustomboard-sd-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with SD card and HDMI display.
imx8mq-var-dart-dt8mcustomboard-sd-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with SD card and LVDS display.
imx8mq-var-dart-dt8mcustomboard-sd-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with SD card and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-wifi-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with WIFI and HDMI display.
imx8mq-var-dart-dt8mcustomboard-wifi-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with WIFI and LVDS display.
imx8mq-var-dart-dt8mcustomboard-wifi-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with WIFI and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-sd-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, SD card and HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, SD card and LVDS display.
imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, SD card and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-wifi-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, WIFI and HDMI display.
imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, WIFI and LVDS display.
imx8mq-var-dart-dt8mcustomboard-m4-wifi-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V2.x and above with M4, WIFI and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-sd-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD card and DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-sd-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD card and HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-sd-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD card and LVDS display.
imx8mq-var-dart-dt8mcustomboard-legacy-sd-lvds-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD card and dual LVDS+DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-sd-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with SD card and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-wifi-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-wifi-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-wifi-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and LVDS display.
imx8mq-var-dart-dt8mcustomboard-legacy-wifi-lvds-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and dual LVDS+DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-wifi-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with WIFI and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD card and DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD card and HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD card and LVDS display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-lvds-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD card and dual LVDS+DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-sd-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, SD card and dual LVDS+HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and HDMI display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-lvds.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and LVDS display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-lvds-dp.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and dual LVDS+DP display.
imx8mq-var-dart-dt8mcustomboard-legacy-m4-wifi-lvds-hdmi.dtb DTB for DART-MX8M on DT8MCustomBoard V1.3/V1.4 with M4, WIFI and dual LVDS+HDMI display.


Setting the Boot Mode

Make sure the BOOT SELECT DIP switch on the carrier board is set correctly before you power on the board.

SW7
 0 : Boot from SD card
 1 : Boot from eMMC


DART-MX8M-MINI

Build Results

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
fsl-imx8mm-var-dart.dtb Device tree blob for DART-MX8M-MINI
fsl-imx8mm-var-som.dtb Device tree blob for VAR-SOM-MX8M-MINI
fsl-imx8mm-var-som-rev10.dtb Device tree blob for VAR-SOM-MX8M-MINI Rev 1.0


Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
Expression error: Unexpected > operator. Device tree blob for DART-MX8M-MINI
Expression error: Unexpected > operator. Device tree blob for VAR-SOM-MX8M-MINI
Expression error: Unexpected > operator. Device tree blob for VAR-SOM-MX8M-MINI Rev 1.0


Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mm-var-dart-customboard.dtb Device tree blob for DART-MX8M-MINI on DT8MCustomBoard
imx8mm-var-dart-customboard-m4.dtb Device tree blob for DART-MX8M-MINI with Cortex-M4 on DT8MCustomBoard
imx8mm-var-som-symphony.dtb Device tree blob for VAR-SOM-MX8M-MINI on Symphony-Board V1.4A and above
imx8mm-var-som-symphony-m4.dtb Device tree blob for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board V1.4A and above
imx8mm-var-som-symphony-legacy.dtb Device tree blob for VAR-SOM-MX8M-MINI on Symphony-Board V1.4 and below
imx8mm-var-som-symphony-legacy-m4.dtb Device tree blob for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board V1.4 and below


Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mm-var-dart-dt8mcustomboard.dtb Device tree blob for DART-MX8M-MINI on DT8MCustomBoard V2.x and above
imx8mm-var-dart-dt8mcustomboard-m4.dtb Device tree blob for DART-MX8M-MINI with Cortex-M4 on DT8MCustomBoard V2.x and above
imx8mm-var-dart-dt8mcustomboard-legacy.dtb Device tree blob for DART-MX8M-MINI on DT8MCustomBoard V1.x
imx8mm-var-dart-dt8mcustomboard-legacy-m4.dtb Device tree blob for DART-MX8M-MINI with Cortex-M4 on DT8MCustomBoard V1.x
imx8mm-var-som-symphony.dtb Device tree blob for VAR-SOM-MX8M-MINI on Symphony-Board V1.4A and above
imx8mm-var-som-symphony-m4.dtb Device tree blob for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board V1.4A and above
imx8mm-var-som-symphony-legacy.dtb Device tree blob for VAR-SOM-MX8M-MINI on Symphony-Board V1.4 and below
imx8mm-var-som-symphony-legacy-m4.dtb Device tree blob for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board V1.4 and below


Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mm-var-dart-dt8mcustomboard.dtb Device tree blob for DART-MX8M-MINI on DT8MCustomBoard V2.x and above
imx8mm-var-dart-dt8mcustomboard-m4.dtb Device tree blob for DART-MX8M-MINI with Cortex-M4 on DT8MCustomBoard V2.x and above
imx8mm-var-dart-dt8mcustomboard-legacy.dtb Device tree blob for DART-MX8M-MINI on DT8MCustomBoard V1.x
imx8mm-var-dart-dt8mcustomboard-legacy-m4.dtb Device tree blob for DART-MX8M-MINI with Cortex-M4 on DT8MCustomBoard V1.x
imx8mm-var-som-symphony.dtb Device tree blob for VAR-SOM-MX8M-MINI on Symphony-Board
imx8mm-var-som-symphony-m4.dtb Device tree blob for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board



Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mm-var-dart-1.x-dt8mcustomboard.dtb Device tree blob for DART-MX8M-MINI V1.x and above on DT8MCustomBoard
imx8mm-var-dart-1.x-dt8mcustomboard-m4.dtb Device tree blob for DART-MX8M-MINI V1.x and above with Cortex-M4 on DT8MCustomBoard
imx8mm-var-dart-dt8mcustomboard.dtb Device tree blob for DART-MX8M-MINI V2.x and above on DT8MCustomBoard
imx8mm-var-dart-dt8mcustomboard-m4.dtb Device tree blob for DART-MX8M-MINI V2.x and above with Cortex-M4 on DT8MCustomBoard
imx8mm-var-dart-wbe-dt8mcustomboard.dtb Device tree blob for DART-MX8M-MINIV2.x and above with WBE on DT8MCustomBoard
imx8mm-var-dart-wbe-dt8mcustomboard-m4.dtb Device tree blob for DART-MX8M-MINI V2.x and above with Cortex-M4 and WBE on DT8MCustomBoard
imx8mm-var-som-symphony.dtb Device tree blob for VAR-SOM-MX8M-MINI on Symphony-Board
imx8mm-var-som-symphony-m4.dtb Device tree blob for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board


Device tree

Build only the device tree for DART-MX8M-MINI:
$ make -j4 freescale/fsl-imx8mm-var-dart.dtb

Build only the device tree for VAR-SOM-MX8M-MINI:
$ make -j4 freescale/fsl-imx8mm-var-var-som.dtb

Build only the device tree for VAR-SOM-MX8M-MINI Rev 1.0:
$ make -j4 freescale/fsl-imx8mm-var-var-som-rev10.dtb


Build only the device tree for DART-MX8M-MINI:
$ make -j4 freescale/imx8mm-var-dart.dtb

Build only the device tree for VAR-SOM-MX8M-MINI:
$ make -j4 freescale/imx8mm-var-som.dtb

Build only the device tree for VAR-SOM-MX8M-MINI Rev 1.0:
$ make -j4 freescale/imx8mm-var-som-rev10.dtb


Build only the device tree for DART-MX8M-MINI:
$ make -j4 freescale/imx8mm-var-dart-customboard.dtb

Build only the device tree for VAR-SOM-MX8M-MINI:
$ make -j4 freescale/imx8mm-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-MINI Rev 1.0:
$ make -j4 freescale/imx8mm-var-som-rev10-symphony.dtb


Build only the device tree for DART-MX8M-MINI on DT8MCustomBoard:
$ make -j4 freescale/imx8mm-var-dart-customboard.dtb

Build only the device tree for DART-MX8M-MINI with Cortex-M4 on DT8MCustomBoard:
$ make -j4 freescale/imx8mm-var-dart-customboard-m4.dtb

Build only the device tree for VAR-SOM-MX8M-MINI on Symphony-Board V1.4A and above:
$ make -j4 freescale/imx8mm-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board V1.4A and above:
$ make -j4 freescale/imx8mm-var-som-symphony-m4.dtb

Build only the device tree for VAR-SOM-MX8M-MINI on Symphony-Board V1.4 and below:
$ make -j4 freescale/imx8mm-var-som-symphony-legacy.dtb

Build only the device tree for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board V1.4 and below:
$ make -j4 freescale/imx8mm-var-som-symphony-legacy-m4.dtb


Build only the device tree for DART-MX8M-MINI on DT8MCustomBoard V2.x and above:
$ make -j4 freescale/imx8mm-var-dart-dt8mcustomboard.dtb

Build only the device tree for DART-MX8M-MINI on with Cortex-M4 DT8MCustomBoard V2.x and above:
$ make -j4 freescale/imx8mm-var-dart-dt8mcustomboard-m4.dtb

Build only the device tree for DART-MX8M-MINI on DT8MCustomBoard V1.x:
$ make -j4 freescale/imx8mm-var-dart-dt8mcustomboard-legacy.dtb

Build only the device tree for DART-MX8M-MINI on with Cortex-M4 DT8MCustomBoard V1.x:
$ make -j4 freescale/imx8mm-var-dart-dt8mcustomboard-legacy-m4.dtb

Build only the device tree for VAR-SOM-MX8M-MINI on Symphony-Board V1.4A and above:
$ make -j4 freescale/imx8mm-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board V1.4A and above:
$ make -j4 freescale/imx8mm-var-som-symphony-m4.dtb

Build only the device tree for VAR-SOM-MX8M-MINI on Symphony-Board V1.4 and below:
$ make -j4 freescale/imx8mm-var-som-symphony-legacy.dtb

Build only the device tree for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board V1.4 and below:
$ make -j4 freescale/imx8mm-var-som-symphony-legacy-m4.dtb


Build only the device tree for DART-MX8M-MINI on DT8MCustomBoard V2.x and above:
$ make -j4 freescale/imx8mm-var-dart-dt8mcustomboard.dtb

Build only the device tree for DART-MX8M-MINI on with Cortex-M4 DT8MCustomBoard V2.x and above:
$ make -j4 freescale/imx8mm-var-dart-dt8mcustomboard-m4.dtb

Build only the device tree for DART-MX8M-MINI on DT8MCustomBoard V1.x:
$ make -j4 freescale/imx8mm-var-dart-dt8mcustomboard-legacy.dtb

Build only the device tree for DART-MX8M-MINI on with Cortex-M4 DT8MCustomBoard V1.x:
$ make -j4 freescale/imx8mm-var-dart-dt8mcustomboard-legacy-m4.dtb

Build only the device tree for VAR-SOM-MX8M-MINI on Symphony-Board:
$ make -j4 freescale/imx8mm-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board:
$ make -j4 freescale/imx8mm-var-som-symphony-m4.dtb


Build only the device tree for DART-MX8M-MINI V1.x and above on DT8MCustomBoard:
$ make -j4 freescale/imx8mm-var-dart-1.x-dt8mcustomboard.dtb

Build only the device tree for DART-MX8M-MINI V1.x and above with Cortex-M4 on DT8MCustomBoard:
$ make -j4 freescale/imx8mm-var-dart-1.x-dt8mcustomboard-m4.dtb

Build only the device tree for DART-MX8M-MINI V2.x and above on DT8MCustomBoard:
$ make -j4 freescale/imx8mm-var-dart-dt8mcustomboard.dtb

Build only the device tree for DART-MX8M-MINI V2.x and above with Cortex-M4 on DT8MCustomBoard:
$ make -j4 freescale/imx8mm-var-dart-dt8mcustomboard-m4.dtb

Build only the device tree for DART-MX8M-MINI V2.x with WBE support on DT8MCustomBoard:
$ make -j4 freescale/imx8mm-var-dart-wbe-dt8mcustomboard.dtb

Build only the device tree for DART-MX8M-MINI V2.x with Cortex-M4 and with WBE support on DT8MCustomBoard:
$ make -j4 freescale/imx8mm-var-dart-wbe-dt8mcustomboard-m4.dtb

Build only the device tree for VAR-SOM-MX8M-MINI on Symphony-Board:
$ make -j4 freescale/imx8mm-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-MINI with Cortex-M4 on Symphony-Board:
$ make -j4 freescale/imx8mm-var-som-symphony-m4.dtb


SD card image file tree

/opt/images/
└── Yocto
    ├── imx-boot-sd.bin
    └── rootfs.tar.gz


Setting the Boot Mode

Make sure the BOOT SELECT DIP switch on the carrier board is set correctly before you power on the board.

SW7
 0 : Boot from SD card
 1 : Boot from eMMC


VAR-SOM-MX93

Build Results

Template:MX93 BUILD RESULTS V1



Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx93-var-som-symphony.dtb Device tree for VAR-SOM-MX93 on Symphony-Board
imx93-var-som-symphony-ld.dtb Device tree for VAR-SOM-MX93 with Low Drive mode on Symphony-Board
imx93-var-som-wbe-symphony.dtb Device tree for VAR-SOM-MX93 with WBE support on Symphony-Board
imx93-var-som-wbe-symphony-ld.dtb Device tree for VAR-SOM-MX93 with Low Drive mode, and WBE support on Symphony-Board
imx93-var-som-symphony-m33.dtb Device tree for VAR-SOM-MX93 with Cortex-M33 on Symphony-Board



Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx93-var-som-symphony.dtb Device tree for VAR-SOM-MX93 on Symphony-Board
imx93-var-som-symphony-ld.dtb Device tree for VAR-SOM-MX93 with Low Drive mode on Symphony-Board
imx93-var-som-wbe-symphony.dtb Device tree for VAR-SOM-MX93 with WBE support on Symphony-Board
imx93-var-som-wbe-symphony-ld.dtb Device tree for VAR-SOM-MX93 with Low Drive mode, and WBE support on Symphony-Board
imx93-var-som-symphony-m33.dtb Device tree for VAR-SOM-MX93 with Cortex-M33 on Symphony-Board
imx93-var-dart-dt8mcustomboard.dtb Device tree for DART-MX93 on DT8MCustomBoard
imx93-var-dart-dt8mcustomboard.dtb Device tree for DART-MX93 with Low Drive mode, and WBE support on DT8MCustomBoard


DART-MX95

Build Results

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx95-var-dart-dt8mcustomboard.dtb Device tree for DART-MX95 on DT8MCustomBoard


MX95 Device tree v1

Build only the device tree for DART-MX95 on Symphony-Board:
$ make -j4 freescale/imx95-var-dart-dt8mcustomboard.dtb


VAR-SOM-MX8M-NANO

Build Results

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
Image.gz-fsl-imx8mn-var-som.dtb Device tree blob for SD, eMMC, WIFI and LVDS display configuration.


Build Results v2

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
Image.gz-fsl-imx8mn-var-som.dtb Device tree blob for SD, eMMC, WIFI and LVDS display configuration.
Image.gz-fsl-imx8mn-var-som-rev10.dtb Device tree blob for SD, eMMC, WIFI and LVDS display configuration rev 1.0.
Image.gz-fsl-imx8mn-var-som-m7.dtb Device tree blob for M7, SD, eMMC, WIFI and LVDS display configuration.
Image.gz-fsl-imx8mn-var-som-rev10-m7.dtb Device tree blob for M7, SD, eMMC, WIFI and LVDS display configuration rev 1.0.


Build Results v3

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mn-var-som.dtb Device tree blob for SD, eMMC, WIFI and LVDS display configuration.
imx8mn-var-som.dtb Device tree blob for SD, eMMC, WIFI and LVDS display configuration rev 1.0.


Build Results v4

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mn-var-som-symphony.dtb Device tree for VAR-SOM-MX8M-MINI on Symphony-Board V1.4A and above
imx8mn-var-som-symphony-m7.dtb Device tree for VAR-SOM-MX8M-MINI with Cortex-M7 on Symphony-Board V1.4A and above
imx8mn-var-som-symphony-legacy.dtb Device tree for VAR-SOM-MX8M-MINI on Symphony-Board V1.4 and below
imx8mn-var-som-symphony-legacy-m7.dtb Device tree for VAR-SOM-MX8M-MINI with Cortex-M7 on Symphony-Board V1.4 and below


Build Results v5

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mn-var-som-symphony.dtb Device tree for VAR-SOM-MX8M-NANO on Symphony-Board
imx8mn-var-som-symphony-m7.dtb Device tree for VAR-SOM-MX8M-NANO with Cortex-M7 on Symphony-Board


Device tree

Build only the device tree for VAR-SOM-MX8M-NANO:
$ make -j4 freescale/fsl-imx8mn-var-som.dtb


Device tree v2

Build only the device tree for VAR-SOM-MX8M-NANO:
$ make -j4 freescale/fsl-imx8mn-var-som.dtb

Build only the device tree for VAR-SOM-MX8M-NANO rev 1.0:
$ make -j4 freescale/fsl-imx8mn-var-som-rev10.dtb

Build only the device tree for VAR-SOM-MX8M-NANO with Cortex-M7:
$ make -j4 freescale/fsl-imx8mn-var-som-m7.dtb

Build only the device tree for VAR-SOM-MX8M-NANO rev 1.0 with Cortex-M7:
$ make -j4 freescale/fsl-imx8mn-var-som-rev10-m7.dtb


Device tree v3

Build only the device tree for VAR-SOM-MX8M-NANO:
$ make -j4 freescale/imx8mn-var-som.dtb

Build only the device tree for VAR-SOM-MX8M-NANO rev 1.0:
$ make -j4 freescale/imx8mn-var-som-rev10.dtb


Device tree v4

Build only the device tree for VAR-SOM-MX8M-NANO:
$ make -j4 freescale/imx8mn-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-NANO rev 1.0:
$ make -j4 freescale/imx8mn-var-som-rev10-symphony.dtb


Device tree v5

Build only the device tree for VAR-SOM-MX8M-NANO on Symphony-Board V1.4A and above:
$ make -j4 freescale/imx8mn-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-NANO with Cortex-M7 on Symphony-Board V1.4A and above:
$ make -j4 freescale/imx8mn-var-som-symphony-m7.dtb

Build only the device tree for VAR-SOM-MX8M-NANO on Symphony-Board V1.4 and below:
$ make -j4 freescale/imx8mn-var-som-symphony-legacy.dtb

Build only the device tree for VAR-SOM-MX8M-NANO with Cortex-M7 on Symphony-Board V1.4 and below:
$ make -j4 freescale/imx8mn-var-som-symphony-legacy-m7.dtb


Device tree v6

Build only the device tree for VAR-SOM-MX8M-NANO on Symphony-Board:
$ make -j4 freescale/imx8mn-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-NANO with Cortex-M7 on Symphony-Board:
$ make -j4 freescale/imx8mn-var-som-symphony-m7.dtb


SD card image file tree

/opt/images/
└── Yocto
    ├── imx-boot-sd.bin
    └── rootfs.tar.gz


SD card image file tree AM62

/opt/images/
└── Yocto
    └── rootfs.tar.zst
    └── boot
        └── tiboot3.bin
        └── uEnv.txt
        └── tispl.bin
        └── u-boot.img


SD card image file tree AM33

/opt/images/
└── Yocto
    └── rootfs.ubi
    └── boot
        └── MLO-nand
        └── u-boot.img-nand
        └── var-som-am33.dtb
        └── zImage


Setting the Boot Mode

Make sure the BOOT SELECT DIP switch on the carrier board is set correctly before you power on the board.

SW3
 0 : Boot from SD card
 1 : Boot from eMMC


MX93 Device tree v1

Build only the device tree for VAR-SOM-MX93 on Symphony-Board:
$ make -j4 freescale/imx93-var-som-symphony.dtb


Build only the device tree for VAR-SOM-MX93 on Symphony-Board:
$ make -j4 freescale/imx93-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX93 with Low Drive mode on Symphony-Board:
$ make -j4 freescale/imx93-var-som-symphony-ld.dtb

Build only the device tree for VAR-SOM-MX93 with WBE support on Symphony-Board:
$ make -j4 freescale/imx93-var-som-wbe-symphony.dtb

Build only the device tree for VAR-SOM-MX93 with Low Drive mode, and WBE support on Symphony-Board:
$ make -j4 freescale/imx93-var-som-wbe-symphony-ld.dtb

Build only the device tree for VAR-SOM-MX93 with Cortex-M33 on Symphony-Board:
$ make -j4 freescale/imx93-var-som-symphony-m33.dtb


Build only the device tree for VAR-SOM-MX93 on Symphony-Board:
$ make -j4 freescale/imx93-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX93 with Low Drive mode on Symphony-Board:
$ make -j4 freescale/imx93-var-som-symphony-ld.dtb

Build only the device tree for VAR-SOM-MX93 with WBE support on Symphony-Board:
$ make -j4 freescale/imx93-var-som-wbe-symphony.dtb

Build only the device tree for VAR-SOM-MX93 with Low Drive mode, and WBE support on Symphony-Board:
$ make -j4 freescale/imx93-var-som-wbe-symphony-ld.dtb

Build only the device tree for VAR-SOM-MX93 with Cortex-M33 on Symphony-Board:
$ make -j4 freescale/imx93-var-som-symphony-m33.dtb

Build only the device tree for DART-MX93 on DT8MCustomBoard:
$ make -j4 freescale/imx93-var-dart-dt8mcustomboard.dtb

Build only the device tree for DART-MX93 with Low Drive mode on DT8MCustomBoard:
$ make -j4 freescale/imx93-var-dart-dt8mcustomboard-ld.dtb


DART-MX8M-PLUS

Basler Camera

local.conf for Zeus 2.3.0

IMAGE_INSTALL_append = " \
	basler-camera-driver \
	pylon \
	python3-pypylon \
	gentl-producer \
	kernel-module-isp-vvcam \
	imx8mp-modprobe-config \
	basler-camera \
	isp-imx \
	xauth \
"
PREFERRED_VERSION_isp-imx                 = "4.2.2.8+basler"
PREFERRED_VERSION_basler-camera           = "4.2.2.8+basler"
PREFERRED_VERSION_kernel-module-isp-vvcam = "4.2.2.8+basler"


local.conf for Zeus 2.3.2

IMAGE_INSTALL_append = " \
	kernel-module-basler-camera \
	pylon \
	python3-pypylon \
	gentl-producer \
	kernel-module-isp-vvcam \
	imx8mp-modprobe-config \
	basler-camera \
	isp-imx \
	xauth \
"
PREFERRED_VERSION_isp-imx                 = "4.2.2.13+basler"
PREFERRED_VERSION_basler-camera           = "4.2.2.13+basler"
PREFERRED_VERSION_kernel-module-isp-vvcam = "4.2.2.13+basler"


local.conf for Hardknott

IMAGE_INSTALL_append = " \
       pylon \
       python3-pypylon \
       gentl-producer \
       xauth \
       kernel-module-basler-camera \
"
IMAGE_INSTALL_append_mx8mp = " \
       imx8mp-modprobe-config \
       kernel-module-isp-vvcam \
       isp-imx \
       basler-camera \
"
PREFERRED_VERSION_isp-imx                 = "4.2.2.14+basler"
PREFERRED_VERSION_basler-camera           = "4.2.2.14+basler"
PREFERRED_VERSION_kernel-module-isp-vvcam = "4.2.2.14+basler"


local.conf for Hardknott with NXP support

IMAGE_INSTALL_append_mx8mp = " \
       kernel-module-isp-vvcam \
       isp-imx \
       basler-camera \
"


Gestreamer for Zeus 2.3.0

The following commands apply to VCAM-AR0821B (daA3840-mc) only.
Run the following command at the shell prompt:

$ gst-launch-1.0 -v v4l2src device=/dev/video0 ! waylandsink sync=false


Gestreamer for Zeus 2.3.2

The following commands apply to VCAM-AR0821B (daA3840-mc) only.
Run the following commands at the shell prompt:

  • 1920x1080@30fps:
# gst-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw,format=YUY2,width=1920,height=1080" ! waylandsink sync=false
  • 3840x2160@30fps:
# gst-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw,format=YUY2,width=3840,height=2160" ! waylandsink sync=false


Gestreamer for Kirkstone

Using the Basler gst-plugin-pylon plugin

Gstreamer is supported with Basler cameras by the Basler gst-plugin-pylon plugin.
This plugin is already installed in any Basler-compatible Yocto image, either prebuilt or built as described above.
To display the video stream run the following command at the shell prompt:

# gst-launch-1.0 pylonsrc ! videoconvert ! autovideosink

For further information, see: https://github.com/basler/gst-plugin-pylon

Using the v4l2-compatible video source

For VCAM-AR0821B (daA3840-mc) and VCAM-AR0521B (daA2500-60mc), a v4l2-compatible video source is also available.
To display the video stream in this mode, run the following commands at the shell prompt:

  • 1920x1080@30fps:
# gst-launch-1.0 -v v4l2src device=/dev/video2 ! "video/x-raw,format=YUY2,width=1920,height=1080" ! waylandsink sync=false
  • 3840x2160@30fps:
# gst-launch-1.0 -v v4l2src device=/dev/video2 ! "video/x-raw,format=YUY2,width=3840,height=2160" ! waylandsink sync=false


Gstreamer is supported with Basler cameras by the Basler gst-plugin-pylon plugin.
This plugin is already installed in any Basler-compatible Yocto image, either prebuilt or built as described above.
To display the video stream run the following command at the shell prompt:

# gst-launch-1.0 pylonsrc ! videoconvert ! autovideosink

For further information, see: https://github.com/basler/gst-plugin-pylon


Switch cameras for Hardknott

# cd /boot
# ln -fs imx8mp-var-dart-dt8mcustomboard-basler-isp0.dtb imx8mp-var-dart-dt8mcustomboard.dtb
# ln -fs imx8mp-var-dart-dt8mcustomboard-legacy-basler-isp0.dtb imx8mp-var-dart-dt8mcustomboard-legacy.dtb
# ln -fs imx8mp-var-som-symphony-basler-isp0.dtb imx8mp-var-som-symphony.dtb

To switch back run the following commands at the shell prompt:

# cd /boot
# ln -fs imx8mp-var-dart-dt8mcustomboard-basler-isi0.dtb imx8mp-var-dart-dt8mcustomboard.dtb
# ln -fs imx8mp-var-dart-dt8mcustomboard-legacy-basler-isi0.dtb imx8mp-var-dart-dt8mcustomboard-legacy.dtb
# ln -fs imx8mp-var-som-symphony-basler-isi0.dtb imx8mp-var-som-symphony.dtb


Switch cameras for Hardknott with NXP support

# cd /boot
# mv imx8mp-var-dart-dt8mcustomboard.dtb imx8mp-var-dart-dt8mcustomboard-ov5640.dtb
# mv imx8mp-var-dart-dt8mcustomboard-legacy.dtb imx8mp-var-dart-dt8mcustomboard-legacy-ov5640.dtb
# mv imx8mp-var-som-symphony.dtb imx8mp-var-som-symphony-ov5640.dtb
# ln -fs imx8mp-var-dart-dt8mcustomboard-basler-isp0.dtb imx8mp-var-dart-dt8mcustomboard.dtb
# ln -fs imx8mp-var-dart-dt8mcustomboard-legacy-basler-isp0.dtb imx8mp-var-dart-dt8mcustomboard-legacy.dtb
# ln -fs imx8mp-var-som-symphony-basler-isp0.dtb imx8mp-var-som-symphony.dtb


Gestreamer for Hardknott with NXP support

$ gst-launch-1.0 -v v4l2src device=/dev/video0 ! waylandsink


Gestreamer for Kirkstone with NXP support

$ gst-launch-1.0 -v v4l2src device=/dev/video2 ! waylandsink


Gestreamer for Kirkstone with NXP support and dual-camera enabled

# gst-launch-1.0 -v v4l2src device=/dev/video2 ! waylandsink

On boards with 2 cameras you can use the 2nd camera by replacing /dev/video2 with /dev/video3 in the above command. Dual camera currently can only work on VAR-DT8MCustomBoard due to hardware limitations of Symphony board.
The following command will simultaneously record two video streams from both cameras:

# gst-launch-1.0 v4l2src device=/dev/video2 num-buffers=100 ! video/x-raw,width=1920,height=1080 ! vpuenc_h264 ! avimux ! filesink location=./test0_h264.avi \
                 v4l2src device=/dev/video3 num-buffers=100 ! video/x-raw,width=1920,height=1080 ! vpuenc_h264 ! avimux ! filesink location=./test1_h264.avi


Build Results

Image Name
How to use
fsl-image-gui-.wic.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mp-var-dart.dtb Device tree blob for DART-MX8M-PLUS
imx8mp-var-som.dtb Device tree blob for VAR-SOM-MX8M-PLUS
imx8mp-var-som-ov5640.dtb Device tree blob for VAR-SOM-MX8M-PLUS with a 2nd OV5640 camera


Image Name
How to use
fsl-image-gui-.wic.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8mp-var-dart-dt8mcustomboard.dtb Device tree blob for DART-MX8M-PLUS on DT8MCustomBoard V2.x and above
imx8mp-var-dart-dt8mcustomboard-legacy.dtb Device tree blob for DART-MX8M-PLUS on DT8MCustomBoard V1.x
imx8mp-var-som-symphony.dtb Device tree blob for VAR-SOM-MX8M-PLUS on Symphony-Board
imx8mp-var-som-symphony-2nd-ov5640.dtb Device tree blob for VAR-SOM-MX8M-PLUS on Symphony-Board with a 2nd OV5640 camera
imx8mp-var-dart-dt8mcustomboard-m7.dtb Device tree blob for DART-MX8M-PLUS with Cortex-M7 on DT8MCustomBoard V2.x and above
imx8mp-var-dart-dt8mcustomboard-legacy-m7.dtb Device tree blob for DART-MX8M-PLUS with Cortex-M7 on DT8MCustomBoard V1.x
imx8mp-var-som-symphony-m7.dtb Device tree blob for VAR-SOM-MX8M-PLUS with Cortex-M7 on Symphony-Board
imx8mp-var-som-symphony-2nd-ov5640-m7.dtb Device tree blob for VAR-SOM-MX8M-PLUS with Cortex-M7 on Symphony-Board with a 2nd OV5640 camera


Device tree

Build only the device tree for DART-MX8M-PLUS:
$ make -j4 freescale/imx8mp-var-dart.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS:
$ make -j4 freescale/imx8mp-var-som.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with second OV5640 camera:
$ make -j4 freescale/imx8mp-var-som-ov5640.dtb


Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V2.x and above:
$ make -j4 freescale/imx8mp-var-dart-dt8mcustomboard.dtb

Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V1.x:
$ make -j4 freescale/imx8mp-var-dart-dt8mcustomboard-legacy.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board:
$ make -j4 freescale/imx8mp-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board with a 2nd OV5640 camera:
$ make -j4 freescale/imx8mp-var-som-symphony-2nd-ov5640.dtb



Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V1.x:
$ make -j4 freescale/imx8mp-var-dart-1.x-dt8mcustomboard.dtb

Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V1.x and above with Cortex-M7:
$ make -j4 freescale/imx8mp-var-dart-1.x-dt8mcustomboard-m7.dtb

Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V1.x and above with Basler camera on ISP0:
$ make -j4 freescale/imx8mp-var-dart-1.x-dt8mcustomboard-basler-isp0.dtb

Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V2.x and above:
$ make -j4 freescale/imx8mp-var-dart-dt8mcustomboard.dtb

Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V2.x and above with Cortex-M7:
$ make -j4 freescale/imx8mp-var-dart-dt8mcustomboard-m7.dtb

Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V2.x and above with Basler camera on ISP0:
$ make -j4 freescale/imx8mp-var-som-symphony-basler-isp0.dtb

Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V2.x with WBE support:
$ make -j4 freescale/imx8mp-var-dart-wbe-dt8mcustomboard.dtb

Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V2.x with WBE support and Cortex-M7:
$ make -j4 freescale/imx8mp-var-dart-wbe-dt8mcustomboard-m7.dtb

Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V2.x with WBE support and a Basler camera on ISP0:
$ make -j4 freescale/imx8mp-var-dart-wbe-dt8mcustomboard-basler-isp0.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board V1.x:
$ make -j4 freescale/imx8mp-var-som-1.x-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board V1.x with Cortex-M7:
$ make -j4 freescale/imx8mp-var-som-1.x-symphony-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board V1.x with a 2nd OV5640 camera:
$ make -j4 freescale/imx8mp-var-som-1.x-symphony-2nd-ov5640.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board V1.x with Cortex-M7 and a 2nd OV5640 camera:
$ make -j4 freescale/imx8mp-var-som-1.x-symphony-2nd-ov5640-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board V1.x with Basler camera on ISI0:
$ make -j4 freescale/imx8mp-var-som-1.x-symphony-basler-isi0.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board V1.x with Cortex-M7 and a Basler camera on ISI0:
$ make -j4 freescale/imx8mp-var-som-1.x-symphony-basler-isi0-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board V1.x with Basler camera on ISP0:
$ make -j4 freescale/imx8mp-var-som-1.x-symphony-basler-isp0.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board V1.x with Cortex-M7 and a Basler camera on ISP0:
$ make -j4 freescale/imx8mp-var-som-1.x-symphony-basler-isp0-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board:
$ make -j4 freescale/imx8mp-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board with Cortex-M7:
$ make -j4 freescale/imx8mp-var-som-symphony-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board with a 2nd OV5640 camera:
$ make -j4 freescale/imx8mp-var-som-symphony-2nd-ov5640.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board with Cortex-M7 and a 2nd OV5640 camera:
$ make -j4 freescale/imx8mp-var-som-symphony-2nd-ov5640-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board with Basler camera on ISI0:
$ make -j4 freescale/imx8mp-var-som-symphony-basler-isi0.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board with Cortex-M7 and a Basler camera on ISI0:
$ make -j4 freescale/imx8mp-var-som-symphony-basler-isi0-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board with Basler camera on ISP0:
$ make -j4 freescale/imx8mp-var-som-symphony-basler-isp0.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board with Cortex-M7 and a Basler camera on ISP0:
$ make -j4 freescale/imx8mp-var-som-symphony-basler-isp0-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with WBE support on Symphony-Board:
$ make -j4 freescale/imx8mp-var-som-wbe-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with WBE support and Cortex-M7 on Symphony-Board:
$ make -j4 freescale/imx8mp-var-som-wbe-symphony-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with WBE support on Symphony-Board with a 2nd OV5640 camera:
$ make -j4 freescale/imx8mp-var-som-wbe-symphony-2nd-ov5640.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with WBE support on Symphony-Board with Cortex-M7 and a 2nd OV5640 camera:
$ make -j4 freescale/imx8mp-var-som-wbe-symphony-2nd-ov5640-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with WBE support on Symphony-Board with Basler camera on ISI0:
$ make -j4 freescale/imx8mp-var-som-wbe-symphony-basler-isi0.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with WBE support on Symphony-Board with Cortex-M7 and a Basler camera on ISI0:
$ make -j4 freescale/imx8mp-var-som-wbe-symphony-basler-isi0-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with WBE support on Symphony-Board with Basler camera on ISP0:
$ make -j4 freescale/imx8mp-var-som-wbe-symphony-basler-isp0.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with WBE support on Symphony-Board with Cortex-M7 and a Basler camera on ISP0:
$ make -j4 freescale/imx8mp-var-som-wbe-symphony-basler-isp0-m7.dtb



Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V1.x:
$ make -j4 freescale/imx8mp-var-dart-dt8mcustomboard-legacy.dtb

Build only the device tree for DART-MX8M-PLUS with Cortex-M7 on DT8MCustomBoard V1.x:
$ make -j4 freescale/imx8mp-var-dart-dt8mcustomboard-legacy-m7.dtb

Build only the device tree for DART-MX8M-PLUS on DT8MCustomBoard V2.x and above:
$ make -j4 freescale/imx8mp-var-dart-dt8mcustomboard.dtb

Build only the device tree for DART-MX8M-PLUS with Cortex-M7 on DT8MCustomBoard V2.x and above:
$ make -j4 freescale/imx8mp-var-dart-dt8mcustomboard-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board:
$ make -j4 freescale/imx8mp-var-som-symphony.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS on Symphony-Board with a 2nd OV5640 camera:
$ make -j4 freescale/imx8mp-var-som-symphony-2nd-ov5640.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with Cortex-M7 on Symphony-Board:
$ make -j4 freescale/imx8mp-var-som-symphony-m7.dtb

Build only the device tree for VAR-SOM-MX8M-PLUS with Cortex-M7 on Symphony-Board with a 2nd OV5640 camera:
$ make -j4 freescale/imx8mp-var-som-symphony-2nd-ov5640-m7.dtb


SD card image file tree

/opt/images/
└── Yocto
    ├── imx-boot-sd.bin
    └── rootfs.tar.gz


Setting the Boot Mode

Make sure the BOOT SELECT DIP switch on the carrier board is set correctly before you power on the board.

SW7
 0 : Boot from SD card
 1 : Boot from eMMC


VAR-SOM-MX8X

Build Results

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
DTB File Name
Description
fsl-imx8qxp-var-som-wifi.dtb Device tree blob for WIFI configuration. SD card disabled.
fsl-imx8qxp-var-som-sd.dtb Device tree blob for SD configuration. WIFI disabled.


Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
DTB File Name
Description
imx8qxp-var-som-symphony-wifi.dtb Device tree blob for WIFI configuration. SD card disabled.
imx8qxp-var-som-symphony-wifi-m4.dtb Device tree blob for WIFI configuration, with Cortex-M4 support. SD card disabled.
imx8qxp-var-som-symphony-sd.dtb Device tree blob for SD configuration. WIFI disabled.
imx8qxp-var-som-symphony-sd-m4.dtb Device tree blob for SD configuration, with Cortex-M4 support. WIFI disabled.


Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
DTB File Name
Description
fsl-imx8qxp-var-som-wifi.dtb Device tree blob for WIFI configuration. SD card disabled.
fsl-imx8qxp-var-som-sd.dtb Device tree blob for SD configuration. WIFI disabled.


Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
DTB File Name
Description
imx8qxp-var-som-symphony-wifi.dtb Device tree blob for WIFI configuration. SD card disabled.
imx8qxp-var-som-symphony-wifi-m4.dtb Device tree blob for WIFI configuration, with Cortex-M4 support. SD card disabled.
imx8qxp-var-som-symphony-sd.dtb Device tree blob for SD configuration. WIFI disabled.
imx8qxp-var-som-symphony-sd-m4.dtb Device tree blob for SD configuration, with Cortex-M4 support. WIFI disabled.


Device tree

Build only the device tree for VAR-SOM-MX8X WIFI configuration:
$ make -j4 freescale/fsl-imx8qxp-var-som-wifi.dtb

Build only the device tree for VAR-SOM-MX8X SD configuration:
$ make -j4 freescale/fsl-imx8qxp-var-som-sd.dtb


Build only the device tree for VAR-SOM-MX8X WIFI configuration:
$ make -j4 freescale/imx8qxp-var-som-symphony-wifi.dtb

Build only the device tree for VAR-SOM-MX8X SD configuration:
$ make -j4 freescale/imx8qxp-var-som-symphony-sd.dtb


SD card image file tree

/opt/images/
└── Yocto
    ├── imx-boot-sd.bin
    └── rootfs.tar.gz


Setting the Boot Mode

Make sure the BOOT SELECT DIP switch on the carrier board is set correctly before you power on the board.

SW3
 0 : Boot from SD card
 1 : Boot from eMMC (Internal)


VAR-SOM-MX8

Build Results

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
Image.gz-fsl-imx8qm-var-som-dp.dtb DTB file for VAR-SOM-MX8 with DP display
Image.gz-fsl-imx8qm-var-som-hdmi.dtb DTB file for VAR-SOM-MX8 with HDMI display
Image.gz-fsl-imx8qm-var-som-lvds.dtb DTB file for VAR-SOM-MX8 with LVDS display
Image.gz-fsl-imx8qm-var-spear-dp.dtb DTB file for SPEAR-MX8 with DP display
Image.gz-fsl-imx8qm-var-spear-hdmi.dtb DTB file for SPEAR-MX8 with HDMI display
Image.gz-fsl-imx8qm-var-spear-lvds.dtb DTB file for SPEAR-MX8 with LVDS display

Similar device trees with "imx8qp-" instead of "imx8qm-" are also generated, for SOMs with the i.MX8QP variant of the SoC.


Build Results v2

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8qm-var-som-dp.dtb DTB file for VAR-SOM-MX8 with DP display
imx8qm-var-som-hdmi.dtb DTB file for VAR-SOM-MX8 with HDMI display
imx8qm-var-som-lvds.dtb DTB file for VAR-SOM-MX8 with LVDS display
imx8qm-var-spear-dp.dtb DTB file for SPEAR-MX8 with DP display
imx8qm-var-spear-hdmi.dtb DTB file for SPEAR-MX8 with HDMI display
imx8qm-var-spear-lvds.dtb DTB file for SPEAR-MX8 with LVDS display

Similar device trees starting with "imx8qp-" are also generated, for SOMs with the i.MX8QP variant of the SoC.


Build Results v3

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8qm-var-som-dp.dtb DTB file for VAR-SOM-MX8 with DP display
imx8qm-var-som-hdmi.dtb DTB file for VAR-SOM-MX8 with HDMI display
imx8qm-var-som-lvds.dtb DTB file for VAR-SOM-MX8 with LVDS display
imx8qm-var-spear-dp.dtb DTB file for SPEAR-MX8 with DP display
imx8qm-var-spear-hdmi.dtb DTB file for SPEAR-MX8 with HDMI display
imx8qm-var-spear-lvds.dtb DTB file for SPEAR-MX8 with LVDS display

Similar device trees starting with "imx8qp-" are also generated, for SOMs with the i.MX8QP variant of the SoC.


Build Results v4

Image Name
How to use
fsl-image-gui-.sdcard.gz This image is for SD card boot.
It can be flashed as-is on an SD card that can then be used to boot your system,
according to the relevant startup-guide of your product
(usually requires to press the boot select button, or toggle a DIP switch).
For detailed information refer to the Create a bootable SD card section below.
fsl-image-gui-.tar.gz Tarball with rootfs files.
Can be used to create an NFS root file system on the host.
See the Yocto Setup TFTP/NFS section for more info.
Also used to create our extended SD card.
See the Create a bootable SD card section below.
Linux kernel image, same binary for SD card and eMMC.
U-Boot built for SD card boot or eMMC boot.
File Name
Description
imx8qm-var-som-symphony-dp.dtb DTB file for VAR-SOM-MX8 with DP display on Symphony Board
imx8qm-var-som-symphony-hdmi.dtb DTB file for VAR-SOM-MX8 with HDMI display on Symphony Board
imx8qm-var-som-symphony-lvds.dtb DTB file for VAR-SOM-MX8 with LVDS display on Symphony Board
imx8qm-var-som-symphony-dp-m4.dtb DTB file for VAR-SOM-MX8 with DP display and Cortex-M4 on Symphony Board
imx8qm-var-som-symphony-hdmi-m4.dtb DTB file for VAR-SOM-MX8 with HDMI display and Cortex-M4 on Symphony Board
imx8qm-var-som-symphony-lvds-m4.dtb DTB file for VAR-SOM-MX8 with LVDS display and Cortex-M4 on Symphony Board
imx8qm-var-spear-sp8customboard-dp.dtb DTB file for SPEAR-MX8 with DP display on SP8CustomBoard
imx8qm-var-spear-sp8customboard-hdmi.dtb DTB file for SPEAR-MX8 with HDMI display on SP8CustomBoard
imx8qm-var-spear-sp8customboard-lvds.dtb DTB file for SPEAR-MX8 with LVDS display on SP8CustomBoard
imx8qm-var-spear-sp8customboard-dp-m4.dtb DTB file for SPEAR-MX8 with DP display and Cortex-M4 on SP8CustomBoard
imx8qm-var-spear-sp8customboard-hdmi-m4.dtb DTB file for SPEAR-MX8 with HDMI display and Cortex-M4 on SP8CustomBoard
imx8qm-var-spear-sp8customboard-lvds.m4.dtb DTB file for SPEAR-MX8 with LVDS display and Cortex-M4 on SP8CustomBoard

Similar device trees starting with "imx8qp-" are also generated, for SOMs with the i.MX8QP variant of the SoC.


Device tree

Build device tree for VAR-SOM-MX8 with DP display:
$ make -j4 freescale/fsl-imx8qm-var-som-db.dtb

Build device tree for VAR-SOM-MX8 with HDMI display:
$ make -j4 freescale/fsl-imx8qm-var-som-hdmi.dtb

Build device tree for VAR-SOM-MX8 with LVDS display:
$ make -j4 freescale/fsl-imx8qm-var-som-db.dtb

Build device tree for SPEAR-MX8 with DP display:
$ make -j4 freescale/fsl-imx8qm-var-spear-db.dtb

Build device tree for SPEAR-MX8 with HDMI display:
$ make -j4 freescale/fsl-imx8qm-var-spear-hdmi.dtb

Build device tree for SPEAR-MX8 with LVDS display:
$ make -j4 freescale/fsl-imx8qm-var-spear-lvds.dtb

Replace imx8qm with imx8qp to build the device trees for the i.MX8QP variant of the SoC.


Device tree v2

Build device tree for VAR-SOM-MX8 with DP display:
$ make -j4 freescale/imx8qm-var-som-db.dtb

Build device tree for VAR-SOM-MX8 with HDMI display:
$ make -j4 freescale/imx8qm-var-som-hdmi.dtb

Build device tree for VAR-SOM-MX8 with LVDS display:
$ make -j4 freescale/imx8qm-var-som-db.dtb

Build device tree for SPEAR-MX8 with DP display:
$ make -j4 freescale/imx8qm-var-spear-db.dtb

Build device tree for SPEAR-MX8 with HDMI display:
$ make -j4 freescale/imx8qm-var-spear-hdmi.dtb

Build device tree for SPEAR-MX8 with LVDS display:
$ make -j4 freescale/imx8qm-var-spear-lvds.dtb

Replace imx8qm with imx8qp to build the device trees for the i.MX8QP variant of the SoC.


Device tree v3

Build device tree for VAR-SOM-MX8 with DP display on Symphony Board:
$ make -j4 freescale/imx8qm-var-som-symphony-dp.dtb

Build device tree for VAR-SOM-MX8 with HDMI display on Symphony Board:
$ make -j4 freescale/imx8qm-var-som-symphony-hdmi.dtb

Build device tree for VAR-SOM-MX8 with LVDS display on Symphony Board:
$ make -j4 freescale/imx8qm-var-som-symphony-lvds.dtb

Build device tree for VAR-SOM-MX8 with DP display and Cortex-M4 on Symphony Board:
$ make -j4 freescale/imx8qm-var-som-symphony-dp-m4.dtb

Build device tree for VAR-SOM-MX8 with HDMI display and Cortex-M4 on Symphony Board:
$ make -j4 freescale/imx8qm-var-som-symphony-hdmi-m4.dtb

Build device tree for VAR-SOM-MX8 with LVDS display and Cortex-M4 on Symphony Board:
$ make -j4 freescale/imx8qm-var-som-symphony-lvds-m4.dtb

Build device tree for SPEAR-MX8 with DP display on SP8CustomBoard:
$ make -j4 freescale/imx8qm-var-spear-sp8customboard-dp.dtb

Build device tree for SPEAR-MX8 with HDMI display on SP8CustomBoard:
$ make -j4 freescale/imx8qm-var-spear-sp8customboard-hdmi.dtb

Build device tree for SPEAR-MX8 with LVDS display on SP8CustomBoard:
$ make -j4 freescale/imx8qm-var-spear-sp8customboard-lvds.dtb

Build device tree for SPEAR-MX8 with DP display and Cortex-M4 on SP8CustomBoard:
$ make -j4 freescale/imx8qm-var-spear-sp8customboard-dp-m4.dtb

Build device tree for SPEAR-MX8 with HDMI display and Cortex-M4 on SP8CustomBoard:
$ make -j4 freescale/imx8qm-var-spear-sp8customboard-hdmi-m4.dtb

Build device tree for SPEAR-MX8 with LVDS display and Cortex-M4on SP8CustomBoard:
$ make -j4 freescale/imx8qm-var-spear-sp8customboard-lvds-m4.dtb

Replace imx8qm with imx8qp to build the device trees for the i.MX8QP variant of the SoC.


SD card image file tree

/opt/images/
└── Yocto
    ├── imx-boot-sd.bin
    └── rootfs.tar.gz


DTB files table

DTB File Name
Description
fsl-imx8qm-var-som-dp.dtb Device tree blob for VAR-SOM-MX8 with DP display
fsl-imx8qm-var-som-hdmi.dtb Device tree blob for VAR-SOM-MX8 with HDMI display
fsl-imx8qm-var-som-lvds.dtb Device tree blob for VAR-SOM-MX8 with LVDS display
fsl-imx8qm-var-spear-dp.dtb Device tree blob for SPEAR-MX8 with DP display
fsl-imx8qm-var-spear-hdmi.dtb Device tree blob for SPEAR-MX8 with HDMI display
fsl-imx8qm-var-spear-lvds.dtb Device tree blob for SPEAR-MX8 with LVDS display


DTB files table v2

DTB File Name
Description
imx8qm-var-som-dp.dtb Device tree blob for VAR-SOM-MX8 with DP display
imx8qm-var-som-hdmi.dtb Device tree blob for VAR-SOM-MX8 with HDMI display
imx8qm-var-som-lvds.dtb Device tree blob for VAR-SOM-MX8 with LVDS display
imx8qm-var-spear-dp.dtb Device tree blob for SPEAR-MX8 with DP display
imx8qm-var-spear-hdmi.dtb Device tree blob for SPEAR-MX8 with HDMI display
imx8qm-var-spear-lvds.dtb Device tree blob for SPEAR-MX8 with LVDS display


Setting the Boot Mode

Make sure the BOOT SELECT DIP switch on the carrier board is set correctly before you power on the board.

SW3 on VAR-SOM-MX8, SW6 on SPEAR-MX8
 0 : Boot from SD card
 1 : Boot from eMMC (Internal)


Release Notes

Based on release Yocto: Poky , BSP: NXP, Linux: [ ]
Release tag [/tree/ ]
Release manifest [/blob// ]
Date
Supported platforms
SOM revision
File System build system Yocto
Recovery SD card link [/ ]

Relevant git Repositories

Source Repository Branch Commit ID






Configuring RS485 Half-Duplex

Each UART can be configured for RS485 Half-Duplex mode by using a GPIO pin to drive the receive and transmit enable inputs. This can be configured in the device tree by making the following changes to the uart node and replacing X, Y & Z with the proper values:

&uartX {                                                          /* Add RS485 properties to uartX */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uartX>, <&pinctrl_uartX_rs485>;     /* Add RS485 GPIO pinctrl */
	rts-gpios = <&gpioY Z GPIO_ACTIVE_LOW>;                   /* Add rts-gpios property */
	linux,rs485-enabled-at-boot-time;                         /* Enable RS485 at boot time to skip using TIOCSRS485 ioctl */
	status = "okay";
};

Next, configure the RS485 GPIO pin by adding pinctrl_uartX_rs485 to iomuxc. Replace X, GPIO_PIN_FUNCTION, and GPIO_PIN_SETTINGS with the proper values:

&iomuxc {
	pinctrl_uartX_rs485: uartXrs485 {
		fsl,pins = <
			GPIO_PIN_FUNCTION  GPIO_PIN_SETTINGS
		>;
	};
};

Note: For more information about configuring pins, please see i.MX Device Tree Pinmux Settings Guide


After making these changes, RS485 mode will be enabled by default and can be verified from the console by running the commands below. Replace N with the proper value, which is typically X-1 relative to the device tree node uartX:

# stty -F /dev/ttymxcN -echo -onlcr 115200
# echo hello > /dev/ttymxcN

The below logic analyzer capture shows the RS485 RX/TX enable line toggling when writing to the UART:

Rs485.png


Please refer to the Linux device tree bindings for more RS485 configuration options.


 Expression error: Unexpected > operator. Expression error: Unexpected >= operator. Expression error: Unexpected >= operator.  
$ cd 
$ MACHINE= DISTRO=


The above command is only mandatory for the very first build setup: whenever restarting a newer build session (from a different terminal or in a different time), you can skip the full setup and just run

$ cd 
$ source setup-environment


Platform Customizations

VAR-SOM-MX6

DART-6UL

VAR-SOM-MX7

DART-MX8M

DART-MX8M-MINI

VAR-SOM-MX8M-NANO

DART-MX8M-PLUS

VAR-SOM-MX8X

VAR-SOM-MX8

VAR-SOM-MX93

-->


-->


-->




VAR-SOM-AM62

VAR-SOM-AM33

DART-MX95

-->


Create a bootable SD card

SD Card Structure

This is the structure of our default SD card programmed from Yocto images:

Disk /dev/sdX: 59.48 GiB, 63864569856 bytes, 124735488 sectors                                                                                              
Disk model: MassStorageClass                                                                                                                                
Units: sectors of 1 * 512 = 512 bytes                                                                                                                       
Sector size (logical/physical): 512 bytes / 512 bytes                                                                                                       
I/O size (minimum/optimal): 512 bytes / 512 bytes                                                                                                           
Disklabel type: dos                                                                                                                                         
Disk identifier: 0x5ebf1617                                                                                                                                 
                                                                                                                                                          
Device     Boot Start      End  Sectors  Size Id Type                                                                                                       
/dev/sdX1       16384 15165439 15149056  7.2G 83 Linux


  • At the beginning of the card is 8 MiB of reserved area for the partition table and bootloader.
  • The first and only SD card partition begins at offset 16,384 (of 512 byte sectors) which is due to the reserved area explained above. This partition is an ext4 partition that contains the complete root filesystem (including kernel image and device tree files under /boot).


Note: This partition includes an unallocated area to ensure compatibility with all 8 GB SD cards, as their actual sizes may vary. For instructions on optimizing the usage of your SD card's capacity, refer to the section Extending the SD Card Size.

Yocto pre-built bootable SD card

The Yocto build products contains many files as explained in the Build Results section. For example, var-default-image-imx95-var-dart.rootfs.wic.zst, depending on your build. This is a complete and bootable image ready to be flashed directly to an SD card.

Example usage:

vari@yocto-22-04-fc27a5d:/workdir/$ sudo umount /dev/sdX*

# For fsl-image-gui image (GUI-XWAYLAND & GUI-WAYLAND)
vari@yocto-22-04-fc27a5d:/workdir/$  tmp/deploy/images/imx95-var-dart/fsl-image-gui-imx95-var-dart.rootfs.wic.zst | sudo dd of=/dev/sdX bs=1M conv=fsync
Or
# For fsl-image-gui-chromium image (GUI-XWAYLAND & GUI-WAYLAND)
vari@yocto-22-04-fc27a5d:/workdir/$  tmp/deploy/images/imx95-var-dart/fsl-image-gui-chromium-imx95-var-dart.rootfs.wic.zst | sudo dd of=/dev/sdX bs=1M conv=fsync
Or
# For fsl-image-qt6 image (Qt6-XWAYLAND & Qt6-WAYLAND)
vari@yocto-22-04-fc27a5d:/workdir/$  tmp/deploy/images/imx95-var-dart/fsl-image-qt6-imx95-var-dart.rootfs.wic.zst | sudo dd of=/dev/sdX bs=1M conv=fsync

Replace sdX with the right device name. This can be obtained by "dmesg" command on your host Linux PC, after the SD card reader is inserted.


Note: Booting your system from an SD card requires pressing the boot-select button, or switching the relevant DIP switch to "Boot from SD card", according to the relevant start-up guide of your system


Note: If using any of the native .rootfs.wic.zst images output from Yocto, these will only have a default partition size of slightly less than 8 GB in order to fit on most SD cards. In order to maximize all usable space on the SD card, please see the section on Extending the SD Card Size.

Yocto Recovery Image

Beginning in Yocto Langdale, Variscite has released a new recovery Yocto image recipe called "var-recovery-image." This image is used to create a bootable SD card that contains another target image to be programmed to the eMMC. See the yocto Recovery SD card or the more manual Installing Yocto to the SOM's internal storage articles for specifics of installing a recovery image.

Usage:

To create a recovery image, simply run the following from your Yocto environment:

vari@yocto-22-04-fc27a5d:/workdir/$ bitbake var-recovery-image

This will produce an output relative to the build folder of "./tmp/deploy/images/imx95-var-dart/var-recovery-image-imx95-var-dart.rootfs.wic.zst" that can be flashed to the SD card. By default, this image boots fsl-image-gui and contains a fsl-image-gui target image to be programmed to eMMC.

You can also specify a different target eMMC image to be embedded in the recovery image by setting VAR_RECOVERY_TARGET_ROOTFS via the command line during build:
i.e.

vari@yocto-22-04-fc27a5d:/workdir/$ VAR_RECOVERY_TARGET_ROOTFS="<desired-emmc-image-recipe>" bitbake var-recovery-image


Or alternatively, by setting this variable in local.conf:

vari@yocto-22-04-fc27a5d:/workdir/$ VAR_RECOVERY_TARGET_ROOTFS = "<desired-emmc-image-recipe>" 


Additionally, the file name of the recovery image output can be modified by setting something like the following in local.conf:

vari@yocto-22-04-fc27a5d:/workdir/$ echo 'VAR_RECOVERY_SD_NAME = "mx95-yocto-scarthgap-6.6.23_2.0.0-v1.0"' >> conf/local.conf

Would produce a recovery image relative to the build folder of "./tmp/deploy/images/imx95-var-dart/mx95-yocto-scarthgap-6.6.23_2.0.0-v1.0.rootfs.wic.zst"

Note: Please see the var-recovery-image recipe source for advanced usages of the recovery image.

Extending the SD Card Size

Flashing the default .rootfs.wic.zst images from Yocto results in a rootfs that does not utilize the entire SD card. This section explains how the SD card can be extended on the build host after flashing.

Procedure:

Begin with an SD card on which you have previously flashed a Yocto .rootfs.wic.zst image. Ensure the SD card is inserted and the device present (i.e. /dev/sda, /dev/mmcblk0, etc.)

Note: Below replace /dev/sdX with your actual device (i.e. /dev/sda)

Start by running fdisk as below and typing "p" and enter to print current partitions. You should see a layout similar to below but numbers may differ depending on card sizes. Note that the partition starts at 16,384 (bytes offset 16384*512) which is to account for the boot content explained above.

$ sudo fdisk /dev/sdX

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sdX: 59.48 GiB, 63864569856 bytes, 124735488 sectors                                                                                              
Disk model: MassStorageClass                                                                                                                                
Units: sectors of 1 * 512 = 512 bytes                                                                                                                       
Sector size (logical/physical): 512 bytes / 512 bytes                                                                                                       
I/O size (minimum/optimal): 512 bytes / 512 bytes                                                                                                           
Disklabel type: dos                                                                                                                                         
Disk identifier: 0x5ebf1617                                                                                                                                 
                                                                                                                                                           
Device     Boot Start      End  Sectors  Size Id Type                                                                                                       
/dev/sdX1       16384 15165439 15149056  7.2G 83 Linux

Next, run the following sequence of commands followed by enter with each step explained with a "-" to the right. Each command/input should be followed by enter:

  • d - Delete current partition (1).
  • n - Create a new parition.
  • - Empty, hit enter only which will leave default response p for primary partition.
  • - Empty, hit enter only which will leave default response 1 for first partition.
  • 16384 - Enter 16384 to begin partition past bootloader section.
  • - Empty, hit enter only which will leave last sector as default which should choose ending size of the SD card.
  • N - Answers no to not remove the ext4 signature on the disk
  • p - Print output and verify before we write. We should see the starting offset the same and the end expanded to fill the SD card.
  • w - Write output to disk


See the full log of the above sequence below:

Command (m for help): d                                                                                                                                     
Selected partition 1                                                                                                                                        
Partition 1 has been deleted.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-124735487, default 2048): 16384
Last sector, +/-sectors or +/-size{K,M,G,T,P} (16384-124735487, default 124735487): 

Created a new partition 1 of type 'Linux' and of size 59.5 GiB.
Partition #1 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: N

Command (m for help): p

Disk /dev/sdX: 59.48 GiB, 63864569856 bytes, 124735488 sectors
Disk model: MassStorageClass
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
identifier: 0x5ebf1617

Device     Boot Start       End   Sectors  Size Id Type
/dev/sdX1       16384 124735487 124719104 59.5G 83 Linux

Command (m for help): w

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.


Finally, the file system needs to be resized on the disk to fill the now larger partition. Do that as follows:

$ sudo e2fsck -f /dev/sdX1                                                    
e2fsck 1.46.5 (30-Dec-2021)                                                                                                                                 
root: recovering journal                                                                                                                                    
Pass 1: Checking inodes, blocks, and sizes                                                                                                                  
Pass 2: Checking directory structure                                                                                                                        
Pass 3: Checking directory connectivity                                                                                                                     
Pass 4: Checking reference counts                                                                                                                           
Pass 5: Checking group summary information                                                                                                                  
root: 43155/947488 files (0.1% non-contiguous), 674097/1893632 blocks

$ sudo resize2fs /dev/sdX1                                                    
resize2fs 1.46.5 (30-Dec-2021)                                                                                                                              
Resizing the filesystem on /dev/sdX1 to 15589888 (4k) blocks.                                                                                               
The filesystem on /dev/sdX1 is now 15589888 (4k) blocks long.

$ sync


Again, numbers and output should differ slightly depending on your card.

Your rootfs image should now fill the entire SD card and is ready to boot.

Boot the board with a bootable SD card

Setting the Boot Mode

Make sure the BOOT SELECT DIP switch on the carrier board is set correctly before you power on the board.

SW7
 0 : Boot from SD card
 1 : Boot from eMMC


Automatic device tree selection in U-Boot

As shown in the Build Results table above, we have different kernel device trees, corresponding to our different H/W configurations.
We implemented a script in U-Boot's environment, which sets the fdt_file environment variable based on the detected hardware.

Enable/Disable automatic device tree selection

To enable the automatic device tree selection in U-Boot (already enabled by default):

$ setenv fdt_file undefined
$ saveenv

To disable the automatic device tree selection in U-Boot, set the device tree file manually:

$ setenv fdt_file YOUR_DTB_FILE
$ saveenv

Useful example: To list all files in the /boot directory (where the dtb files are by default) of an SD card:

$ ls mmc 1:1 /boot

Flash images to NAND/eMMC

Please refer to Yocto NAND Flash Burning guide.

Yocto Image Customization

Update Yocto Scarthgap to latest revision

From time to time we update the Yocto sources (especially meta-variscite) with new features and bug fixes.
Follow the Download the latest revision (recommended) bullet section of the Download Yocto Scarthgap based on Freescale Community BSP step again to update your tree to the latest revision, and rebuild your image.

Update Yocto Scarthgap to a release tag

Follow the Download a release tag bullet section of the Download Yocto Scarthgap based on Freescale Community BSP step to update your tree to a release tag, and rebuild your image.

Forcing Clean Build

In order to update the kernel, U-Boot and rootfs:
vari@yocto-22-04-fc27a5d:/workdir/$ bitbake -c cleanall u-boot-variscite linux-variscite kernel-module-imx-gpu-viv ti-compat-wireless-wl18xx wl18xx-firmware cryptodev-module

for GUI image
vari@yocto-22-04-fc27a5d:/workdir/$ bitbake -c clean fsl-image-gui
for Qt6 image
vari@yocto-22-04-fc27a5d:/workdir/$ bitbake -c clean fsl-image-qt6


DDR size and Contiguous Memory Allocator

By default Freescale allocates 256MB of RAM to the Contiguous Memory allocator. This is for proper operation of the IPU VPU, X11 etc. On VAR-SOM-SOLO with 256MB DDR RAM size, it will cause a kernel freeze during boot. Adding cma=32MB to the bootargs parameters is required to fix.

Make changes to the rootfs

The following is usually not the recommended way to work with Yocto.
You should usually create new specific recipes (.bb files) and/or append to specific present recipes by using .bbappend files.
However, if you are not yet experienced enough with Yocto, and you just want to quickly add your files to the resultant file system (or make any other change to it), you can do it in a general way, by using the following variable:

ROOTFS_POSTPROCESS_COMMAND

    Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem.
    You can specify functions separated by semicolons:

         ROOTFS_POSTPROCESS_COMMAND += "function; ... "                  

    If you need to pass the root filesystem path to a command within a function, you can use ${IMAGE_ROOTFS},
    which points to the directory that becomes the root filesystem image. See the IMAGE_ROOTFS variable for more information. 

The functions will be called right after the root filesystem is created and right before it is packed to images (.rootfs.wic.zst, .ubi, .tar.gz, etc.).

Example

Let's say you have your files that you want to put in the filesystem arranged on your host under a directory called /my_rootfs_additions, like the following:

my_rootfs_additions/
├── data
│   ├── example.m4v
│   └── example.bin
├── etc
│   └── example.conf
└── home
    └── root
        └── .example

And let's say you want to build the fsl-image-gui image.

Create a file called ~/var-fsl-yocto/sources/meta-variscite-bsp-imx/recipes-images/images/fsl-image-gui.bbappend
with the following content:

add_my_files() {
    cp -r /my_rootfs_additions/*  ${IMAGE_ROOTFS}/
}

ROOTFS_POSTPROCESS_COMMAND += "add_my_files;"

Now, when you bitbake fsl-image-gui, the files in /my_rootfs_additions will be added to the rootfs (be careful when overwriting files).

Useful Bitbake commands

Bitbake Cheat Sheet

Useful bitbake commands

i.MX Yocto Project: ltib versus bitbake