Armbian images are now available for Rock 5b!

4 simple steps (without compiling/patching code) to get better OpenGL perfomance on Rock5B with Armbian:

  1. Install and use panfork: sudo add-apt-repository ppa:liujianfeng1994/panfork-mesa
q@rock-5b:~$ cd /lib/firmware
q@rock-5b:/lib/firmware$ sudo wget https://github.com/JeffyCN/rockchip_mirrors/raw/libmali/firmware/g610/mali_csffw.bin
--2023-02-10 01:07:06--  https://github.com/JeffyCN/rockchip_mirrors/raw/libmali/firmware/g610/mali_csffw.bin
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/libmali/firmware/g610/mali_csffw.bin [following]
--2023-02-10 01:07:07--  https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/libmali/firmware/g610/mali_csffw.bin
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 274432 (268K) [application/octet-stream]
Saving to: ‘mali_csffw.bin’

mali_csffw.bin          100%[=============================>] 268.00K  1.73MB/s    in 0.2s    

2023-02-10 01:07:07 (1.73 MB/s) - ‘mali_csffw.bin’ saved [274432/274432]

q@rock-5b:/lib/firmware$ sudo add-apt-repository ppa:liujianfeng1994/panfork-mesa
q@rock-5b:/lib/firmware$ sudo apt update && sudo apt upgrade
q@rock-5b:~$ sudo apt list --installed | grep panfork

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libegl-mesa0/jammy,now 23.0~panfork~csf~git221210.120202c6757~j arm64 [installed,automatic]
libegl1-mesa-dev/jammy,now 23.0~panfork~csf~git221210.120202c6757~j arm64 [installed,automatic]
libgbm-dev/jammy,now 23.0~panfork~csf~git221210.120202c6757~j arm64 [installed,automatic]
libgbm1/jammy,now 23.0~panfork~csf~git221210.120202c6757~j arm64 [installed,automatic]
libgbm1/jammy,now 23.0~panfork~csf~git221210.120202c6757~j armhf [installed,automatic]
libgl1-mesa-dri/jammy,now 23.0~panfork~csf~git221210.120202c6757~j arm64 [installed,automatic]
libgl1-mesa-dri/jammy,now 23.0~panfork~csf~git221210.120202c6757~j armhf [installed,automatic]
libglapi-mesa/jammy,now 23.0~panfork~csf~git221210.120202c6757~j arm64 [installed,automatic]
libglapi-mesa/jammy,now 23.0~panfork~csf~git221210.120202c6757~j armhf [installed,automatic]
libglx-mesa0/jammy,now 23.0~panfork~csf~git221210.120202c6757~j arm64 [installed,automatic]
libglx-mesa0/jammy,now 23.0~panfork~csf~git221210.120202c6757~j armhf [installed,automatic]
  1. Use nighly kernel:
    sudo armbian-config
    System - Nightly (Switch to nightly automated builds)
    or
    edit /etc/apt/sources.list.d/armbian.list
    and replace
    deb [signed-by=/usr/share/keyrings/armbian.gpg] http://apt.armbian.com jammy main jammy-utils jammy-desktop
    with
    deb [signed-by=/usr/share/keyrings/armbian.gpg] http://beta.armbian.com jammy main jammy-utils jammy-desktop
    Then update your kernel and other: sudo apt update && sudo apt upgrade
q@rock-5b:~$ sudo apt list --installed | grep trunk

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

armbian-bsp-cli-rock-5b/now 23.02.0-trunk.0247 arm64 [installed,local]
armbian-config/now 23.02.0-trunk.0247 all [installed,local]
armbian-firmware/now 23.02.0-trunk.0247 all [installed,local]
armbian-jammy-desktop-gnome/now 23.02.0-trunk.0247 all [installed,local]
armbian-plymouth-theme/now 23.02.0-trunk.0247 all [installed,local]
linux-dtb-legacy-rockchip-rk3588/now 23.02.0-trunk.0242 arm64 [installed,local]
linux-headers-legacy-rockchip-rk3588/now 23.02.0-trunk.0242 arm64 [installed,local]
linux-image-legacy-rockchip-rk3588/now 23.02.0-trunk.0242 arm64 [installed,local]
linux-libc-dev/now 23.02.0-trunk.0247 arm64 [installed,local]
linux-u-boot-rock-5b-legacy/now 23.02.0-trunk.0247 arm64 [installed,local]
  1. Use performance mode in cpu/gpu/dmc:
    Create bash script and run it to switch between performance and ondemand modes.
q@rock-5b:~$ cat ./sw-perf.sh
#!/bin/bash

s="performance"
if [ "$s" == "$(cat /sys/class/devfreq/fb000000.gpu/governor)" ] ;then
    echo simple_ondemand > /sys/class/devfreq/fb000000.gpu/governor
    echo ondemand > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
    echo ondemand > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
    echo ondemand > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor
    echo dmc_ondemand > /sys/class/devfreq/dmc/governor
else
    echo "$s" > /sys/class/devfreq/fb000000.gpu/governor
    echo "$s" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
    echo "$s" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
    echo "$s" > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor
    echo "$s" > /sys/class/devfreq/dmc/governor
fi
cat /sys/class/devfreq/fb000000.gpu/governor && cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor && cat /sys/devices/system/cpu/cpufreq/policy4/scaling_governor && cat /sys/devices/system/cpu/cpufreq/policy6/scaling_governor && cat /sys/class/devfreq/dmc/governor
q@rock-5b:~$ sudo ~/sw-perf.sh 
[sudo] password for q: 
performance
performance
performance
performance
performance
  1. Run your app with PAN_MESA_DEBUG=gofaster:
    I’m getting ~4400-4500 score in Gnome 42.5/Wayland when running PAN_MESA_DEBUG=gofaster glmark2-wayland
2 Likes