Rock 5B RK3588 SBC preview – What works, what doesn’t in Debian 11
I’ve recently received an early sample of Radxa ROCK5 Model B (aka ROCK 5B) SBC part of the “Developer Edition” batch with 16GB RAM, and already showed the hardware and it booting successfully in Debian 11.
I’ve now spent more time with the board, and as part of the “debug party” tested performance and features in Debian 11. As one would expect, some things work OK, but others still need improvement.
Rock 5B benchmarks
Let’s run some benchmarks on the board to test performance and stability starting with SBC Bench script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$sudo./sbc-bench.sh
./sbc-bench.sh:line9:warning:setlocale:LC_MESSAGES:cannot change locale(en_US.UTF-8):No such file ordirectory
sbc-bench v0.9.8
Installing needed tools:Done.
Checking cpufreq OPP.Done(results will be available in27-41minutes).
Executing tinymembench.Done.
Executing RAM latency tester.Done.
Executing OpenSSL benchmark.Done.
Executing7-zip benchmark.Done.
Checking cpufreq OPP.Done(24minutes elapsed).
Memory performance(different CPU cores measured individually):
memcpy:5818.7MB/s(0.2%)
memset:21920.2MB/s
memcpy:10457.5MB/s
memset:28493.1MB/s(1.2%)
memcpy:10424.6MB/s
memset:28501.9MB/s(0.6%)
7-zip total scores(3consecutive runs):16243,16303,16200
OpenSSL results(different CPU cores measured individually):
If you look at the full results, you’ll notice the Cortex-A76 cores on my board are only clocked at up to 2,304 MHz, instead of the 2.4GHz advertiser, and we’ve already looked as to why in your post about PTVM. So that just means they are some RK3588 processors may be very slightly faster or slower due to normal differences that occured during manufacturing. It’s quite possible that mass-manufactured boards will all be sold with the OS set to run the processor at up to 2.2 or 2.3 GHz by default. For reference, the CPU temperature reached up to 62.8°C during the benchmark, so the heatsink/fan combo on the developer edition board is doing its job.
Rock 5B is clearly ahead of other SBCs when compared to Raspberry Pi 4, Khadas VIM4, and ODROID-N2+, especially when it comes to memory bandwidth, but the four Cortex-A76 and four Cortex-A55 cores from Rockchip RK3588 also help a great deal with 7-zip. AES-256 results shows it does not matter whether a Cortex-A72 or Cortex-A76 CPU is used for this type of workload as it scales with frequency. That’s at least true for processor with Armv8 Crypto extension which are missing on the Broadcom BCM2711 CPU found in the Raspberry Pi board.
An important side note is that I had to run sbc-bench.sh four times before completing the run. That’s because my board is not quite as stable as other beta testers, and it will reboot without warning from time to time. It can happen under load or at idle, and after extensive testing, it does not appear related to the power supply/USB cable, CPU frequency, or overheating. It just happens and there’s no output in the serial console.
That’s 205MB/s sequential read speed and 40 MB/s sequential write speed, and the random read/write values looks to be fairly OK to me.
Now let’s test one of the USB 3.0 Type-A (5Gbps) ports with ORICO USB 3.2 Gen 1 enclosure fitted with an Apacer NVMe SSD capable of up to 1,800 MB/s reads, and 1,100 MB/s writes:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$sudo iozone-e-I-a-s10000M-r16384k-i0-i1
Include fsync inwrite timing
O_DIRECT feature enabled
Auto Mode
File size set to10240000kB
Record Size16384kB
Command line used:iozone-e-I-a-s10000M-r16384k-i0-i1
375 MB/s writes, and 320 MB/s reads. For reference, 375MB/s corresponds to 3 Gbps, so even taking USB overhead into account, there should still be some optimizations to boost that further.
Let’s now move the M.2 SSD from the USB enclosure directly to the Rock 5B board. I’ve kept the thermal pad and “heatsink” from the ORICO enclosure.
Oops, the board will not boot anymore with no display output and no networking. So I attached a USB-to-serial debug board and noticed the eMMC flash appeared to be damaged:
Since I don’t have a USB eMMC flash adapter with me, I prepared myself to install Debian 11 (May 1, 2022) on a microSD card, until I found out the eMMC flash module was not firmly in place in its socket. It had become slightly loose when I installed the SSD and pressing on the module fixed the error. We can now run iozone3:
Fantastic! 2.2GB/s that’s ever faster than the theoretical speed of the SSD!!! Those are obviously crazy numbers with caching involved, so let’s try one more time:
It’s the same as the last test, so the numbers we’ve got over NVMe/PCIe x4 Gen 3.0 are … about 1401 MB/s sequential read speed, and 650 MB/s sequential write speed.
I wanted to try microSD card support as well, but sadly, it appears the only microSD card I have with me is physically damaged… So I get a bunch of I/O errors unrelated to Rock 5B, as the card, taken from a Raspberry Pi, will not work on the Pi board either…
Video Output
As we’ve seen in the first part of the review, the HDMI port next to the USB ports works fine, but the HDMI port next to it does not.
I’ve also tried to connect a MINIX USB Type-C dock to check if DisplayPort alt mode would work, but it did not either. More than that latter though. Debian 11 will only show the display attached to the first HDMI port in all cases.
Networking (WiFi & 2.5GbE)
One key selling point of the Rock 5B SBC is its networking capabilities. It comes a with 2.5GbE port, and supports WiFI 6 M.2 cards.
Let’s try by testing the 2.5GbE port with iperf3 first.
We’re getting close to Gigabit Ethernet speeds at close to 870 Mbps, but for the download test at least we can see a lot of variability and retries… For reference, the Xiaomi Mi AX6000 router used for testing is placed at around one meter from the board, and a Ubuntu 20.04 laptop connected to a Realtek RTL8156BG 2.5GbE to USB 3.0 dongle can be found on the other side of the connection.
Bluetooth
Since the module is supposed to support Bluetooth too, I planned to test Bluetooth with my phone, but Bluetooth is not enabled by default.
USB on ROCK 5B
We’ve already done some USB testing with in the storage and display sections, but here’s what it looks when USB keyboard and mouse, as well as the MINIX USB-C dock are connected:
We have a bunch of USB 2.0 (480M) and USB 3.0 (5000M) devices as expected, plus slower HID devices that are our mouse and keyboard.
But when I connect the MINIX USB-C dock I get plenty of errors:
1
2
3
4
5
6
7
8
9
10
[179.375225]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[180.488474]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[182.258877]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[183.198591]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[184.308701]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[185.418519]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[186.698916]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[187.638708]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[188.785447]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[204.445990]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
and the login screen will never show up on the display, just a blinking underscore on the top left of the screen. If I remove the MINIX USB-C dock, I can boot the board fully again, and Bus 09 and 10 are gone:
I had used Khadas VIM4 board’s 5V/3A power supply, so I decided to switch to a 100W GAN USB-C power adapter just in case the 480GB SSD drew a bit too much power. It boots just fine now, although I have a few errors at boot time:
[28.187045]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[29.827028]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
[30.770419]usb usb10-port1:Cannot enable.Maybe the USB cable isbad?
Those errors do not show continuously like previously. The idle power consumption is 10.1W with the internal 256GB NVMe SSD and USB-C dock with a 480GB SSD. But there are still some issues since the 480GB SSD does not show up at all:
1
2
3
4
5
6
7
8
9
rock@rock-5b:~$lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk1179:0014.5G0disk
|-mmcblk1p1179:10512M0part
`-mmcblk1p2179:2013.9G0part/
mmcblk1boot0179:3204M1disk
mmcblk1boot1179:6404M1disk
nvme0n1259:00238.5G0disk
`-nvme0n1p1259:10238.5G0part
So the USB 2.0/3.0 Type-A ports work fine, but the USB-C port may have some issues.
GPIO testing
Rockchip RK3588 is supposed to have five GPIO banks numbered from GPIO0 to GPIO4, but I can see six in the Debian image:
1
2
3
4
5
6
7
$ls-l/dev/gpiochip?
crw-------1root root254,0Jul2007:50/dev/gpiochip0
crw-------1root root254,1Jul2007:50/dev/gpiochip1
crw-------1root root254,2Jul2007:50/dev/gpiochip2
crw-------1root root254,3Jul2007:50/dev/gpiochip3
crw-------1root root254,4Jul2007:50/dev/gpiochip4
crw-------1root root254,5Jul2007:50/dev/gpiochip5
Radxa provides the pinout and explains how to calculate the GPIO pin numbers in the Wiki.
We can try to pull up and down GPIO4_C6 (pin 27 on the 40-pin header) as follows:
1
2
3
4
5
6
cd/sys/class/gpio
sudo sh-c'echo 150 > export'
cd gpio150
sudo sh-c'echo out > direction'
sudo sh-c'echo 1 > value'
sudo sh-c'echo 0 > value'
We’re also told the Rock 5B board supports the libmraa GPIO library, but there’s no documentation for that just yet.
[3.902449]I:[File]:drivers/gpu/arm/mali400/mali/linux/mali_kernel_linux.c;[Line]:405;[Func]:mali_module_init();svn_rev_string_from_arm of thismali_ko is'',rk_ko_ver is'5',built at'11:53:13',on'Jun 24 2022'.
[3.902916]Mali:
[3.902920]Mali device driver loaded
[29.166873]mali fb000000.gpu:Loading Mali firmware0x1010000
[29.167347]mali fb000000.gpu:Protectedmemory allocator notfound,Firmware protectedmode entry will notbe supported
[29.167364]mali fb000000.gpu:Protectedmemory allocator notfound,Firmware protectedmode entry will notbe supported
[29.167371]mali fb000000.gpu:Protectedmemory allocator notfound,Firmware protectedmode entry will notbe supported
So no luck here at this point in time.
VPU (Video Processing Unit)
I could not find any documentation of a tool to play videos using hardware video decoding in Linux, so I haven’t tested it. As a side note, 4K video playback works great in Android 12, except for AV1 where I had issues. As a side note,tThe processor should be powerful enough to play 1080p video using software decoding.
NPU / AI accelerator
The 6.0 TOPS NPU also shows up, but with plenty of errors:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[3.595733]vdd_npu_s0:supplied by vcc5v0_sys
[3.599908]vdd_npu_s0:550<-->950mV at812mV,enabled
[3.860468]rockchip-pm-domain fd8d8000.power-management:power-controller:Looking up npu-supply from device tree
[3.860490]rockchip-pm-domain fd8d8000.power-management:power-controller:Looking up npu-supply propertyinnode/power-management@fd8d8000/power-controller failed
The NPU is not well documented, and the error messages do not look promising, so I have not tested it yet, and once it works it will probably warrant a separate post. Note that the NPU SDK for RK3588, and other newer Rockchip processors such as RK3566/68, is not the same as for RK1808 or RK3399Pro, and can now be found in RKNPU2 repository.
HDMI input on Rock 5B
Sadly, I don’t have a micro HDMI cable with me so I can’t test it in detail, but based on information from Firefly wiki, HDMI input will work in Linux too, and is properly detected in Rock 5B:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
rock@rock-5b:/usr/local$v4l2-ctl-d/dev/video0-V-D
Driver Info:
Driver name:rk_hdmirx
Card type:rk_hdmirx
Bus info:fdee0000.hdmirx-controller
Driver version:5.10.66
Capabilities:0x84201000
Video Capture Multiplanar
Streaming
Extended Pix Format
Device Capabilities
Device Caps:0x04201000
Video Capture Multiplanar
Streaming
Extended Pix Format
Format Video Capture Multiplanar:
Width/Height:640/480
Pixel Format:'RGB3'(24-bit RGB8-8-8)
Field:None
Number of planes:1
Flags:premultiplied-alpha,0x000000fe
Colorspace:Unknown(0x08393800)
Transfer Function:Default
YCbCr/HSV Encoding:Unknown(0x000000ff)
Quantization:Default
Plane0:
Bytes per Line:1920
Size Image:921600
and HDMI input audio also shows up:
1
2
3
4
5
6
7
8
9
10
11
12
13
$sudo cat/proc/asound/card*
cat:/proc/asound/card0:Isadirectory
cat:/proc/asound/card1:Isadirectory
cat:/proc/asound/card2:Isadirectory
cat:/proc/asound/card3:Isadirectory
0[rockchiphdmi0]:rockchip-hdmi0-rockchip-hdmi0
rockchip-hdmi0
1[rockchiphdmi1]:rockchip-hdmi1-rockchip-hdmi1
rockchip-hdmi1
2[rockchipes8316]:rockchip-es8316-rockchip-es8316
rockchip-es8316
3[rockchiphdmiin]:rockchip_hdmiin-rockchip,hdmiin
rockchip,hdmiin
So it looks promising. Having a full-size HDMI port would have been nice, but I understand space is limited on that type of board.
Power consumption
Some power consumption numbers for reference:
Power off with fan – 1.5 Watts
Power off without fan – 0.6 Watts
Ilde with fan – 5 Watts
Idle without fan – 4.2 Watts
Stress test on all 8 cores with fan, NVMe SSD connected – 11.3 Watts
The developer edition board is using a dumb fan that uses about almost one watt, but it should be possible to create fanless solutions as demonstrated with Mekotronics R58 mini PC.
Summary
Here’s a summary of what works and what doesn’t in the Debian 11 image that shipped with the board, plus the parts I was unable to test for various reasons.
Feature
Remark
Storage
NVME OK with good performance
eMMC flash OK
microSD card (no working microSD, not tested)
Video Output
HDMI (Next to USB ports) - OK
Other HDMI ports and USB-C Displayport Alt mode - Failed
HDMI input
Detected (video and audio) but not tested due to lack of cable
Networking
2.5GbE OK with great performance
WiFi 6 OK with up to 870 Mbps, but highly varying throughput
Bluetooth
Not working/not enabled
USB
USB 2.0 and USB 3.0 Type-A ports - OK
USB Type-C port had issues with a MINIX USB-C dock
GPIO
OK, tested with sysfs
GPU
Software rendering only
VPU (Video Processing Unit)
Not tested, as unsure which tools to use for hardware video playback
NPU
Shows up in kernel, but with plenty of errors
MIPI CSI
Not tested, no hardware
If you need fast networking and storage, the board is already great, but there are still many parts to work on or provide documentation for. We’ll see how it evolves, and I might also try to investigate why my board randomly (and silently) reboots.
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.
This website uses cookies to improve your experience. We'll assume you're ok with this, but if you don't like these, you can remove them Accept
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the ...
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.