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: line 9: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory sbc-bench v0.9.8 Installing needed tools: Done. Checking cpufreq OPP. Done (results will be available in 27-41 minutes). Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Checking cpufreq OPP. Done (24 minutes elapsed). Memory performance (different CPU cores measured individually): memcpy: 5818.7 MB/s (0.2%) memset: 21920.2 MB/s memcpy: 10457.5 MB/s memset: 28493.1 MB/s (1.2%) memcpy: 10424.6 MB/s memset: 28501.9 MB/s (0.6%) 7-zip total scores (3 consecutive runs): 16243,16303,16200 OpenSSL results (different CPU cores measured individually): type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 166016.73k 481326.98k 935623.51k 1231227.90k 1355688.62k 1365895.85k (Cortex-A55) aes-128-cbc 635522.45k 1307613.63k 1670568.36k 1782235.82k 1826261.67k 1832135.34k (Cortex-A76) aes-128-cbc 638225.59k 1304051.80k 1665359.53k 1776506.20k 1820434.43k 1826379.09k (Cortex-A76) aes-192-cbc 157064.37k 431452.22k 764915.71k 948517.55k 1020783.27k 1026446.68k (Cortex-A55) aes-192-cbc 599479.94k 1143266.13k 1411767.89k 1470007.98k 1523758.42k 1527644.16k (Cortex-A76) aes-192-cbc 599362.62k 1139635.80k 1407392.09k 1465393.83k 1518720.34k 1522652.50k (Cortex-A76) aes-256-cbc 152304.29k 393035.69k 657636.10k 792066.39k 842295.98k 846255.45k (Cortex-A55) aes-256-cbc 600001.83k 1016406.98k 1223527.85k 1283264.85k 1307822.76k 1310501.55k (Cortex-A76) aes-256-cbc 597574.84k 1012813.76k 1219761.83k 1278820.69k 1303508.31k 1306198.02k (Cortex-A76) Full results uploaded to http://ix.io/44ua. |
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.
I still tried to install Phoronix:
1 2 3 |
sudo apt install php-cli php-gd php-xml php-zip wget https://phoronix-test-suite.com/releases/repo/pts.debian/files/phoronix-test-suite_10.8.4_all.deb dpkg -i phoronix-test-suite_10.8.4_all.deb |
and compare it against UP 4000 (Intel N3350) and Raspberry Pi 4 boards.
1 |
sudo phoronix-test-suite benchmark 2207012-UPBO-201005966 |
Such test would take close to two hours, and my board will not last that long without a reboot, so I only have a few results:
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 |
SQLite 3.30.1: pts/sqlite-2.1.0 [Threads / Copies: 1] Test 1 of 18 Estimated Trial Run Count: 3 Estimated Test Run-Time: 2 Minutes Estimated Time To Completion: 1 Hour, 12 Minutes [10:32 UTC] Running Pre-Test Script @ 09:20:37 Started Run 1 @ 09:20:37 Running Interim Test Script @ 09:21:05 Started Run 2 @ 09:21:07 Running Interim Test Script @ 09:21:36 Started Run 3 @ 09:21:38 Running Post-Test Script @ 09:22:05 Threads / Copies: 1: 26.097 26.367 25.57 Average: 26.011 Seconds Deviation: 1.56% Seconds < Lower Is Better Jetson Nano 4GB ..... 103.21 |============================================== RPi4 4GB ............ 79.39 |=================================== UPboard 2GB ......... 64.54 |============================= Rock 5 Model B 16GB . 26.01 |============ UP 4000 2GB ......... 22.78 |========== |
SQLite probably is highly dependent on storage performance, but the Rock 5B board is right there close to the UP 4000.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
RAMspeed SMP 3.5.0: pts/ramspeed-1.4.3 [Type: Copy - Benchmark: Integer] Test 2 of 18 Estimated Trial Run Count: 3 Estimated Test Run-Time: 11 Minutes Estimated Time To Completion: 1 Hour, 11 Minutes [10:32 UTC] Started Run 1 @ 09:22:14 Started Run 2 @ 09:23:53 Started Run 3 @ 09:25:31 Type: Copy - Benchmark: Integer: 21521.29 21537.26 21418.27 Average: 21492.27 MB/s Deviation: 0.30% MB/s > Higher Is Better RPi4 4GB ............ 4394.59 |========= UPboard 2GB ......... 4493.08 |========= UP 4000 2GB ......... 7595.21 |================ Jetson Nano 4GB ..... 9078.36 |=================== Rock 5 Model B 16GB . 21492.27 |============================================ |
The RAMSpeed test confirms the really high memory bandwidth we’ve seen with sbc-bench.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
perf-bench: pts/perf-bench-1.0.2 [Benchmark: Sched Pipe] Test 3 of 18 Estimated Trial Run Count: 3 Estimated Test Run-Time: 3 Minutes Estimated Time To Completion: 1 Hour [10:27 UTC] Started Run 1 @ 09:27:17 Started Run 2 @ 09:28:33 Started Run 3 @ 09:29:49 Benchmark: Sched Pipe: 69891 68878 69117 Average: 69295 ops/sec Deviation: 0.76% ops/sec > Higher Is Better RPi4 4GB ............ 26108 |================= UPboard 2GB ......... 30201 |=================== Jetson Nano 4GB ..... 56811 |==================================== Rock 5 Model B 16GB . 69295 |============================================ UP 4000 2GB ......... 74060 |=============================================== |
The Rockchip RK3588 board is also close to the Intel Celeron N3350 dual-core “Apollo Lake” board in perf-bench…
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 37 38 39 |
Go Benchmarks: pts/go-benchmark-1.1.4 [Test: build] Test 4 of 18 Estimated Trial Run Count: 3 Estimated Test Run-Time: 2 Minutes Estimated Time To Completion: 58 Minutes [10:28 UTC] Started Run 1 @ 09:31:12 Started Run 2 @ 09:32:03 Started Run 3 @ 09:32:51 Started Run 4 @ 09:33:39 * Started Run 5 @ 09:34:27 * Started Run 6 @ 09:35:14 * Started Run 7 @ 09:36:02 * Started Run 8 @ 09:36:50 * Started Run 9 @ 09:37:38 * Started Run 10 @ 09:38:26 * Test: build: 47112672907 43886576990 43751470061 43499157738 43674887716 43755782879 44108562449 43758243155 43733228264 43658320647 Average: 44093890281 Nanoseconds/Operation Deviation: 2.43% Samples: 10 Nanoseconds/Operation < Lower Is Better UPboard 2GB ......... 115898826367 |======================================== Jetson Nano 4GB ..... 75032734873 |========================== RPi4 4GB ............ 71596906538 |========================= UP 4000 2GB ......... 61460487908 |===================== Rock 5 Model B 16GB . 44093890281 |=============== |
… but is quite faster in the Go benchmark. That’s the last test I could manage.
For reference, I also tried to limited to maximum frequency of the Cortex-A76 cores using two methods, first to 2.21 GHz:
1 2 3 4 |
sudo cpufreq-set -c 4 -u 2.21GHz sudo cpufreq-set -c 5 -u 2.21GHz sudo cpufreq-set -c 6 -u 2.21GHz sudo cpufreq-set -c 7 -u 2.21GHz |
then 2.02 GHz with the user space governor:
1 2 3 4 |
sudo cpufreq-set -c 4 -f 2.02GHz sudo cpufreq-set -c 5 -f 2.02GHz sudo cpufreq-set -c 6 -f 2.02GHz sudo cpufreq-set -c 7 -f 2.02GHz |
It did not fix my stability issue, but something funny happened:
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 |
SQLite 3.30.1: pts/sqlite-2.1.0 [Threads / Copies: 1] Test 1 of 18 Estimated Trial Run Count: 3 Estimated Test Run-Time: 2 Minutes Estimated Time To Completion: 1 Hour, 9 Minutes [13:59 UTC] Running Pre-Test Script @ 12:50:15 Started Run 1 @ 12:50:15 Running Interim Test Script @ 12:50:37 Started Run 2 @ 12:50:39 Running Interim Test Script @ 12:51:02 Started Run 3 @ 12:51:04 Running Post-Test Script @ 12:51:27 Threads / Copies: 1: 20.276 20.942 21.303 Average: 20.840 Seconds Deviation: 2.50% Seconds < Lower Is Better Jetson Nano 4GB ....... 103.21 |============================================ RPi4 4GB .............. 79.39 |================================== UPboard 2GB ........... 64.54 |============================ Rock 5B 16GB 2.21 GHz . 29.77 |============= UP 4000 2GB ........... 22.78 |========== Rock 5B 16GB 2.02GHz .. 20.84 |========= |
The Rock 5B is faster at 2.02 GHz with the userspace governor than at 2.21 or 2.3 GHz with the ondemand governor.
Storage testing and benchmarks
I’ve installed iozone3 to first test the 16GB eMMC flash module performance:
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 |
iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.489 $ Compiled for 64 bit mode. Build: linux Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 1024000 kB Record Size 4 kB Record Size 16 kB Record Size 512 kB Record Size 1024 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 14921 17534 24739 24995 16692 11074 1024000 16 24050 34114 39251 36476 30879 29032 1024000 512 38959 38633 158941 152590 152197 37266 1024000 1024 39338 39944 170271 168652 169894 37979 1024000 16384 39434 40186 205950 203861 206698 40031 iozone test complete. |
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 -s 10000M -r 16384k -i 0 -i 1 Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 10240000 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 10240000 16384 375484 382439 325848 329745 iozone test complete. |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ cat radxa-eemc-flash.txt [ 14.313676] mmc1: switch to bus width for hs400 failed, err:-84 [ 14.313696] mmc1: tried to HW reset card, got error -84 [ 14.313809] blk_update_request: I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 14.314014] vendor storage:20190527 ret = -1 [ 14.314292] sdhci-dwcmshc fe2e0000.mmc: error -84 requesting status [ 14.314303] mmcblk1: recovery failed! [ 14.314322] blk_update_request: I/O error, dev mmcblk1, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 14.314333] Buffer I/O error on dev mmcblk1, logical block 0, async page read [ 14.314742] sdhci-dwcmshc fe2e0000.mmc: error -84 requesting status [ 14.314749] mmcblk1: recovery failed! [ 14.314768] blk_update_request: I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 14.314775] Buffer I/O error on dev mmcblk1, logical block 0, async page read [ 14.314844] mmcblk1: unable to read partition table [ 14.317217] Waiting for root device PARTUUID=614E0000-0000-4B53-8000-1D28000054A9... [ 34.201408] vcc3v3_pcie30: disabling |
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:
1 2 3 4 |
rock@rock-5b:/media/rock/443c7b9a-38a0-46a2-a1d6-29a1066b50a9$ sudo iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 10240000 16384 2299628 2249754 1976579 1977936 |
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:
1 2 3 4 5 |
rock@rock-5b:/media/rock/443c7b9a-38a0-46a2-a1d6-29a1066b50a9$ sudo iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 10240000 16384 1063572 1050722 1622210 1635731 |
It’s gone down a bit, but let’s carry on:
1 2 3 4 |
rock@rock-5b:/media/rock/443c7b9a-38a0-46a2-a1d6-29a1066b50a9$ sudo iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 10240000 16384 672053 664168 1424390 1429735 |
And one last time with a 100GB file that won’t fit into memory:
1 2 3 4 |
rock@rock-5b:/media/rock/443c7b9a-38a0-46a2-a1d6-29a1066b50a9$ sudo iozone -e -I -a -s 100000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 102400000 16384 666173 666870 1435104 1434803 |
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.
- Download to Rock 5B:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ iperf3 -t 60 -c 192.168.31.93 -i 10 Connecting to host 192.168.31.93, port 5201 [ 5] local 192.168.31.85 port 39384 connected to 192.168.31.93 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 2.73 GBytes 2.35 Gbits/sec 0 1.06 MBytes [ 5] 10.00-20.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.59 MBytes [ 5] 20.00-30.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.59 MBytes [ 5] 30.00-40.00 sec 2.73 GBytes 2.35 Gbits/sec 0 2.39 MBytes [ 5] 40.00-50.00 sec 2.74 GBytes 2.35 Gbits/sec 0 2.39 MBytes [ 5] 50.00-60.00 sec 2.74 GBytes 2.35 Gbits/sec 0 2.39 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 16.4 GBytes 2.35 Gbits/sec 0 sender [ 5] 0.00-60.05 sec 16.4 GBytes 2.35 Gbits/sec receiver iperf Done. |
- Upload:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
iperf3 -t 60 -c 192.168.31.93 -i 10 -R Connecting to host 192.168.31.93, port 5201 Reverse mode, remote host 192.168.31.93 is sending [ 5] local 192.168.31.85 port 39388 connected to 192.168.31.93 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 10.00-20.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 20.00-30.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 30.00-40.00 sec 2.73 GBytes 2.35 Gbits/sec [ 5] 40.00-50.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 50.00-60.00 sec 2.74 GBytes 2.35 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.05 sec 16.4 GBytes 2.35 Gbits/sec 81 sender [ 5] 0.00-60.00 sec 16.4 GBytes 2.35 Gbits/sec receiver |
2.35 Gbps in both directions, that’s the best we can usually achieve. So let’s be naughty with a full-duplex test:
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 |
$ iperf3 -t 60 -c 192.168.31.93 -i 10 --bidir Connecting to host 192.168.31.93, port 5201 [ 5] local 192.168.31.85 port 39392 connected to 192.168.31.93 port 5201 [ 7] local 192.168.31.85 port 39394 connected to 192.168.31.93 port 5201 [ ID][Role] Interval Transfer Bitrate Retr Cwnd [ 5][TX-C] 0.00-10.00 sec 2.73 GBytes 2.34 Gbits/sec 0 2.15 MBytes [ 7][RX-C] 0.00-10.00 sec 2.63 GBytes 2.26 Gbits/sec [ 5][TX-C] 10.00-20.00 sec 2.72 GBytes 2.34 Gbits/sec 0 2.26 MBytes [ 7][RX-C] 10.00-20.00 sec 2.41 GBytes 2.07 Gbits/sec [ 5][TX-C] 20.00-30.00 sec 2.73 GBytes 2.34 Gbits/sec 0 2.26 MBytes [ 7][RX-C] 20.00-30.00 sec 2.45 GBytes 2.11 Gbits/sec [ 5][TX-C] 30.00-40.00 sec 2.73 GBytes 2.34 Gbits/sec 0 2.26 MBytes [ 7][RX-C] 30.00-40.00 sec 2.50 GBytes 2.15 Gbits/sec [ 5][TX-C] 40.00-50.00 sec 2.73 GBytes 2.34 Gbits/sec 0 2.26 MBytes [ 7][RX-C] 40.00-50.00 sec 2.48 GBytes 2.13 Gbits/sec [ 5][TX-C] 50.00-60.00 sec 2.73 GBytes 2.34 Gbits/sec 0 2.26 MBytes [ 7][RX-C] 50.00-60.00 sec 2.60 GBytes 2.23 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID][Role] Interval Transfer Bitrate Retr [ 5][TX-C] 0.00-60.00 sec 16.4 GBytes 2.34 Gbits/sec 0 sender [ 5][TX-C] 0.00-60.05 sec 16.4 GBytes 2.34 Gbits/sec receiver [ 7][RX-C] 0.00-60.00 sec 15.1 GBytes 2.16 Gbits/sec 145 sender [ 7][RX-C] 0.00-60.05 sec 15.1 GBytes 2.16 Gbits/sec receiver iperf Done. |
2.34 Gbps and 2.16 Gbps, so Rock 5B handled 2.5GbE networking is really outstanding.
My board is fitted with a Realtek RTL8852BE-based Fn-Link 6252M-PUB WiFi 6 and Bluetooth 5.2 module, so let’s repeat the test with WiFi 6
- Download to Rock 5B:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ iperf3 -t 60 -c 192.168.31.148 -i 10 Connecting to host 192.168.31.148, port 5201 [ 5] local 192.168.31.85 port 45848 connected to 192.168.31.148 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 769 MBytes 645 Mbits/sec 114 608 KBytes [ 5] 10.00-20.00 sec 280 MBytes 235 Mbits/sec 340 2.22 MBytes [ 5] 20.00-30.00 sec 295 MBytes 247 Mbits/sec 203 1.41 KBytes [ 5] 30.00-40.00 sec 674 MBytes 565 Mbits/sec 121 991 KBytes [ 5] 40.00-50.00 sec 489 MBytes 410 Mbits/sec 248 2.34 MBytes [ 5] 50.00-60.00 sec 496 MBytes 416 Mbits/sec 205 2.49 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 2.93 GBytes 420 Mbits/sec 1231 sender [ 5] 0.00-60.12 sec 2.93 GBytes 419 Mbits/sec receiver iperf Done. |
- Upload:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ iperf3 -t 60 -c 192.168.31.148 -i 10 -R Connecting to host 192.168.31.148, port 5201 Reverse mode, remote host 192.168.31.148 is sending [ 5] local 192.168.31.85 port 45852 connected to 192.168.31.148 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 709 MBytes 594 Mbits/sec [ 5] 10.00-20.00 sec 1.01 GBytes 870 Mbits/sec [ 5] 20.00-30.00 sec 1.01 GBytes 871 Mbits/sec [ 5] 30.00-40.00 sec 1.02 GBytes 873 Mbits/sec [ 5] 40.00-50.00 sec 1.00 GBytes 863 Mbits/sec [ 5] 50.00-60.00 sec 1.00 GBytes 859 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.06 sec 5.74 GBytes 821 Mbits/sec 21 sender [ 5] 0.00-60.00 sec 5.74 GBytes 822 Mbits/sec receiver iperf Done. |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ lsusb -t /: Bus 10.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 09.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M |__ Port 5: Dev 4, If 0, Class=, Driver=, 480M /: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M |__ Port 1: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 1: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 2: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |
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 is bad? [ 180.488474] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 182.258877] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 183.198591] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 184.308701] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 185.418519] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 186.698916] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 187.638708] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 188.785447] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 204.445990] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ lsusb -t /: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M |
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:
1 2 3 4 |
[ 27.216985] usb 10-1: device not accepting address 6, error -71 [ 28.187045] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 29.827028] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 30.770419] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? |
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 mmcblk1 179:0 0 14.5G 0 disk |-mmcblk1p1 179:1 0 512M 0 part `-mmcblk1p2 179:2 0 13.9G 0 part / mmcblk1boot0 179:32 0 4M 1 disk mmcblk1boot1 179:64 0 4M 1 disk nvme0n1 259:0 0 238.5G 0 disk `-nvme0n1p1 259:1 0 238.5G 0 part |
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------- 1 root root 254, 0 Jul 20 07:50 /dev/gpiochip0 crw------- 1 root root 254, 1 Jul 20 07:50 /dev/gpiochip1 crw------- 1 root root 254, 2 Jul 20 07:50 /dev/gpiochip2 crw------- 1 root root 254, 3 Jul 20 07:50 /dev/gpiochip3 crw------- 1 root root 254, 4 Jul 20 07:50 /dev/gpiochip4 crw------- 1 root root 254, 5 Jul 20 07: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.
GPU 3D acceleration is not enabled in Debian 11
Here’s the full output of glxinfo, and the important part is:
1 2 3 4 5 6 7 8 9 10 11 12 |
Extended renderer info (GLX_MESA_query_renderer): Vendor: Mesa/X.org (0xffffffff) Device: llvmpipe (LLVM 11.0.1, 128 bits) (0xffffffff) Version: 20.3.5 Accelerated: no Video memory: 15723MB Unified memory: no Preferred profile: core (0x1) Max core profile version: 4.5 Max compat profile version: 3.1 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.2 |
llvmpipe means software rendering. There are some “mali” string in the kernel output though:
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 |
$ dmesg | grep -i mali [ 3.712680] mali fb000000.gpu: Kernel DDK version g11p0-01eac0 [ 3.712725] mali fb000000.gpu: Looking up mali-supply from device tree [ 3.712939] mali fb000000.gpu: Looking up mem-supply from device tree [ 3.713097] mali fb000000.gpu: Looking up mali-supply from device tree [ 3.713138] mali fb000000.gpu: Looking up mem-supply from device tree [ 3.713584] mali fb000000.gpu: leakage=22 [ 3.713635] mali fb000000.gpu: Looking up mali-supply from device tree [ 3.715452] mali fb000000.gpu: pvtm=874 [ 3.715991] mali fb000000.gpu: pvtm-volt-sel=3 [ 3.717178] mali fb000000.gpu: avs=0 [ 3.719315] W : [File] : drivers/gpu/arm/bifrost/platform/rk/mali_kbase_config_rk.c; [Line] : 136; [Func] : kbase_platform_rk_init(); power-off-delay-ms not available. [ 3.720480] mali fb000000.gpu: r0p0 status 5 is unknown; treating as r0p0 status 0 [ 3.720508] mali fb000000.gpu: GPU identified as 0x7 arch 10.8.6 r0p0 status 0 [ 3.720625] mali fb000000.gpu: No priority control manager is configured [ 3.720641] mali fb000000.gpu: No memory group manager is configured [ 3.720679] mali fb000000.gpu: Protected memory allocator not available [ 3.721767] mali fb000000.gpu: l=10000 h=85000 hyst=5000 l_limit=0 h_limit=800000000 h_table=0 [ 3.723453] mali fb000000.gpu: Probed as mali0 [ 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 this mali_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 firmware 0x1010000 [ 29.167347] mali fb000000.gpu: Protected memory allocator not found, Firmware protected mode entry will not be supported [ 29.167364] mali fb000000.gpu: Protected memory allocator not found, Firmware protected mode entry will not be supported [ 29.167371] mali fb000000.gpu: Protected memory allocator not found, Firmware protected mode entry will not be 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 <--> 950 mV at 812 mV, 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 property in node /power-management@fd8d8000/power-controller failed [ 3.862271] input: rk-headset as /devices/platform/rk-headset/input/input3 [ 3.863613] RKNPU fdab0000.npu: Adding to iommu group 0 [ 3.863879] RKNPU fdab0000.npu: RKNPU: rknpu iommu is enabled, using iommu mode [ 3.864012] RKNPU fdab0000.npu: Looking up rknpu-supply from device tree [ 3.864696] RKNPU fdab0000.npu: Looking up mem-supply from device tree [ 3.865292] RKNPU fdab0000.npu: can't request region for resource [mem 0xfdab0000-0xfdabffff] [ 3.865332] RKNPU fdab0000.npu: can't request region for resource [mem 0xfdac0000-0xfdacffff] [ 3.865354] RKNPU fdab0000.npu: can't request region for resource [mem 0xfdad0000-0xfdadffff] [ 3.866093] [drm] Initialized rknpu 0.7.2 20220428 for fdab0000.npu on minor 1 [ 3.866604] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up nputop-supply from device tree [ 3.866643] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up nputop-supply property in node /power-management@fd8d8000/power-controller failed [ 3.866731] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu1-supply from device tree [ 3.866766] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu1-supply property in node /power-management@fd8d8000/power-controller failed [ 3.866837] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu2-supply from device tree [ 3.866872] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu2-supply property in node /power-management@fd8d8000/power-controller failed [ 3.867039] RKNPU fdab0000.npu: Looking up rknpu-supply from device tree [ 3.867098] vdd_npu_s0: could not add device link fdab0000.npu: -EEXIST [ 3.867104] vdd_npu_s0: Failed to create debugfs directory [ 3.867637] RKNPU fdab0000.npu: Looking up mem-supply from device tree [ 3.867671] vdd_npu_s0: could not add device link fdab0000.npu: -EEXIST [ 3.867675] vdd_npu_s0: Failed to create debugfs directory [ 3.868619] RKNPU fdab0000.npu: leakage=12 [ 3.868659] RKNPU fdab0000.npu: Looking up rknpu-supply from device tree [ 3.868688] vdd_npu_s0: could not add device link fdab0000.npu: -EEXIST [ 3.868693] vdd_npu_s0: Failed to create debugfs directory [ 3.875746] RKNPU fdab0000.npu: pvtm=875 [ 3.880646] RKNPU fdab0000.npu: pvtm-volt-sel=3 [ 3.881693] RKNPU fdab0000.npu: avs=0 [ 3.881897] RKNPU fdab0000.npu: l=10000 h=85000 hyst=5000 l_limit=0 h_limit=800000000 h_table=0 [ 3.891146] RKNPU fdab0000.npu: failed to find power_model node [ 3.891181] RKNPU fdab0000.npu: RKNPU: failed to initialize power model [ 3.891193] RKNPU fdab0000.npu: RKNPU: failed to get dynamic-coefficient |
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 RGB 8-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 Plane 0 : 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: Is a directory cat: /proc/asound/card1: Is a directory cat: /proc/asound/card2: Is a directory cat: /proc/asound/card3: Is a directory 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.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Thanks for these tests!
> The Rock 5B is faster at 2.02 GHz with the userspace governor than at 2.21 or 2.3 GHz with the ondemand governor.
Or in other words: Since the ‘Phoronix Test Suite’ does not switch to performance cpufreq governor an awful lot of numbers sent over to openbenchmarking.org are just garbage.
As for your storage tests: Radxa’s OS images are missing the needed tweaks for the clockspeeds ramping up with storage access. So if you tested with ondemand most probably all numbers are off.
> So if you tested with ondemand most probably all numbers are off.
To illustrate the numbers from my own testings (EVO750 in an ASM1153 UAS capable enclosure) with said ondemand tweaks applied. We’re well above 400 MB/s:
Wonder how it compares to MT8192 in Chromebooks
Prob about same.
Sadly, we can’t have those MT8192 on SBC. As for RK3588(s), we have quite a bunch now.
There will be MediaTek Genio 1200 SBCs, but the price should be a bit higher:
https://www.cnx-software.com/2022/06/16/mediatek-genio-1200-linux-system-on-module-powers-cortex-a78-a55-aiot-development-kit/
Thanks for the info. Must have flown under my radar 🙂
But as far as I know, there’s no SBCs using mediatek SoC. At best, there’s development board, which is pricey.
Mekotronics is working on a MTK Genio 1200 device.
Price probably comparable to their R58X.
https://youtu.be/NG-ZLJCWG64
Do you have info when will it be ready for shipment?
小 x 官方 xi
Thanks SO MUCH for running these tests. I’m eagerly awaiting my preorders of the rock 5b to build a cluster.
Did you have a chance to test PoE + 2.5GbE iperf?
This board sounds too good to be true!
> This board sounds too good to be true!
Its good for running benchmark and challenges for developers community. ATM it is not ready for devops or any production tasks.
Can you try with 5.18 kernel from bullseye-backports?
He can’t since this is not x86.
Keep an eye on this forum https://forum.armbian.com/forum/188-rock-pi-5b/ Not sure this will ever be backported there, once existing. But it certainly will be to Armbian as this is one thing we do.
Thanks Jean Luc for this detailed preview, I am waiting so long for this SBC, is there any fix release date for the public? Where we can expect a stable board 😕
Sorry, I don’t know when manufacturing is planned. It will also depend on the results of the debug party, plus the current supply shortage issues, though I don’t know if the latter impacts Rock 5B MP schedule in any way.
Even the shipping of the network card I ordered got delayed by two extra months 🙁 I hope that at least my M2->PCIe adapter will arrive.
Shame yours crashes so often maybe dodgy ram?
I have the 4gb and have had it running stress-ng on a constant run for days
@cnx software is it stable enough to run a memory test?
All images that link to https://eji4evk5kxx.exactdn.com/… are broken (TLS certificate mismatch). Is it just me (using Google Chrome 103.0.5060.114)?
The image links to that domain will not work anymore, as I’ve made some changes to the DNS using cdn.cnx-software.com instead.
And what about mainline kernel? Are there anywork?
Rockchip together with Collabora started recently. As for driver work the good news is that certain IP blocks are similar/identical to RK356x so existing driver code can be used with RK3588 too.
And can it boot now?
Are you or anybody else collect patches so ROCK 5B can boot mainline linux?
> And can it boot now?
Neither know nor care. In my own ROCK 5B review I wrote ‘will take years’ wrt mainline and for me the board with mainline only gets interesting if the stuff relevant for my use cases at least rudimentary works (network, PCIe and SATA) so I might be able to assist in testing/optimising things.
But as already said: due to similar/identical IP blocks the things of interest (for me) are low hanging fruits.
I am looking on this for now https://github.com/armbian/build/pull/3984
Good luck. While Armbian’s chief advertising officer always tries to create the impression it would be ‘Armbian team’ who’s doing the mainlining work you should better do a reality check and look at commit logs who’s doing the real work.
Armbian today is mostly about refactoring and nicely packaging already existing stuff.
I know how armbian works.
I am just curious if anybody try and start with mainline linux on ROCK 5B
It’s still too early. I’m currently rebuilding the BSP on it to be able to load some PCIe drivers, as I just received my M2->PCIe adapter. I hope to be able to run some tests with it.
Just finished right now BTW. 22 minutes to rebuild everything (image+modules). Not bad at all!
Which filesystem is on the Apacer SSD or was when the benchmarks were performed?
EXT-4
Thanks for the review, Jean-Luc!
The 5 watt idle power with or without NVME? I’ve tested a few x86 mini-pc with core i3 & i5 T series gen 6-7-8 CPU like HP ProDesk 400/600, Optiplex 30×0, ThinkCentre 7xx and they usually idle < 8 watt with Sodimm 16GB DDR4. There’s 1 or 2 that can idle < 6W. That’s with intel’s few years old CPU.
Looks like for mostly idle and light works 24/7 box, we could seek those prodesk, optiplex or thinkcentre mini-pc as alternatives for these ARM boards.
As for almost always loaded works, ARM still left x86 in the dust, except, maybe, server CPUs.
Yes, 5W is before I installed the NVMe SSD, but that’s with the fan that would not be necessary with the right enclosure or large heatsink. Alternatively, a PWM fan would probably not be active at idle.
If you get a 4.2W idle consumption measuring between charger and board then it seems either your powermeter suffers from malfunction or your board (which might explain the freezes?).
Since both Willy and me get an idle consumption lower than 2W w/o charger.
And what does ‘Stress test’ refer to?
Did you board ship with a wireless module too? That may explain it.
If I remove the wireless module it drops to 4W with the fan, 3.2W without. That’s with the display and 2.5GbE connected, but not a mouse and keyboard. The wireless module adds about 800mW.
The stress test was just with the “stress” command on all eight cores.
> 3.2W. That’s with the display and 2.5GbE connected
If the display shows a picture and it’s 2.5GbE and not just GbE then the numbers seem OK. 🙂
But IMO it’s important to mention such details since those who will soon follow with crappy Youtube reviews already spread BS like A311D2 ‘consumes almost half of the RK3588 while stil very powerful.‘ (in the comments, the video is not worth a look)
Well, I did not exactly hide the wireless module, it’s here in all the photos… I initially assumed everybody got that wireless module.
It’s close to impossible to prevent the spread of bullshit, just read the news we’re submitted to every day…
Measuring the power consumption of processors is really hard, I remember Linaro had a development board with multiple test points and test probes just to do that.
https://www.cnx-software.com/2012/11/29/soc-power-measurement-with-arm-energy-probes-and-linux-eap-tools/
Once a processor gets on a board then we start to have to take into account the efficiency of the power circuitry, which features are enabled, and since most of us use a power meter into a socket, the cable resistance, power supply efficiency, and the power meter accuracy enter into the equation.
A highly offensive word was used in “impossible to prevent the spread of [expletive], just read the news.” Do not use offensive language.
An offensive word was used in “soon follow with [expletive] Youtube reviews” Do not use offensive language.
> The stress test was just with the “stress” command on all eight cores.
As blu pointed out here a while ago a more stressful variant should be ‘stress-ng –cpu 8 –cpu-method matrixprod’ though I see not much difference.
What’s really interesting is 7-zip’s internal benchmark being the most stressful (based on consumption). Even more demanding than ‘cpuminer –benchmark’ most probably since RK3588’s memory controller is that fast and 7-zip heavily relies on memory access.
BTW: at least now that everyone knows about PVTM it should be obvious why stress and stress-ng aren’t the best tools to ‘stress test’ a modern SoC. Since both tools don’t tell if some magic happens that slows down the machine (like PVTM running on an MCU inside the SoC).
Both ‘cpuminer –benchmark | grep Tot’ and ‘while true ; do 7zr b | grep Tot ; done’ will actually provide these insights since we’re getting scores and not just stress 🙂
Interesting. From what I know, the PSU have big impact to power consumption (their power efficiency). Maybe Jean-Luc PSU is not that efficient at low load? The Odroid N2 that I tested with their PSU is around ~2.2 Watt (fully functional, botted to xfce and connected to monitor), more inline with yours/ Willy’s tests.
All my measurement’s with watt-meter form the wall.
Not only the PSU is important (the bigger they are, the higher the absolute losses), but in addition it’s extremely difficult for mains-based power-meters to report accurate measurements due to the alternating current and the need to accurately collect both I and U measurements during the whole curve; in practice most of them only rectify these, smooth the output and report the average value, often without even taking into account the 1.4V lost in the rectifier. And at low power that 0.5% starts to count a bit.
Agreed. High amperage PSU usually not so efficient for low load. Except, maybe, very pricy PSU.
As for watt-meter, it’s the same. more expensive one usually better.
Noted. Those mini-pc that have measured, usually complete pack: with storage (hdd/ssd), ram, wifi. And yes, PWM fan, and connected with 24 inch IPS FHD Monitor via hdmi or DP. IMHO, the fan itself is not that consuming. Let’s say, about ~1 watt. The rest is from the system (SoC, board, wifi, storage, ram, etc).
But then, from ARM POVs 1 watt is quite big.
> The 5 watt idle power with or without NVME?
Jean-Luc measured 4.2W since the dumb 5V fan on the early review samples doesn’t count. And 4.2W are way too high to be honest. In my own review I’m talking about ‘less than 2W headless’ since even connecting a display actually increases consumption by 300mW only with blank screen.
As for x86: As long as inefficient ATX-style powering is avoided a Jasper Lake N5100 box is able to idle at ~2.5W measured at the wall.
My ZX01 (Intel N5105) idling on 7,5W it is connected with USB-C power supply
That’s quite high for the procie. Prodesk 400 G3 i5-6500T with 16 RAM 512GB SSD, WIFI, can idle is around ~6W
Cool! x86, idle about 2.5W. A while back when testing my deskmini x300 with Ryzen 5600G, I found that while its idle about ~10.2W, when I play music, it uses about 14.3W. So yes, those audio processing is quite taxing. I think intel’s more efficient than AMD on this. And ARM boards is at the top.
OOT: notebookcheck have reviews pitting ryzen 6800u against Apple M1 . Their numbers is quite eye-opener. The x86 arch is not that bad against the ARM best. It’s in a range of < 10% for newest ryzen vs M1.
> I think intel’s more efficient than AMD on this
I agree, in my experience, modern intel chips (i.e. the first generation of core processors) started to become very efficient in idle. However they probably have a high latency to return to low consumption because, as you noticed when playing music, as soon as something frequently consumes at little bit (even with an avg of 1%), the consumption increases a lot, to the point that it’s worth freezing a browser with kill -STOP on a laptop while traveling.
True that. IMHO, Intel’s still ahead of this game than AMD. As for ARM SoCs, because they usually idle very low, the load too, is not that high. Something like ~10W to ~60W x86 vs ~2W to ~12W ARM.
> notebookcheck have reviews pitting ryzen 6800u against Apple M1 . Their numbers is quite eye-opener.
Rather exactly the opposite, just the usual example of ‘benchmarking gone wrong’.
They measured nothing but trusted into numbers spitten out by softwares like HWiNFO and powermetrics and even noted ‘the HWiNFO values are highly irregular’ for one case where they noticed they got BS numbers but didn’t question every other number they collected.
Then they use a single benchmark called CineBench R23 (‘since it runs natively both on Windows laptops as well as M1 MacBooks’) which starting with R23 has becoming even more a joke for platform comparisons since using AVX on x86 and NEON on ARM. The only use case this benchmark really represents is ‘rendering in Cinema4D’ and that’s it. And what platform comparisons really do is benchmarking Intel’s Embree 3.11 raytracing library and nothing else. Nothing of this has any relevance for ‘the software 99.99% of users are running on their thingies’.
So the ‘performance numbers’ are pointless, they measured nothing but trusted blindly into numbers, then did some math and came up with conclusions based on all this BS. Just read the comments below the article.
Asides that power efficiency for real-world tasks is something entirely different than this special case of number crunching or ‘constant full load on all cores making use of SIMD extensions’.
Ah, yes, my bad. They use HWINFO data escaped me. I thought they’re using at least watt-meter from the wall, and using it for testing.
Glad to see HDMI In looking good- but would really love to see it working in action! Someone get this reviewer the proper cables!!
Curious about general functionality, but also things like input lag (even if just percieved)
I have the cable. The only problem is that I rent two houses in different cities for some reasons… I have partially duplicated my office, but not entirely.
I might do a post about HDMI input later in September, once I go through the other itesm I have scheduled for review…
Those special cables always have a way of sneaking around don’t they?
A dedicated post for this feature would be most welcome! HDCP compatibility, using nice cameras that have hdmi out, working with OBS, etc are all things I’m curious to see (if you’re taking requests haha). Looking forward to seeing you put it through its paces!
For those interested, last evening I could test PCIe using a 4x10G NIC. Not only it went pretty fine, but the CPU is powerful enough to saturate the PCIe in both directions, the test report is here:
https://forum.radxa.com/t/rock-5b-debug-party-invitation/10483/289
hello i have also preorderd one acording to ameridroid i should start shipping in august 2022 of course and now i am even more ecxited
Another ODM
https://www.geniatech.com/download/som3588/
Let’s hope that they use some standard
Wow this was a great writeup! Thank you!
Emmc damaged?
I have nearly the same Problem on new Sandisk Sdcard.
After 48hours running UbuntuServer on Openmediavault and 5 crashes, the SD card overheated so much that you couldn’t touch it and is not detected on any OS.
My first thought was a Overvoltage through the PD PowerSupply, but no Idea.
Greetings, Schuppeste
Make sure you have a heatsink attached. If you Power Supply is PD capable, you can check the voltage of the PD, use the sensors command.
It appears these are now available for general sale on Allnet:
https://shop.allnetchina.cn/collections/rock5-model-b/products/rock5-model-b
Also available from OKDO and Ameridroid:
https://www.okdo.com/p/okdo-x-radxa-rock-5-model-b-8gb-single-board-computer-rockchip-rk3588-arm-cortex-a76/
https://ameridroid.com/products/rock5-model-b
Hi, I’m very interested by this board, but I’m afraid by the randomly reboots. Have you retested since your eval? Can I buy it ?
Thank a lot
I’m using the board sometimes, but just for some short tests. I would not worry too much about the random reboots on my board. It was an early sample, and I don’t see others having the same issue.
I’ve never had any reboot on mine, even when trying heavy stuff such as (small) LLMs processing large texts. My understanding was the reboot issues were not random but software related and that some distros would load a module or configure something related to USB-C that resulted in the board stopping announcing its support and the PSU cutting the juice. That was met on the first batch of boards for developers, I’m not sure the problem remained, and I haven’t read about it for a while (more than a year). My suggestion would be that the board is safe for use.