[Guide] Best Options for a Single Board Computer šŸŽ®

Best Options - For a ā€˜Gamingā€™ Rockchip Single Board

This is my experience more for a more gaming experience and as I love the web apps this is the system I can recommend yous. Hereā€™s to take the best Rock 5A/B resources:


Ubuntu Rockchip by @Spooky = Rock 5A / Rock 5B

Project Afterburner - ARMory Gaming = Rock 5A / Rock 5B - by @monka

Radxa Official = Rock 5A / Rock 5B / SPI Reset

Debian Image Builder by @c0rnelius and @tenkawa

Arch Linux / Script Installer by @kwankiu


For all other available images for the Radxa Rockchips RK3588/S:

RPI Radxa Repo : Flash your images directly via RPI Imager from a radxa collection by @kwankiu

  • Install rpi imager then run rpi-imager --repo https://rock5-images-repo.github.io

šŸ–±ļøFlash SPI via Terminal:šŸ–±ļø

To install the system to your nvme from and sd card, open a terminal and type:

sudo u-boot-install-mtd /dev/mtdblock0
sudo ubuntu-rockchip-install /dev/nvme0n1

Notes:

  • if downloading with wget use condition ā€“no-check-certificate to avoid the download to fail or use an app like jdownloader.

  • After starting the system you most likely have to open your disk storage and perform a disk resize

  • Some systems start in x11 so you will notice that the system fails to deliver its brilliant performance at launch make sure you switch gnome to wayland.


For this guide I took the liberty of using nala as a main option for this board:
Do your operations with nala instead of apt:
(Itā€™s faster - Itā€™s modern - Itā€™s graphically easier - Has better debug)
sudo apt update && sudo apt install nala -y && sudo nala upgrade -y


Chrome optimizations flags

sudo gedit /etc/chromium-browser/default

malirun chromium-browser (terminal boster for an extra kick - optional)

#Set Chromium ozone to Wayland only if you intend to use Gnome Wayland
--ozone-platform=wayland
--enable-zero-copy
#Set user agents specifically so it works on Netflix with widevine
--user-agent="Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" --accept-lang=en-US
#Fixes Chromium browser pixelation bug on wayland
--use-gl=angle


For the fan heatsink to work: (Armbian - might not be required in further armbian updates.)

git clone https://github.com/lukaszsobala/fan-control-rock5b
cd fan-control-rock5b
make package
sudo dpkg -i fan-control*.deb
sudo systemctl enable fan-control
systemctl start fan-control

#Rock 5A
sudo su
echo step_wise > /sys/class/thermal/thermal_zone0/policy
exit
sudo reboot

The fix for some Bluetooth Modules (A8, AX210, etc.):
sudo nano /etc/modprobe.d/blacklist.conf
then add these lines somewhere (at the bottom of the file is fine):

blacklist pgdrv
blacklist btusb
blacklist btrtl
blacklist btbcm
#blacklist btintel

Then press Ctrl+X, then Y.
sudo apt install bluez or bluetooth ā€“ not needed to install since latest armbian version
systemctl status bluetooth CTRL+ C
systemctl start bluetooth
Then reboot .

For AX210 Wifi and BT to Work - You will need ethernet to do this.

#wifi
sudo wget -P /lib/firmware https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-ty-a0-gf-a0-59.ucode
sudo mv /lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm /lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm.bak

#bt
sudo wget -P /lib/firmware/intel https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/ibt-0041-0041.sfi
sudo wget -P /lib/firmware/intel https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/ibt-0041-0041.ddc

Max out the 5B performance (Optional) - Thatā€™s if you want some real performance at the cost of being hot and power-hungry.

echo performance | sudo tee /sys/bus/cpu/devices/cpu[046]/cpufreq/scaling_governor /sys/class/devfreq/dmc/governor /sys/class/devfreq/fb000000.gpu/governor

Once youā€™re done with your benchmarks, you may want to go back:

echo ondemand | sudo tee /sys/bus/cpu/devices/cpu[046]/cpufreq/scaling_governor
echo dmc_ondemand | sudo tee /sys/class/devfreq/dmc/governor
echo simple_ondemand | sudo tee /sys/class/devfreq/fb000000.gpu/governor

Or if you want a shortcut for performance / ondemand and powersave do nano .bash_aliases and add these instructions - save it Ctrl X, Yes, restart and after just type the governor you desire Terminal: performance to trigger it.

alias performance="echo performance | sudo tee /sys/bus/cpu/devices/cpu[046]/cpufreq/scaling_governor /sys/class/devfreq/dmc/governor /sys/class/devfreq/fb000000.gpu/governor"
alias ondemand="echo ondemand | sudo tee /sys/bus/cpu/devices/cpu[046]/cpufreq/scaling_governor && echo dmc_ondemand | sudo tee /sys/class/devfreq/dmc/governor && echo simple_ondemand | sudo tee /sys/class/devfreq/fb000000.gpu/governor"
alias powersave="echo powersave | sudo tee /sys/bus/cpu/devices/cpu[046]/cpufreq/scaling_governor /sys/class/devfreq/dmc/governor /sys/class/devfreq/fb000000.gpu/governor"

** Try some benchmarks - on Ubuntu Wayland to guarantee you are all set.**

sudo apt install mesa-utils glmark2 glmark2-es-wayland -y

PAN_MESA_DEBUG=gofaster glmark2 
Expected results: 1st Line - 1669fps - Score: 1249fps - you are good.

PAN_MESA_DEBUG=gofaster glmark2-es2-wayland 
Expected results: 1st Line - 3527fps - Score: 4067fps - you are sorted.

LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/mali glmark2-es2-wayland 
Expected results: 1st Line - 4229fps - Score: 3933fps - what a legend.

Try chromium with malirun chromium-browser on terminal for some extra performance (malirun works with other apps too).


Play Geforce Now via Chromium Browser well optimised on this little Rock 5B!


Play Boosteroid too!

20230614_224149
Diablo 4 on boosteroid ? Hell Yeah Boy!


Steam Installation Guide



Install Malior-Droid for the Android fun with Scrypy Container

sudo nala install docker docker.io adb -y
sudo mkdir /dev/binderfs
sudo mount -t binder binder /dev/binderfs
wget -O - https://github.com/ChisBread/malior/raw/main/install.sh > /tmp/malior-install.sh && bash /tmp/malior-install.sh  && rm /tmp/malior-install.sh 
malior update
malior install malior-droid
malior-droid update

Install scrpy version 2.0 that is needed for audio forwarding from the android docker container

sudo nala install ffmpeg libsdl2-2.0-0 adb wget gcc git pkg-config meson ninja-build libsdl2-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libswresample-dev libusb-1.0-0 libusb-1.0-0-dev -y
git clone https://github.com/Genymobile/scrcpy
cd scrcpy
./install_release.sh

Start the Android Emulator on Terminal:

#malior-droid start / stop / restart
malior-droid start
adb connect localhost:5555
scrcpy -s localhost:5555
malior-droid resize 720x1280

#malior-droid resize 1920x1080


Change it to english this way. Just drag and drop your .apk file into the android window it will auto install it.

App to map the gamepad controller sudo nala install antimicro

To become certified with access to the play store you have to:
1 - Install a device ID apk to get this Device ID and register it on your google account.
2 - Register it here: https://www.google.com/android/uncertified/
3 - Give it a day till google approval happens. (Hours minutes or maybe 1 day not in our control).

Credits to @bread for this.
Sources: https://github.com/ChisBread/malior/


@NicoD Has also a gaming script that works for all rockchip single boards:

    _   __ _               ____     ______                   _                  
   / | / /(_)_____ ____   / __ \   / ____/____ _ ____ ___   (_)____   ____ _    
  /  |/ // // ___// __ \ / / / /  / / __ / __ `// __ `__ \ / // __ \ / __ `/    
 / /|  // // /__ / /_/ // /_/ /  / /_/ // /_/ // / / / / // // / / // /_/ /     
/_/ |_//_/ \___/ \____//_____/   \____/ \__,_//_/ /_/ /_//_//_/ /_/ \__, /      
    __     _                        _____              _         __/____/       
   / /    (_)____   __  __ _  __   / ___/ _____ _____ (_)____   / /_            
  / /    / // __ \ / / / /| |/_/   \__ \ / ___// ___// // __ \ / __/            
 / /___ / // / / // /_/ /_>  <    ___/ // /__ / /   / // /_/ // /_              
/_____//_//_/ /_/ \__,_//_/|_|   /____/ \___//_/   /_// .___/ \__/              
                                                     /_/                        
git clone https://github.com/NicoD-SBC/armbian-gaming.git
cd armbian-gaming
/bin/bash ./armbian-gaming.sh
#Install box64/box86 and steam and malior-droid.

More useful stuff on Linux:

#--OBS--
sudo nala install obs-studio obs-gstreamer obs-plugins xdg-desktop-portal pipewire qtwayland5 librga2 gstreamer1.0-rockchip1 -y
#RESTART here and then run OBS with:
MESA_GL_VERSION_OVERRIDE=3.3 MESA_GLSL_VERSION_OVERRIDE=330 obs
#--this is the way it works on armbian not sure if needs changed for FydeOS

#for a better desktop experience dont use nala on ubuntu-desktop
sudo apt install ubuntu-desktop

sudo nala install htop -y
sudo nala install neofetch -y
sudo nala install bpytop -y
sudo nala install snapd -y
sudo nala install emojione -y
sudo nala install kodi -y
sudo nala install inkscape -y
sudo nala install flatpak gnome-software-plugin-flatpak squashfs-tools && sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo nala install gnome-software gnome-packagekit -y

# or all at once and correctly
sudo nala update && sudo nala install htop bpytop neofetch snapd flatpak xcb obs-studio obs-gstreamer obs-plugins xdg-desktop-portal pipewire qtwayland5 wpasupplicant librga2 gstreamer1.0-rockchip1 gnome-software-plugin-flatpak squashfs-tools gnome-software gnome-packagekit kodi inkscape -y && sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo && sudo nala upgrade -y && sudo nala autoremove
sudo reboot
exit


Eta Prime made us a video about this specific image! EnJoy!

Im not an linux expertā€¦ compiling kernels makes me a lot of confusion so I have a lot to learn yetā€¦ but I like to share my experience hoping it helps you the same way it helped me.


Also very importantā€¦ : Grab a proper power supply like Samsung 45W TA845 Super Fast Charger (works perfect) connected with Emmc, Micro SD, A8 module, 1TB Nvme, K7 keyChron BT Keyboard and a cheap BT mouse with a scorpion logo via usb dongle it all works with also a JBL Flip 5 BT speaker perfectly fine between images and so longā€¦ If thereā€™s an usb type C power brick that I can say YES it works itā€™s this one.

SP1 to boot Rock5b running Armbian from NVMe SSD
http://www.fieldday.io/armbian-rock5b/

This post is made possible thanks to a few members who helped me a lot on Discord so I want to thank them and off course many others did help too (but I canā€™t find all their names here). Discord for a more direct approach: Radxa Discord

Credits goes to all who this possible and also a group of talented users: @GinKage @igorp @amazingfate @NicoD


Another guide to install steam step by step on rock 5B here:


Im open to suggestions and improvements and more additional stuff we can add to this system and improve our experience.

11 Likes

Is this image stable or not? I heard only 5V/3A USB-C adapter is stable and the PD on Armbian still is still borken/not workingā€¦ I have 65w USB-C adapter but seems PD handshake but not stable when in use.
I tried Armbian, however for some unknown reason my rock5b reboot or freezes sometimes.

It hasnt to do with the imageā€¦ but the rockchip itself.
Like I mentioned in my post I use the Samsung 45w and it handles all cards on deck perfectly fine.
I had also suggested for whoever has power issues to re-flash the SPI with the provided files also to clear it from any constraintsā€¦ do an clean spi flash and then check if it still happens.

1 Like

whatā€™s the spi flash file? Could you kindly share the link you mentioned? Also if possible could you please also indicate the model/part number of your Samsung usbc adapter? I tried 4 or 5 usbc adapter but all have reboot or freeze issue. Thanks mate in advance :stuck_out_tongue:

Hmā€¦ OK, so the complete (but short) guide for SPI flashing on the board itself would be:

wget https://dl.radxa.com/rock5/sw/images/others/zero.img.gz
gzip -d zero.img.gz
sudo dd if=zero.img of=/dev/mtdblock0

Wait ~5 minutes for the command to complete, check that sudo md5sum /dev/mtdblock0 returns 2c7ab85a893283e98c931e9511add182. Then:

wget https://dl.radxa.com/rock5/sw/images/loader/rock-5b/release/rock-5b-spi-image-g49da44e116d.img
sudo dd if=rock-5b-spi-image-g49da44e116d.img of=/dev/mtdblock0

Wait ~5 minutes for the command to complete, check that this time sudo md5sum /dev/mtdblock0 returns 46de85de37b8e670883e6f6a8bb95776. Then:

sync
reboot

For more info: https://wiki.radxa.com/Rock5/install/spi

Samsung 45W - super fast charger its on samsung page just google it or check on samsung page.
Edit: And yes I tried a bunch none of them can handle the Rock 5B the rpi4b power brick from pi hunt doesnt even makes it boot if I plug my k7 keyboard without it plugged it boots. In short you need the strongest and filtered type of PD QC energy flowing and since the Samsung 45W is made to power the galaxy chromebook its more reliable at least for meā€¦ its on the 5 star level.

Also keep in mind you canā€™t just use any type of usb c cableā€¦ you need a powered type c cable like the ones of 100W type C cables they are fat compared to the shitty ones. If your charger is too over-powered for your cable you can end up with a burnt board.
( I have seen this happened before ).

Really appreciate mate. Iā€™m going to grab that Samsung 45W charger and make that SPI flashing. Thanks again!

1 Like

Add the 4k type C cableā€¦ otherwiseā€¦ u can end up with this

emmā€¦ interesting DIY jobā€¦ I got a lot of USB-C cables including some thunderbolt usb-c cables. Should be the problem caused by adapter.

1 Like

zero.img.gz can bring help: formerly I flash the specific SPI img for Armbian NVME bootup, then usb-c power supplying became not stable. After switching back to zero.img.gz, 5V/3A adapter now can support one NVME and one SD cardā€™s power consumption. But I will still buy that Samsung 45W charger. Thanks again, and any further experience sharing is highly welcomed!

1 Like

Just passing along. My notes on how I updated SP1 to boot Rock5b running Armbian from NVMe SSD.

http://www.fieldday.io/armbian-rock5b/

3 Likes

thanks for sharing ,will try your article method.

2 Likes

What is the login password?

user: rock , password : armbian

I have installed and started it, but sometimes Google Play store can be opened and sometimes it can not be opened.
There is no video when playing YouTube, and the screen is black. What is the reason? My network is normal.

Google play store is part of waydroid. @monka made it work but if you do sudo updates it wont anymore.
The reason relies on Waydroid not being available to Rockchip GPU drivers or something. He can explain that betterā€¦ in other wordsā€¦ forget waydroid for nowā€¦
Youtube works fine for me I dont have any black screen.

how about the gpu performance? I ran the glmark2 which results the mark of1200. Is that normal?

Those are rookie numbers, letā€™s pump them up.
So, letā€™s say youā€™ve set CPU+GPU+DMC to performance, weā€™re running a Wayland session in 4K, with gofaster patches, and we get:

Hm, so Iā€™m exactly where you are now. Can we do any better? What if we used a Wayland-native benchmark, and OpenGLESv2 rather than OpenGL?

Much betterā€¦ Is there any more room for improvement? Well, letā€™s try the blob driver.

Oh no, the scores are lower nowā€¦ Or are they? All eyes on the Terrain test: itā€™s actually twice as fast now! And thatā€™s the only number that actually reflects e.g. GameCube emulation performance, and the only one I really care about.

Thatā€™s the issue with benchmarks: in my experience, if I want my Dolphin emulator to run smoothly, Iā€™ll choose the blob driver. If all I care about is the desktop environment, Panfork works quite well. The benchmark scores are mostly irrelevant, really.

1 Like

Extras added to the main post:

Max out the 5B performance (Optional) - Thatā€™s if you want some real performance at the cost of being hot and power-hungry.


echo performance | sudo tee /sys/bus/cpu/devices/cpu[046]/cpufreq/scaling_governor /sys/class/devfreq/dmc/governor /sys/class/devfreq/fb000000.gpu/governor

Once youā€™re done with your benchmarks, you may want to go back:

echo ondemand | sudo tee /sys/bus/cpu/devices/cpu[046]/cpufreq/scaling_governor
echo dmc_ondemand | sudo tee /sys/class/devfreq/dmc/governor
echo simple_ondemand | sudo tee /sys/class/devfreq/fb000000.gpu/governor
1 Like

@DarkevilPT changing the CPU and GPU governor to performance is not overclocking at all, just running at the max allowed frequency all the time.

1 Like