Buildroot external layer for Boundary Devices platforms and modules. Contains support for BD-SDMAC Wi-Fi/BT module as well as some demo configurations.
Here are some details about the configurations available:
nitrogen8m_qt5_gst1_defconfig
:- For i.MX 8MQ based Nitrogen8M, Nitrogen8M SOM
- Qt5 modules (+ Cinematic Experience demo)
- GStreamer1.0 with all its plugins
- NXP proprietary packages (VPU, GPU, SDMA)
- NXP-based kernel (5.4.x_2.3.0_ga)
- BD-SDMAC WiFi/BT modules support
- Miscellaneous tools (adbd, CAN, I2C, IIO, etc...)
nitrogen8mm_qt5_gst1_defconfig
:- For i.MX 8M Mini based Nitrogen8M Mini, Nitrogen8M Mini SOM
- Same set of packages as
nitrogen8m_qt5_gst1_defconfig
nitrogen8mn_qt5_gst1_defconfig
:- For i.MX 8M Nano based Nitrogen8M Nano, Nitrogen8M Nano SOM
- Same set of packages as
nitrogen8m_qt5_gst1_defconfig
nitrogen8ulp_qt5_gst1_defconfig
:- For i.MX 8ULP based Nitrogen8ULP SOM
- Same set of packages as
nitrogen8m_qt5_gst1_defconfig
nitrogen93_gst1_defconfig
:- For i.MX 93 based Nitrogen93 SMARC
- Same set of packages as
nitrogen8m_qt5_gst1_defconfig
, except without Qt5 modules
nitrogen8mp_qt5_gst1_defconfig
:- For i.MX 8M Plus based Nitrogen8M Plus SOM
- Same set of packages as
nitrogen8m_qt5_gst1_defconfig
nitrogen6x_qt5_gst1_defconfig
:- For BD-SL-i.MX6 (SABRE Lite), Nitrogen6X, Nitrogen6X SOM v2, Nitrogen6 Lite, Nitrogen6 MAX, Nitrogen6 VM
- TiWi-BLE and Murata WiFi/BT modules support
- Same set of packages as
nitrogen8m_qt5_gst1_defconfig
nitrogen6sx_qt5_gst1_defconfig
:- For Nitrogen6_SoloX
- Same set of packages as
nitrogen6x_qt5_gst1_defconfig
nitrogen7_gst1_defconfig
:- For Nitrogen7
- Same set of packages as
nitrogen6x_qt5_gst1_defconfig
minus Qt5
nitrogen6x_qt5_gst1_mainline_defconfig
:- For BD-SL-i.MX6 (SABRE Lite), Nitrogen6X, Nitrogen6X SOM v2, Nitrogen6 Lite, Nitrogen6 MAX
- Same set of packages as
nitrogen6x_qt5_gst1_defconfig
- Mainline kernel
This procedure requires you to have the repo tool installed on your system.
- Download the latest Buildroot and BD external trees:
$ repo init -u https://github.com/boundarydevices/buildroot-manifest -b master
$ repo sync -c
- Create an output folder for your build:
$ make BR2_EXTERNAL=$PWD/buildroot-external-boundary/ -C buildroot/ \
O=$PWD/output nitrogen8m_qt5_gst1_defconfig
$ cd output
- Build the image:
$ make
- Your rootfs image is ready!
$ ls -l images/sdcard.img
- Create the SDK for this image (optional):
$ make sdk
You can simply use dd
to flash an SD card:
$ sudo dd if=images/sdcard.img of=/dev/sdX bs=1M
If you want to flash the eMMC on your board, you can use the U-Boot UMS gadget as explained in this blog post.
=> ums 0 mmc 1
The login for this image is root
with no password.
Welcome to Buildroot
buildroot login: root
#
If the configuration/platform supports 3D GPU, the Vivante example can be tested:
# cd /usr/share/examples/viv_samples/vdk/
# ./tutorial7
fps: 496.61
If the configuration/platform supports 3D GPU, make sure to try kmscube
:
# kmscube -D /dev/dri/card1
If the configuration includes Qt5 support, the Cinematic demo can be tested.
Then the demo can be started:
# CinematicExperience-demo -platform wayland
The NXP proprietary drivers require to setup the following variables:
# export FB_MULTI_BUFFER=3
# export QT_QPA_EGLFS_INTEGRATION=eglfs_viv
Then the demo can be started:
# CinematicExperience-demo -platform eglfs
If the configuration includes GStreamer support, the following pipelines can be tested:
- VPU testing
# wget http://linode.boundarydevices.com/videos/trailer_1080p_h264_mp3.avi -P /root/
# gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! \
decodebin ! waylandsink
- Camera (MIPI) Streaming
# gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=720 ! \
waylandsink
- VPU testing
# wget http://linode.boundarydevices.com/videos/trailer_1080p_h264_mp3.avi -P /root/
# gst-launch-1.0 playbin uri=file:///root/trailer_1080p_h264_mp3.avi
# gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! \
avidemux ! decodebin ! imxeglvivsink
- Camera (MIPI) Streaming to display using 3D GPU:
# gst-launch-1.0 imxv4l2videosrc device=/dev/video1 ! imxeglvivsink
- Camera (Parallel) Streaming to display using IPU:
# gst-launch-1.0 imxv4l2videosrc device=/dev/video0 ! \
imxipuvideosink use-vsync=true
- Camera Streaming to display using PXP (i.MX7 / i.MX6SX):
# gst-launch-1.0 imxv4l2videosrc device=/dev/video1 ! \
imxpxpvideosink use-vsync=true
# wget http://linode.boundarydevices.com/videos/trailer_1080p_h264_mp3.avi -P /root/
# gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! avidemux ! \
decodebin ! kmssink name=imx-drm sync=0