BD-Blog-Graphic-Yocto

We are pleased to announce our Yocto Kirkstone v23.2 Release for Tungsten Platforms. This includes our new Tunsgten510 SMARC and our Tungsten700 SMARC. This release is based upon the Mediatek iot-yocto-v23.2 (Kirkstone) release and includes our 5.15 kernel. Below you will find a download link for the images as well as detailed instructions for building including a features set.

Prebuilt Image

You can download the Yocto images from here:

Changelog 20240221 to 20240606:

  • fix suspend issues
  • add Quectel / Telit USB modem support
  • add MT320 Wi-Fi module power tables

How to Burn

The .zip archive include all the files to be flashed using fastboot.

First you need to enter fastboot mode from U-Boot prompt:

=> fastboot 0

If you are unable to get into fastboot mode from U-Boot, you can follow the this blog to recover your Tungsten platform.

Next, unzip image:

~$ unzip *-tungsten-700-smarc-yocto-kirkstone.zip -d Tungsten-Yocto
~$ cd Tungsten-Yocto

Finally, flash the image(s):

Flash bl2.img to mmc0boot0 partition:

~/Tungsten-Yocto$ fastboot flash mmc0boot0 bl2.img

Flash wic.img to mmc0 partition:

~/Tungsten-Yocto$ fastboot flash mmc0 rity-demo-image-tungsten-700-smarc.wic.img

Build procedure

This image uses the kirkstone-mtk-v23.2 branch of our yocto-manfiest 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

Now we are ready to build the image.

First, download the BSP yocto layers:

~$ mkdir ~/kirkstone-mtk && cd kirkstone-mtk
~/kirkstone-mtk$ repo init -u https://github.com/boundarydevices/yocto-manifest.git -b kirkstone-mtk-v23.2
~/kirkstone-mtk$ repo sync

Then, setup the environment for building.

~/kirkstone-mtk$ TEMPLATECONF=$PWD/src/meta-boundary/conf source src/poky/oe-init-build-env
~/kirkstone-mtk$ export BUILD_DIR=`pwd`

Finally, set the Tungsten MACHINE and bitbake rity-demo-image

~/kirkstone-mtk/build$ MACHINE=tungsten-700-smarc bitbake rity-demo-image

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 tmp/deploy/images/tungsten-700-smarc/rity-demo-image-tungsten-700-smarc.wic.img

Features list

The image built above contains the following components:

The next sub-sections will describe how to test most features.

GPU acceleration

To test GPU you can use glmark2:

root@tungsten-700-smarc:~# glmark2-es2-wayland --fullscreen

GPU-Test-Tungste700-SMARC-glmark2-es2

Ethernet

Once the eth0 interface is up, you can use iperf3 to check Ethernet performances:

root@tungsten-700-smarc:~# 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

Wi-Fi

You can test Wi-Fi with nmcli as shown below:

root@tungsten-700-smarc:~# nmcli d wifi connect <network_name> password <password>
Device 'wlan0' successfully activated with '796c47ef-fb49-4b9b-9c7f-dc9d7250568f'.
root@tungsten-700-smarc:~# iw wlan0 link
Connected to 9a:dc:97:07:5b:5a (on wlan0)
        SSID: golfcourse
        freq: 5520
        RX: 30561 bytes (215 packets)
        TX: 7899 bytes (63 packets)
        signal: -59 dBm
        rx bitrate: 864.8 MBit/s 80MHz HE-MCS 8 HE-NSS 2 HE-GI 0 HE-DCM 0
        tx bitrate: 720.6 MBit/s 80MHz HE-MCS 7 HE-NSS 2 HE-GI 0 HE-DCM 0

        bss flags:      short-slot-time
        dtim period:    3
        beacon int:     100
root@tungsten-700-smarc:~# ping google.com -Iwlan0                                                
PING google.com (216.58.198.206): 56 data bytes
64 bytes from 216.58.198.206: seq=0 ttl=55 time=3.470 ms

Bluetooth

You can test bluetooth with hciconfig:

root@tungsten-700-smarc:~# hciconfig hci0 up
root@tungsten-700-smarc:~# hcitool scan
Scanning ...
        4C:BA:D7:64:CB:CD       Iphone

VPU decoding

You can test VPU with gstreamer:

root@tungsten-700-smarc:~# wget http://linode.boundarydevices.com/videos/SKYFALL-4K.mp4
root@tungsten-700-smarc:~# gst-launch-1.0 -v filesrc location=/home/root/SKYFALL-4K.mp4 \
    ! parsebin ! v4l2h264dec ! queue \
    ! v4l2convert output-io-mode=dmabuf-import capture-io-mode=dmabuf ! queue \
    ! waylandsink fullscreen=true

VPU-Test-Tungsten700-SMARC-SKYFALL-4K

If you have any issues, please email support@boundarydevices.com