Radxa ROCK5 Model B (aka ROCK 5B) is one of the most anticipated Rockchip RK3588 single board computers due to its features set and relatively affordable price. It was first showcased in January, but it’s taking a while as the Cortex-A76/A55 SoC is a complex beast. The good news is that the public launch is getting closer as Radxa sent “developer edition” samples to developers and enthusiasts for a “debug party”. I was one of the recipients so, in this post, I’ll have a closer look at the latest revision of the board, and give it a quick try first before going into more details in the second of this preview.
I received the 16GB RAM version which should be the same for all board part of the “developer edition batch.
Developers are invited to submit reports to Radxa forums, and since those are public, anybody can have a look at the current state of affairs.
I also got a 16GB eMMC module (FORESEE) with my board.
The design has changed a little bit with the HDMI IN connector moved to the front panel, MIPI DSI and CSI connected moved to the side edge of the PCB, and heatsink mounting holes dimensions changed to “north bridge” dimensions.
Besides the micro HDMI input ports, the front panel comes with the power and recovery keys, and a color-coded 40-pin GPIO header. As one would expect, Rockchip RK3588 should get pretty hot under load, so a 5V fan + heatsink has been fitted on top of the CPU.
The rear panel comes with a 3.5mm audio jack, a USB 3.0 Type-C port with Display Alt mode also used to power the board, two 8K-capable HDMI 2.1 ports, two USB 2.0 ports, two USB 3.0 ports, and a 2.5GbE port.
My board is also equipped with an Fn-Link 6252M-PUB WiFi 6 and Bluetooth 5.2 module powered by a Realtek RTL8852BE chip that’s not listed on the Realtek website just yet but is supposed to be an AX1800 chip with support for up to 1148 Mbps link when using 802.11ax. Something to test using the Xiaomi AX6000 and TPLink 2.5GbE donated by Radxa earlier this year.
The bottom side of the board comes with an M.2 Key-M socket for NVMe SSD, MIPI DSI LCD and MIPI CSI camera connectors, as well as an eMMC socket.
Talking about the eMMC socket, let’s install the 16GB module I’ve received. A Raspberry Pi 4 SBC is shown for scale. While Rockchip RK3588 is not the most powerful system I used, it will be “desktop-class”, and in terms of interfaces, ROCK 5B may well be the most featured board or computer I’ve ever owned with 2.5GbE, WiFi 6, 8K video output, 4K video input, support for PCIe Gen3 x4 storage, etc… That’s quite impressive for a board that should sell for just under $200.
Let’s connect a USB keyboard and mouse, an Ethernet cable, an HDMI display, and a USB-PD power supply (the one that came with Khadas VIM4).
I waited for a while, and all I got was a black screen with the message “no signal” from time to time… As you can see I connect the HDMI port next to the USB-C power port. So I tried the other HDMI port closer to the USB ports…
And success! It’s called a “debug party” for a reason, and several features ought not to work or it would no fun. I could login with “rock” password, but finally connected through SSH since it’s easier for the review.
Let’s check some system information:
rock@rock-5b:~$ uname -a
Linux rock-5b 5.10.66-10-rockchip-gc5e33d713633 #rockchip SMP Fri Jun 24 11:59:02 CST 2022 aarch64 GNU/Linux
rock@rock-5b:~$ cat /etc/issue
Debian GNU/Linux 11 \n \l
rock@rock-5b:~$ free -m
total used free shared buff/cache available
Mem: 15723 964 13790 39 968 14562
Swap: 0 0 0
rock@rock-5b:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 14G 4.3G 8.9G 33% /
devtmpfs 7.6G 0 7.6G 0% /dev
tmpfs 7.7G 0 7.7G 0% /dev/shm
tmpfs 3.1G 19M 3.1G 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 1.6G 108K 1.6G 1% /run/user/1001
rock@rock-5b:~$ sudo inxi -Fc0
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_ADDRESS = "en_GB.UTF-8",
LC_NAME = "en_GB.UTF-8",
LC_MONETARY = "en_GB.UTF-8",
LC_PAPER = "en_GB.UTF-8",
LC_IDENTIFICATION = "en_GB.UTF-8",
LC_TELEPHONE = "en_GB.UTF-8",
LC_MEASUREMENT = "en_GB.UTF-8",
LC_TIME = "en_GB.UTF-8",
LC_NUMERIC = "en_GB.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Host: rock-5b Kernel: 5.10.66-10-rockchip-gc5e33d713633 aarch64 bits: 64
Console: tty 0 Distro: Debian GNU/Linux 11 (bullseye)
Type: ARM Device System: Radxa ROCK 5B details: N/A
Info: 8-Core (3-Die) model: N/A variant-1: cortex-a76
variant-2: cortex-a55 bits: 64 type: MCP MCM
Speed: 408 MHz min/max: 408/1800:2304 MHz Core speeds (MHz): 1: 408
2: 1200 3: 1200 4: 1200 5: 1416 6: 1416 7: 408 8: 408
Device-1: display-subsystem driver: rockchip_drm v: N/A
Device-2: mali-bifrost driver: mali v: N/A
Device-3: rk3588-dw-hdmi driver: dwhdmi_rockchip v: N/A
Device-4: rk3588-dw-hdmi driver: dwhdmi_rockchip v: N/A
Display: server: X.org 1.20.11 driver: loaded: dwhdmi_rockchip
note: n/a (using device driver) tty: 80x24
Message: Advanced graphics data unavailable in console for root.
Device-1: simple-audio-card driver: asoc_simple_card
Device-2: rk3588-dw-hdmi driver: dwhdmi_rockchip
Device-3: rk3588-dw-hdmi driver: dwhdmi_rockchip
Device-4: hdmi driver: rk_hdmi_sound
Device-5: hdmi driver: rk_hdmi_sound
Device-6: simple-audio-card driver: asoc_simple_card
Sound Server: ALSA v: k5.10.66-10-rockchip-gc5e33d713633
Device-1: Realtek driver: rtl8852be
IF: wlan0 state: down mac: 0e:9e:01:31:2b:d4
Device-2: Realtek RTL8125 2.5GbE driver: r8125
IF: enP4p65s0 state: up speed: 2500 Mbps duplex: full
IF-ID-1: wlP2p33s0 state: down mac: ba:4e:a7:16:41:a3
Local Storage: total: 14.45 GiB used: 4.23 GiB (29.3%)
ID-1: /dev/mmcblk1 model: D9D16G size: 14.45 GiB
ID-1: / size: 13.7 GiB used: 4.23 GiB (30.9%) fs: ext4 dev: /dev/mmcblk1p2
Alert: No Swap data was found.
System Temperatures: cpu: 38.8 C mobo: N/A
Fan Speeds (RPM): N/A
Processes: 268 Uptime: 32m Memory: 15.35 GiB used: 1.16 GiB (7.5%)
Init: systemd runlevel: 5 Shell: Bash inxi: 3.3.01
The processor is clocked at up to 2304 Mhz, and the system is using the same Linux 5.10.66 as in Android 12 on Mekotronics R58. Mainline Linux may eventually happen but it will take a long time. Inquiring minds may also be interested in the boot log.
Let’s have a quick performance check with sbc-bench benchmark:
./sbc-bench.sh: line 9: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory
Average load and/or CPU utilization too high (too much background activity). Waiting...
Too busy for benchmarking: 04:31:48 up 37 min, 2 users, load average: 0.25, 0.16, 0.14, cpu: 1%
Too busy for benchmarking: 04:31:53 up 37 min, 2 users, load average: 0.23, 0.16, 0.14, cpu: 0%
Too busy for benchmarking: 04:31:58 up 37 min, 2 users, load average: 0.21, 0.15, 0.14, cpu: 0%
Too busy for benchmarking: 04:32:03 up 37 min, 2 users, load average: 0.20, 0.15, 0.14, cpu: 0%
Too busy for benchmarking: 04:32:08 up 37 min, 2 users, load average: 0.18, 0.15, 0.14, cpu: 0%
Too busy for benchmarking: 04:32:13 up 38 min, 2 users, load average: 0.16, 0.14, 0.14, cpu: 0%
Installing needed tools: apt -f -qq -y install sysstat curl lshw , tinymembench, ramlat, mhz. Done.
Checking cpufreq OPP. Done (results will be available in 22-32 minutes).
Executing tinymembench...client_loop: send disconnect: Broken pipe
Oops! The board actually crashed and rebooted during the benchmark. Let’s try again, while monitoring dmesg just in case this happens again.
[ 619.676449] sbc-bench started
[ 1238.947280] PM: suspend entry (deep)
[ 1238.950010] Filesystems sync: 0.002 seconds
client_loop: send disconnect: Broken pipe
Sadly, it’s the same results, and dmesg does not provide any useful information. So instead, I’ll use tkaiser results for 7-zip:
7-Zip (a)  16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,8 CPUs LE)
For reference, here are the results for Raspberry Pi 4 @ 2.0 GHz (with heatsink and fan):
It seems neither throttling nor frequency capping has occured.
memcpy: 2547.2 MB/s
memset: 3651.0 MB/s (0.8%)
7-zip total scores (3 consecutive runs): 6900,6877,6939
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128-cbc 83479.79k 102077.25k 110821.72k 112916.14k 113631.23k 113541.12k
aes-128-cbc 83514.12k 102155.14k 110784.17k 112935.59k 113573.89k 113382.74k
aes-192-cbc 67566.13k 86925.76k 95294.38k 97361.58k 98189.31k 98331.31k
aes-192-cbc 75028.43k 90016.62k 96037.97k 97670.83k 98301.27k 98178.39k
aes-256-cbc 68036.63k 79945.09k 84813.82k 86112.60k 86035.11k 86338.22k
aes-256-cbc 61634.20k 77697.69k 84171.18k 85799.94k 86406.49k 86474.75k
Full results uploaded to http://ix.io/1PxG. Please check the log for anomalies (e.g. swapping
or throttling happenend) and otherwise share this URL.
… and the more powerful (and expensive) UP Xtreme i11 Tiger Lake mini PC (Intel Core i7-1185GRE):
memcpy: 14978.9 MB/s (0.6%)
memset: 20059.3 MB/s (0.2%)
7-zip total scores (3 consecutive runs): 18257,18138,18084
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128-cbc 714465.65k 1752591.06k 1960455.00k 2001776.30k 2012940.97k 2019595.61k
aes-128-cbc 1117239.41k 1860059.97k 1957394.18k 1985099.43k 2004708.01k 2013719.21k
aes-192-cbc 1040431.18k 1598258.56k 1674556.42k 1696940.03k 1709481.98k 1711412.57k
aes-192-cbc 1027839.14k 1589334.61k 1664330.24k 1689908.22k 1696929.11k 1697174.87k
aes-256-cbc 971862.18k 1396062.04k 1450506.92k 1471090.01k 1480048.64k 1471971.33k
aes-256-cbc 975878.30k 1403145.64k 1445398.27k 1470802.60k 1475925.33k 1477591.04k
Full results uploaded to http://ix.io/3RnJ.
If we look specifically at 7-zip benchmarks, ROCK 5B is 2.4 times faster than an overclocked Raspberry Pi 4 and can deliver about 90% of the performance of an Intel Core i7-1185GRE processor. Not too shabby :). Stability may have to be worked on though, as I’ve been unable to run the benchmark on my own board.
This looks promising. In the second part, besides running benchmarks, I test various peripherals, 3D graphics, video playback (probably software decode at this stage), etc…, and see how it performs as a desktop machine.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.