Linux SBCs for development
+ reverse engineering

/nl_img1

TL;DR: Tired of cross-compiling for your arm64 target? Try native development instead!

Why would you want to use a Linux-powered single-board computer (SBC) as a development host?

Does it have enough horsepower?

How about storage I/O?

All valid questions.

But before we tackle them, let’s review what purposes SBCs have served up to this point:

Background

Ever since the initial RPi launch almost 15 years ago, makers, hobbyists, and tinkerers have gravitated towards a super-low-cost Linux-capable single-board computer (aka SBC). Traditionally, SBC software development requires a cross-compilation setup.

The CPU architecture of choice when it comes to such SBCs is arm64, which is ubiquitous in everyday gadgets. Potentially, riscv64 is making inroads into this space too (more on this later). Many of the latest-generation SBCs include HDMI and other connector interfaces normally found on regular x86_64 machines. SBCs traditionally come with SD card storage, which is a big bottleneck for I/O and bandwidth-demanding applications. However, newer SBCs are often equipped with NVMe interfaces, which vastly reduces latency and improves I/O overall.

The question moseying around my mind

With these observations in mind, as of 2025, are SBCs capable of serving as a development desktop?

To be more specific: If I have a specific arm64 requirement, can I switch out my x86_64 desktop to an arm64 SBC and still enjoy an ‘acceptable’ experience in terms of overall desktop responsiveness and development activity speeds?

In this scenario, my personal requirement is to use a “normal” Linux distribution with full desktop and all regular development tools available (i.e., no cross-development necessary), which could serve as a development tinkering platform for low-level arm64/riscv64 assembly programming, a reverse engineering (RE) learning, and Linux kernel vulnerability research (VR).

Is it possible?

And if so… which would win a shoot-out?

Let’s find out together.

Alternatives

What are the alternatives if you want to experiment with – and learn the finer details of – arm64/riscv64 system and assembly programming, dynamic RE, and VR, debugging for the purpose of ABI education?

These are certainly viable options, or they could provide a good starting point for your tinkering. However, expert users might find them lacking for the following reasons:

Prerequisites/requirements

What do I unequivocally want from an arm64 SBC platform, requirements which I deem obligatory for development, learning, RE, and VR?

My Linux SBC shoot-out

Basically, I am looking for the most performant SBCs at the near-$100 price target. A not-all-encompassing survey centered on the following products:

Many SBC vendors offer products with the RK3588(S) chip, and probably any of them would be comparable. There is a vast selection of additional SBC products, but tech specification-wise, they are assessed to offer less performance than the two selected.

One bonus SBC is included though:

I fully expected the RV2 is barely usable at all for the laid-out use case, since tech specifications point to performance equal to that of a Raspberry Pi 3 approximately. But it meets the price target, and I added it just for fun.

Evaluation criteria

For the purposes of this article, I am almost exclusively focusing on development and usability performance; the latter is less about the numbers but merely about concluding whether it’s “good enough.”

  1. Compilation benchmark: Source-code compilation of a collection of open-source software.
  2. Practical usability: Subjective usability assessment of my go-to editors, IDE, and tools as previously listed. Specifically, resource-hungry Java applications should run “adequately” swiftly. I fully expect that this test will touch the performance ceiling of what the SBCs are capable of delivering.
  3. For general-purpose benchmarking numbers, I refer to this Phoronix RPi 5 article and this one on Orange Pi RV2, too.

Installation + platform setup

Let’s just list a few pointers on how to set up each platform: documentation availability, NVMe root file system, performance tweaks, etc.

General

For each platform:

Raspberry Pi 5

In summary, I recommend the following distribution installation steps:

Here are the recommended config.txt additions:

[all]
dtparam=pciex1_gen=3
dtparam=nvme
usb_max_current_enable=1
dtparam=uart0=on

# user extra
enable_uart=1
uart_2ndstage=1
enable_rp1_uart=1
arm_freq=2800
#force_turbo=1
#over_voltage_delta=50000

Orange Pi 5 Ultra

Orange Pi RV2

Reference platform

For the purpose of comparing the compilation benchmark with more or less the most performant realistic comparison machine, I include below the numbers for my own main x64_64 desktop machine.

DietPi alternative distribution

In addition to the “regular” vendor distributions, there are generic arm64/riscv64 offerings such as Armbian, DietPi, BredOS, and others. Out of the two highlighted, I spent some time experimenting with DietPi, and it’s worth noting the following:

Results

Ref. PCRPi 5 OC 2.8GHzRPi 5 2.4GHzOPi 5 UltraOPi RV2
Compilation benchmark200 s333 s361 s366 s1658 s
Practical usability

Let’s discuss the results:

DietPi results

Since I was still perplexed by the above results, I had the lingering motivation to experiment some more. I noticed that the good folks running the DietPi distribution included support for OPi 5 Ultra, which is great, since I could conduct a final battle between RPi 5 and OPi 5 Ultra using the same distribution, thus comparing apples to apples. The following is worth noting about this final run:

RPi 5 OC 2.8GHzOPi 5 Ultra with 6.1.115-vendor-rk38xxOPi 5 Ultra with custom-built 6.1.43-rockchip-rk3588
Compilation313 s404 s391 s
Practical usability

Observations:

Conclusions + recommendations

riscv64 landscape 2025

As expected from the outset, the OPi RV2 was not a serious contender in this roundup. Even though it feels like RISC-V as an architecture has been around for a long time, everyone should realize that maturing a new CPU architecture and its implementations takes decades. If we consider ARM with MMU implementations (aka Linux-capable), it has taken more or less 25 years to reach the point where Apple Silicon runs in all Apple devices, including laptops and desktops.

The road is long for RISC-V until riscv64 silicon products reach performance equivalence with arm64 counterparts. ARM has done a seemingly good job advancing and incrementally updating the AArch64 specifications with v8-[1-7] and now v9. Until just recently, riscv64 suffered from an undefined and non-standardized mess with a multitude of specifications being drafted but no mainline roadmap, with the obvious risk of fragmentation across chip manufacturers.

However, things look brighter now:

In summary, perhaps in 2026 there will be enough RVA23 market penetration, even in the ultra low-cost SBC segment, which might justify a follow-up blog entry.

Developer recommendations

Simply put, if you are an aspiring Linux/Android arm64 developer, reverse engineer, or vulnerability researcher on a budget looking for low-cost development and/or learning platforms, for me the Orange Pi Ultra is a solid option, which I am currently putting to use myself. But if you are a person with strong terminal-only persuasion, who thinks that only using vim/tags and other command line tools is a flex, both RPi 5 and OPi 5 will serve you well.

But if you don’t want to deal with more hardware… try our virtual desktops, WarpStations, and access a Linux environment in 5 minutes →

Illustration by Rebecca DeField.

Share the dueling Linux SBCs

Found this article useful?

⇣ Please share it with other folks around the web-based watering hole!

Share on Hacker News

Your Next Read

Discover more from Zetier

Subscribe now to keep reading and get access to the full archive.

Continue reading