# NXP i.MX7D Sabre

**URL:** <https://hub.mender.io/t/nxp-i-mx7d-sabre/1279>\
**Category:** Yocto Project\
**Tags:** yocto, nxp, warrior\
**Created:** [November 24, 2019, 7:50pm UTC](https://hub.mender.io/t/nxp-i-mx7d-sabre/1279 "2019-11-24T19:50:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jorisoffouga](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/jorisoffouga/32/64_2.png) [@jorisoffouga](https://hub.mender.io/u/jorisoffouga)\
**Post date:** [November 24, 2019, 7:50pm UTC](https://hub.mender.io/t/nxp-i-mx7d-sabre/1279/1 "2019-11-24T19:50:46Z")

</div>

The official [Mender documentation](https://docs.mender.io/) explains how Mender works. This is a board-specific complement to the official documentation.

# Board description

The Smart Application Blueprint for Rapid Engineering (SABRE).

 ![](https://www.nxp.com/assets/images/en/dev-board-image/MCIMX7X-SDB-BD.jpg)

URL:[https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/sabre-board-for-smart-devices-based-on-the-i.mx-7dual-applications-processors:MCIMX7SABRE](https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/sabre-board-for-smart-devices-based-on-the-i.mx-7dual-applications-processors:MCIMX7SABRE)

# 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](https://wiki.yoctoproject.org/wiki/Releases?target=_blank):

| Yocto Project | Build | Runtime |
| --- | --- | --- |
| warrior (2.7) | :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](https://docs.mender.io/devices/yocto-project/bootloader-support/u-boot/integration-checklistt?target=_blank) has been verified.

# Getting started

## Prerequisites

- A supported Linux distribution and dependencies installed on your workstation/laptop as described in the [Yocto Mega Manual](https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#detailed-supported-distros)
  - NOTE. Instructions depend on which Yocto version you intend to use.

- Google repo tool [installed](https://hub.mender.io/t/google-repo/58/2) and in your `PATH`.

## Configuring the build

### Setup Yocto environment

Set the Yocto Project branch you are building for:

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

```

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

```auto
mkdir mender-nxp && cd mender-nxp

```

Initialize repo manifest:

```auto
repo init -u https://github.com/mendersoftware/meta-mender-community \
           -m meta-mender-nxp/scripts/manifest-nxp.xml \
           -b ${BRANCH}

```

Fetch layers in manifest:

```auto
repo sync

```

## Setup build environment

Initialize the build environment:

```auto
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.

### Configure Mender server URL (optional)

This section is not required for a successful build but images that are generated by default are only suitable for usage with the Mender client in [Standalone deployments](https://docs.mender.io/architecture/standalone-deployments?target=_blank), due to lack of server configuration.

You can edit the `conf/local.conf` file to provide your Mender server configuration, ensuring the generated images and Mender Artifacts are connecting to the Mender server that you are using. There should already be a commented section in the generated `conf/local.conf` file and you can simply uncomment the relevant configuration options and assign appropriate values to them.

Build for Hosted Mender:

```auto
# To get your tenant token:
# - log in to https://hosted.mender.io
# - click your email at the top right and then "My organization"
# - press the "COPY TO CLIPBOARD"
# - assign content of clipboard to MENDER_TENANT_TOKEN
#
MENDER_SERVER_URL = "https://hosted.mender.io"
MENDER_TENANT_TOKEN = "<copy token here>"

```

Build for Mender demo server:

```auto
# https://docs.mender.io/getting-started/create-a-test-environment
#
# Update IP address to match the machine running the Mender demo server
MENDER_DEMO_HOST_IP_ADDRESS = "192.168.0.100"

```

### Building the image

You can now proceed with building an image:

```auto
MACHINE=imx7dsabresd 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/imx7dsabresd/`.

- `tmp/deploy/images/imx7dsabresd/core-image-base-imx7dsabresd.sdimg`

- `tmp/deploy/images/imx7dsabresd/core-image-base-imx7dsabresd.mender`

- `tmp/deploy/images/imx7dsabresd/u-boot.imx`

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](https://docs.mender.io/artifacts/provisioning-a-new-device?target=_blank) 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](https://docs.mender.io/architecture/mender-artifacts?target=_blank) 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](https://docs.mender.io/architecture/standalone-deployments?target=_blank).

#### Flash instructions

Based on the output artifacts described above we need to flash the core-image-base-imx7dsabresd.sdimg separately to fully provision an device and for it to work with Mender.

Required software on the host PC:

- bmaptool

```auto
sudo apt install bmap-tools

```

Load image to sd card

```auto
$ sudo bmaptool copy core-image-base-imx7dsabresd.sdimg /dev/sdX

```

Load the u-boot.imx in sd card

```auto
$ sudo dd if=u-boot.imx of=/dev/sdX bs=1k seek=1; sync

```

# References

- The sources of the Yocto integration can be found in [meta-mender-community/meta-mender-nxp](https://github.com/mendersoftware/meta-mender-community/tree/warrior/meta-mender-nxp)

* * *

_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!_
