We are pleased to announce a new Yocto release Dunfell for our Nitrogen6/7 family of SBCs and SOMs based on i.MX6/7 processors. This release includes our latest 5.4 kernel. Below you will find the download link for the images as well as detailed instructions for the build including a features set.
For the Impatient
You can download the Yocto images from here:
- For Nitrogen6x platform(nitrogen6x, sabrelite, MAX, SOM2, SOM2_QP, nitrogen6_vm, nitrogen6QP_MAX):
- For Nitrogen6x-lite platform:
- For Nitrogen6_SoloX platform:
- For Nitrogen7 platform:
Update 20200829 changelog:
- Various updates to Uboot
Update 20201102 changelog:
- Updated kernel to version 5.4.70
- Added some useful tools to boundary-image-multimedia-full
As usual, you’ll need to register on our site and agree to the EULA because it contains NXP content.
How to Burn
You can program the SW to eMMC using the instructions below:
You can also program the SW to SD Card or USB Stick via zcat and dd under Linux:
~$ zcat *boundary-image*.wic.gz | sudo dd of=/dev/sdX bs=1M
In addition, you can use the balenaEtcher utility to flash the eMMC, SD Card or USB stick via Windows or Linux:
This image uses the dunfell branch of our boundary-bsp-platform repository.
To build the image, we recommend using a Docker Container so that you can build with a reproducible and stable build environment. Otherwise, you’ll need these packages installed as well as this repo tool that can be installed like this:
~$ sudo apt-get install repo
Then create your build directory and initialize everything.
~$ mkdir ~/yocto-dunfell && cd yocto-dunfell ~/yocto-dunfell$ repo init -u https://github.com/boundarydevices/boundary-bsp-platform -b dunfell ~/yocto-dunfell$ repo sync
~/yocto-dunfell$ MACHINE=<MACHINE> DISTRO=boundary-wayland . setup-environment build
Now bitbake boundary-image-multimedia-full which is equivalent to fsl-image-multimedia-full with Boundary-specific packages such as BD-SDMAC support.
~/yocto-dunfell/build$ bitbake boundary-image-multimedia-full
After some time this should build the same image as above, with the layers being at commits as per the time when repo sync was executed. If you are interested in each project revision at the time of the build, you can find a frozen manifest for those images here.
The image file will deploy to
The images built above contains the following components:
- Weston 8.0.0 for i.MX
- GStreamer1.0 1.16.2
- GPU Vivante libraries 6.4.0p2.0
- VPU libraries 220.127.116.11
- Firmware-imx 8.5
- qcacld-lea-2.0 Wi-Fi driver for BD-SDMAC
- BlueZ 5.54 with support for BD-SDMAC
The next sub-sections will describe how to test most features.
In order to test the GPU, you can either use the standard Weston EGL programs or the ones provided by Vivante.
Here are a few examples:
root@<MACHINE>:~# weston-simple-egl & root@<MACHINE>:~# cd /opt/viv_samples/vdk/ root@<MACHINE>:/opt/viv_samples/vdk# ./tutorial7
Camera MIPI-CSI input can be checked using our Nit6X_5MP_MIPI with GStreamer:
root@<MACHINE>:~# gst-launch-1.0 imxv4l2videosrc device=/dev/video1 ! autovideosink;
Here is an example using GPlay tool:
root@<MACHINE>:~# wget http://linode.boundarydevices.com/videos/Hobbit-1080p.mov root@<MACHINE>:~# gst-launch-1.0 playbin uri=file:///home/root/Hobbit-1080p.mov video-sink=imxipuvideosink
Here is an example using gstreamer:
root@<MACHINE>:~# gst-launch-1.0 imxv4l2videosrc device=/dev/video1 ! imxvpuenc_h264 bitrate=10000 ! filesink location=test.mp4
eth0 interface is up, you can use
iperf3 to check Ethernet performances:
root@<MACHINE>:~# iperf3 -c 192.168.1.60 Connecting to host 192.168.1.60, port 5201 [ 5] local 192.168.1.13 port 32880 connected to 192.168.1.60 port 5201 [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 1.09 GBytes 938 Mbits/sec 0 sender [ 5] 0.00-10.04 sec 1.09 GBytes 932 Mbits/sec receiver
Same goes for the Wi-Fi that can be tested just as easily:
root@<MACHINE>:~# nmcli d wifi connect <network_name> password <password> root@<MACHINE>:~# iw wlan0 link Connected to a4:3e:51:08:54:f6 (on wlan0) SSID: Jabu_5GHz freq: 5240 RX: 3243 bytes (31 packets) TX: 9117 bytes (48 packets) signal: -79 dBm tx bitrate: 15.0 MBit/s MCS 0 40MHz short GI root@nitrogen8mm:~# ping google.com -Iwlan0 PING google.com (18.104.22.168): 56 data bytes 64 bytes from 22.214.171.124: seq=0 ttl=55 time=3.470 ms ...
uart.sh start Starting silex-uart rfkill on/off cycle. silex found root@<MACHINE>:~# hciconfig hci0 up root@<MACHINE>:~# hcitool scan Scanning ... 11:22:DE:AD:BE:EF Some Device
CAN is supported on Nitrogen6 MAX. You’ll be able to bring up the interface using these commands:
root@<MACHINE>:~# ip link set can0 up type can bitrate 500000 root@<MACHINE>:~# ifconfig can0 up
From this point, you can use commands such as cansend and candump to send or display messages on the bus respectively.
If you have any issues, please email firstname.lastname@example.org