Variscite DART-6UL

Board description

Measuring only 50mm x 25mm, the DART-6UL is a highly flexible System-on-Module (SoM) based on NXP/Freescale’s i.MX 6UltraLite or i.MX 6ULL ARM Cortex-A7™ processor, up to 900MHz CPU Clock. The DART-6UL provides a variety of interfaces and connectivity options – all packaged at an optimized power, size and cost. The DART-6UL highly integrated connectivity includes a certified dual-band Wi-Fi 802.11ac/a/b/g/n, Bluetooth/BLE, dual Ethernet, dual USB, audio, camera in, display with touch panel and serial interfaces. In addition, the system supports -40 to 85°C temperature range and long longevity commitment targeting embedded products in various industrial segments and applications.

The evaluation kit comes with a VAR-6ULCustomBoard and a 7" Capacitive touch LCD.

DART-6UL

URL:

Test results

The Yocto Project releases in the table below have been tested by the Mender community. Please update it if you have tested this integration on other Yocto Project releases:

SD Card Root Filesystem

Yocto Project Build Runtime
rocko (2.4) :test_works: :test_works:
sumo (2.5) :test_works: :test_works:
thud (2.6) :test_works: :test_works:

NAND Root Filesystem

Yocto Project Build Runtime
thud (2.6) :test_works: :test_works:

Build Means that the Yocto Project build using this Mender integration completes without errors and outputs images.
Runtime Means that Mender has been verified to work on the board. For U-Boot-based boards, the integration checklist has been verified.

Getting started

Prerequisites

  • A supported Linux distribution and dependencies installed on your workstation/laptop as described in the Yocto Mega Manual
    • NOTE. Instructions depend on which Yocto version you intend to use.
  • Google repo tool installed and in your PATH.

Configuring the build

Setup Yocto environment

Set the Yocto Project branch you are building for:

# set to your branch, make sure it is supported (see table above)
export BRANCH="rocko"

Create a directory for your mender-variscite setup to live in and clone the
meta information.

mkdir mender-variscite && cd mender-variscite

Initialize repo manifest:

repo init -u https://github.com/varigit/variscite-bsp-platform.git -b $BRANCH                                                                                                                  
mkdir .repo/local_manifests
cd .repo/local_manifests/
wget https://raw.githubusercontent.com/mendersoftware/meta-mender-community/$BRANCH/scripts/mender-no-setup.xml
cd -

Fetch layers in manifest:

repo sync
cd .repo/local_manifests/
ln -sf ../../sources/meta-mender-community/scripts/mender-no-setup.xml .
cd -

Determine root filesystem media

The Variscite DART-6UL platform supports running U-Boot directly from the following media:

  • SD-Card
  • eMMC
  • NAND flash

The root filesystem can be stored on any of the following media:

  • SD-Card
  • eMMC
  • NAND flash

Note that eMMC has not been tested for the DART-6UL since we do not have access to an appropriate board.

Set the shell variable for your desired root filesystem media:

export MEDIA="sdcard"
export MEDIA="nand"

Setup build environment

Initialize the build environment:

MACHINE=imx6ul-var-dart DISTRO=fslc-x11 . setup-environment build
cat ../sources/meta-mender-community/meta-mender-variscite/templates/bblayers.conf.append >> conf/bblayers.conf
cat ../sources/meta-mender-community/templates/local.conf.append >> conf/local.conf
cat ../sources/meta-mender-community/meta-mender-variscite/templates/local.conf.append >> conf/local.conf
cat ../sources/meta-mender-community/meta-mender-variscite/templates/local-${MEDIA}.conf.append >> conf/local.conf

Building the image

You can now proceed with building an image:

bitbake core-image-base

Replace core-image-base with your desired image target.

Using the build output

SD Card

Provision an SD Card with the built above. WARNING, make sure you use the correct device node as the of= parameter to avoid overwriting the wrong device:

sudo dd if=tmp/deploy/images/imx6ul-var-dart/core-image-base-imx6ul-var-dart.sdimg of=<SDCARD-DEVICE-NODE>

Remove the SD Card from your build host and insert it into the target. Configure your board to boot from SD Card by setting the Boot Select switches to position “00”. Now turn on power to the board and it will boot from the SDCard and Mender will connect to the server configured in your local.conf file.

NAND

To be able to provision images to the NAND, we need to boot a prebuilt image from Variscite using an SDCard. Download the image and write it to an SDCard. WARNING, make sure you use the correct device node as the of= parameter to avoid overwriting the wrong device:

gunzip sumo-fslc-4.9.88-mx6ul-v1.1.img.gz
sudo dd if=sumo-fslc-4.9.88-mx6ul-v1.1.img of=<SDCARD-DEVICE-NODE>

Now remove and reinsert the SD Card to have your system automount it (or just issue a manual mount command). Copy the necessary files from your build tree to the SD Card.

sudo cp -f tmp/deploy/images/imx6ul-var-dart/core-image-base-imx6ul-var-dart.ubimg \
          tmp/deploy/images/imx6ul-var-dart/SPL \
          tmp/deploy/images/imx6ul-var-dart/u-boot.img-nand \
          <SDCARD-MOUNT-POINT>

Remove the SD Card from your build host and insert it into the target. Configure your board to boot from SD Card by setting the Boot Select switches to position “00”. Now turn on power to the board and it will boot from the SDCard. Login as user root with no password and execute the following commands to provision the binaries:

flash_erase /dev/mtd0 0 0
kobs-ng init -x /SPL --search_exponent=1 -v
flash_erase /dev/mtd1 0 0
nandwrite -p /dev/mtd1 /u-boot.img-nand
flash_erase /dev/mtd4 0 0
nandwrite -k /dev/mtd4 /core-image-base-imx6ul-var-dart.ubimg
halt

Remove the SDCard, configure your board to boot from NAND by setting the Boot Select switch to position “10” and power cycle your board.

On the other hand, if you already have Mender running on your device and want to deploy a rootfs update using this build, you should use the Mender Artifact files, which have .mender suffix. You can either deploy this Artifact in managed mode with the Mender server as described in Deploy to physical devices or by using the Mender client only in Standalone deployments.

References

  • The Variscite imx6ul-var-dart template files can be found in meta-mender-community .
  • The official Mender documentation explains how Mender works. This is simply a board-specific complement to the official documentation.

If this post was useful to you, please press like, or leave a thank you note to the contributor who put valuable time into this and made it available to you. It will be much appreciated!

1 Like