Yocto Kirkstone v24.1 Release for Tungsten Platforms

We are pleased to announce our Yocto Kirkstone v24.1 Release for Tungsten Platforms. This includes our new Tunsgten510 SMARC and our Tungsten700 SMARC. This release is based upon the Mediatek iot-yocto-v24.1 (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:
- Tungsten510:
- Tungsten700:
Changelog 20241228 to 20250109:
- add
camera-pivariety-csi0andcamera-pivariety-csi1overlays
How to Burn
The .zip archive include all the files to be flashed using fastboot.
Connect from your machine a serial-to-USB adapter to the "SERIAL" header and a USB-C cable to "J25" on the carrier board.
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-*-smarc.wic.img Build procedure
This image uses the kirkstone-mtk-v24.1 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-v24.1 ~/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 main changes with this new v24.1 version are:
- Yocto LTS Kirkstone updated to 4.0.22
- Linux Kernel keapt at 5.15.47
- Added Arducam xISP family support
- Mali GPU driver version in DDK keapt at r48
You can find more information about this release on MediaTek release notes:
On the connectivity side, this BSP still includes support for our Sona MT320 Wi-Fi 6 / Bluetooth 5.3 module.
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 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 Display support
Display configuration can be changed from U-Boot using the display_dtbo variable that can be set to:
display-dp.dtbo: DisplayPort outputdisplay-dsi.dtbo: DSI0 output (with one of our MIPI-DSI displays)display-dsidp.dtbo: DSI0 + DisplayPort outputsdisplay-dsiedp.dtbo: DSI0 + eDP outputsdisplay-dsihdmi.dtbo: DSI0 + HDMI outputsdisplay-edp.dtbo: eDP outputdisplay-edpdp.dtbo: eDP + DisplayPort outputsdisplay-edphdmi.dtbo: eDP + HDMI outputsdisplay-hdmi.dtbo: HDMI ouput (default)display-hdmidp.dtbo: HDMI + DisplayPort outputs
Camera support
The pre-built image includes support for the Arducam xISP Sensors (Pivariety).
First you need to enable the camera device tree overlays from U-Boot:
=> setenv extra_dtbo '#conf-camera.dtbo#conf-camera-pivariety-csi0.dtbo'
=> saveenv
=> boot Then you can configure the media topology as follows:
export MEDIA_DEV=$(v4l2-ctl -z platform:$(basename `find /sys/bus/platform/devices/ -name "*camisp"`) --list-devices | grep media)
declare -a video=(`for i in {0..7}; do media-ctl -d /${MEDIA_DEV} --entity "mtk-cam camsv-$i main-stream"; done | tr "\n" " "`)
media-ctl -d /${MEDIA_DEV} -l "'mtk-cam camsv-0':1 -> 'mtk-cam camsv-0 main-stream':0 [1]"
media-ctl -d /${MEDIA_DEV} -l "'seninf-0':1 -> 'mtk-cam camsv-0':0 [5]"
media-ctl -d /${MEDIA_DEV} -l "'arducam-pivariety 3-000c':0 -> 'seninf-0':0 [1]"
media-ctl -d /${MEDIA_DEV} -V "'arducam-pivariety 3-000c':0 [fmt:UYVY8_2X8/1920x1080 field:none]"
media-ctl -d /${MEDIA_DEV} -V "'seninf-0':1 [fmt:UYVY8_2X8/1920x1080 field:none]"
media-ctl -d /${MEDIA_DEV} -V "'mtk-cam camsv-0':1 [fmt:UYVY8_2X8/1920x1080 field:none]"
gst-launch-1.0 v4l2src device=${video[0]} ! video/x-raw,width=1920,height=1080,format=UYVY ! \
v4l2convert output-io-mode=dmabuf-import ! waylandsink sync=false If you have any issues, please email support@ezurio.com
/filters:background_color(white)/2024-09/Tungsten%20510%20-%20MT320%20M2.2-1420%20-%20Front.png)
/filters:background_color(white)/2024-09/Tungsten%20700%20-%20MT320%20M.2-1420%20-%20Front.png)

