Board description
The Technexion PICO-IMX7D is a system-on-module containing a large peripheral set usable for many designs.
The i.MX 7Dual delivers high-performance processing for low-power requirements with a high degree of functional integration. The i.MX 7Dual features an advanced implementation of two ARM®Cortex®-A7 cores, which operate at speeds of up to 1.2 GHz, as well as the ARM® Cortex®-M4 core. The Pico variant is pin-compatible with the Intel® Edison for sensors and low-speed I/O, but also adds additional expansion possibilities for multimedia and connectivity, giving you cutting edge technology that can easily be expanded and implemented for IoT designs.
This integration has been tested with the PICO PI carrier board.
URL:https://shop.technexion.com/system-on-modules/pico/pico-modules/pico-imx7d-10-r10-e08-9377.html
Note that this integration is similar to this one, however the board form-factor is different and this uses the Rocko branch of the Technexion BSP rather than the manifest files provided as part of Mender Hub.
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 |
---|---|---|
rocko (2.4) |
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
Create a directory for your mender-technexion
setup to live in and clone the
meta information.
mkdir mender-technexion && cd mender-technexion
Initialize repo manifest:
repo init -u https://github.com/TechNexion/edm-yocto-bsp.git -b rocko_4.9.y_GA -m imx-4.9.88-2.0.0_ga.xml
mkdir .repo/local_manifests
cd .repo/local_manifests/
wget https://raw.githubusercontent.com/mendersoftware/meta-mender-community/rocko/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 -
Download the wifi firmware
The wifi firmware is not yet in the upstream repos so we need to manually download it and store it in the meta-edm-bsp-release subdirectory.
wget ftp://download.technexion.net/development_resources/Download/wifi_firmware/Broadcom/AP6335_4.2.tgz
tar xzvf AP6335_4.2.tgz
mv AP6335_4.2/*/* sources/meta-edm-bsp-release/recipes-kernel/linux-firmware/files/
rm -rf AP6335_4.2/ AP6335_4.2.tgz
wget ftp://download.technexion.net/development_resources/Download/wifi_firmware/Broadcom/AP6212_4.2.tgz
tar xzvf AP6212_4.2.tgz
mv AP6212_4.2/*/* sources/meta-edm-bsp-release/recipes-kernel/linux-firmware/files/
rm -rf AP6212_4.2/ AP6212_4.2.tgz
Setup build environment
Initialize the build environment:
WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-fb MACHINE=pico-imx7 BASEBOARD=pi source edm-setup-release.sh
cat ../sources/meta-mender-community/meta-mender-nxp/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-nxp/templates/local.conf.append >> conf/local.conf
Building the image
You can now proceed with building an image:
MACHINE=pico-imx7 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/pico-imx7/
.
-
tmp/deploy/images/pico-imx7/core-image-base-pico-imx7.sdimg
-
tmp/deploy/images/pico-imx7/core-image-base-pico-imx7.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
Initial device provisioning uses the imx_usb utility to present the targets eMMC device as a block device to your build PC. You will need to configure your carrier board for serial download, and then invoke the imx_usb utility as follows:
sudo ./linux/imx_usb pico-imx7d_bootbomb_20170112.imx
At this point a new block device will be present in your system and you can follow the standard Mender instructions for provisioning the SDIMG.
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!