Board description
The Nitrogen6X is an embedded single board computer (SBC) based on the NXP i.MX 6 applications processor. It can be built with the i.MX 6 Single, Dual Lite, Dual, and Quad processors, with the Quad core standard on all of our boards. It is designed to rugged commercial standards so it can be used for both development purposes or mass production
URL: https://boundarydevices.com/product/nitrogen6x-board-imx6-arm-cortex-a9-sbc/
Wiki: https://boundarydevices.com/wiki/
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:
Yocto Project | Build | Runtime |
---|---|---|
sumo (2.5) |
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="sumo"
Create a directory for your mender-nxp
setup to live in and clone the
meta information.
mkdir mender-nxp && cd mender-nxp
Initialize repo manifest:
repo init -u https://github.com/mendersoftware/meta-mender-community \
-m meta-mender-nxp/scripts/manifest-nxp.xml \
-b ${BRANCH}
Fetch layers in manifest:
repo sync
Setup build environment
Initialize the build environment:
source setup-environment nxp
NOTE! You need to accept the Freescale EULA at ‘…/sources/meta-freescale/EULA’. Please read it and in case you accept it, add:
ACCEPT_FSL_EULA = "1"
in your local.conf.
Building the image
You can now proceed with building an image:
MACHINE=nitrogen6x bitbake core-image-base
Replace core-image-base
with your desired image target.
Using the build output
After a successful build, the images and build artifacts are placed in tmp/deploy/images/nitrogen6x/
.
-
tmp/deploy/images/nitrogen6x/core-image-base-nitrogen6x.sdimg
-
tmp/deploy/images/nitrogen6x/core-image-base-nitrogen6x.mender
The disk image (with .sdimg
suffix) is used to provision the device storage for devices without Mender running already. Please proceed to the official documentation on provisioning a new device for steps to do this.
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 (upload it under Releases in the server UI) or by using the Mender client only in Standalone deployments.
Flash instructions
The default configuration assumes that you are booting from the top uSD card slot, note that there is a uSD at the bottom side of the board, which will not work.
Write the disk-image to the uSD using the following command:
sudo dd if=core-image-base-nitrogen6x.sdimg of=<block device>
Insert the uSD in to the device and halt it in U-Boot on the first boot. You should see:
Hit any key to stop autoboot: 0
=>
The Nitrogen6X stores the U-Boot binary on a serial EEPROM, which means that we need one additional step to make sure that the U-Boot binary that we build gets written to the EEPROM.
Luckily there is already an script prepared to flash U-Boot, and the binary is installed on the correct location on the uSD, you just need to run:
=> run upgradeu
Takes around one minute to complete, and you will be prompted to reset the board once it is complete.
Also remember to run the following once after you have performed the U-Boot upgrade:
=> env default -a
=> saveenv
This will make sure that the correct U-Boot environment is used.
References
- 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!