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:


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:


and compare it against UP 4000 (Intel N3350) and Raspberry Pi 4 boards.


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:


SQLite probably is highly dependent on storage performance, but the Rock 5B board is right there close to the UP 4000.


The RAMSpeed test confirms the really high memory bandwidth we’ve seen with sbc-bench.


The Rockchip RK3588 board is also close to the Intel Celeron N3350 dual-core “Apollo Lake” board in perf-bench…


… 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:


then 2.02 GHz with the user space governor:


It did not fix my stability issue, but something funny happened:


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:


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:


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 gone down a bit, but let’s carry on:


And one last time with a 100GB file that won’t fit into memory:


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:

  • Upload:


2.35 Gbps in both directions, that’s the best we can usually achieve. So let’s be naughty with a full-duplex test:


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:

  • Upload:


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:


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:


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:


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:


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:


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:


llvmpipe means software rendering. There are some “mali” string in the kernel output though:


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:


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:


and HDMI input audio also shows up:


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.

FeatureRemark
StorageNVME OK with good performance
eMMC flash OK
microSD card (no working microSD, not tested)
Video OutputHDMI (Next to USB ports) - OK
Other HDMI ports and USB-C Displayport Alt mode - Failed
HDMI inputDetected (video and audio) but not tested due to lack of cable
Networking2.5GbE OK with great performance
WiFi 6 OK with up to 870 Mbps, but highly varying throughput
BluetoothNot working/not enabled
USBUSB 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
GPUSoftware rendering only
VPU (Video Processing Unit)Not tested, as unsure which tools to use for hardware video playback
NPUShows up in kernel, but with plenty of errors
MIPI CSINot 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.

Share this:

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

61 Replies to “Rock 5B RK3588 SBC preview – What works, what doesn’t in Debian 11”

  1. > 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.

    1. > 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:

        1. 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.

  2. 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!

    1. > 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.

  3. 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 😕

    1. 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.

      1. 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.

  4. 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

      1. And can it boot now?
        Are you or anybody else collect patches so ROCK 5B can boot mainline linux?

        1. > 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.

        1. 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.

          1. I know how armbian works.
            I am just curious if anybody try and start with mainline linux on ROCK 5B

          2. 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.

          3. Just finished right now BTW. 22 minutes to rebuild everything (image+modules). Not bad at all!

  5. 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.

    1. 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.

        1. 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.

          1. > 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)

          2. 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.

          3. > 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.

          4. 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 🙂

        2. 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.

          1. 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.

          2. 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.

      1. 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.

    2. > 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.

        1. That’s quite high for the procie. Prodesk 400 G3 i5-6500T with 16 RAM 512GB SSD, WIFI, can idle is around ~6W

      1. 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.

        1. > 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.

          1. 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.

        2. > 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’.

          1. 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.

  6. 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)

    1. 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…

      1. 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!

  7. 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

Leave a Reply

Your email address will not be published.

Advertisement
Advertisement