Hi, can I use qemu to emulate a x86_64 guest on Rock3A?

Hi, I have a rock3a, and installed OS is Debian from radxa offical (download from https://wiki.radxa.com/Rock3/downloads) and is upgrade to latest version.

I have installed qemu package with apt. And I know qemu is a emulator that can emulate a different ISA. But I am not very familiar with ARM world. Is there any virtualization support on ARM platform? And can I use qemu to emulate a x86_64 guest on Rock3A?

Seems like it should be possible by emulation, but not virtualization. Qemu should be able to emulate x86 or x64 on ARM but it would be very very slow. The opposite direction - ARM guest on x86 host would be faster, but still slower than real world ARM CPU.

Have a try box86 or box64:

All Armbian desktop builds comes with preinstalled box64.

You can emulate different architectures but it’s usually very slow and sometimes problematic. You can think about that on powerful computers, but not on such tiny sbc like rock3A. Instead of trying to run something from different arch it’s just better to recompile code to current (if You have that code).
Some programs and services just comes with different arch. You can find most of open source dbs and werbservers as well as many useful programs. Search for name with ARM keyword and probably You will find suitable version. Back in 2014 some cloud providers introduced ARM virtual servers, today almost all have them (based on ARM ampere). Few days ago HP announced ARM based servers. Macs already are ARM. There is more and more software just compiled for this platform.

Oh, I don’t know about this project before, thanks for telling me.

I see. So, does it mean that “virtualization” is only applied to the same ISA?

What ISA do you mean?

I mean, the guest and the host are in the same ISA, for example an arm guest on an arm host.

Not exactly the same, because usually You can virtualize “previous” arch, sometimes in some compatibility mode like x32 on x64 system and also ARMv7 on ARMv8. You should be able to just “run” such programs.
Hardware virtualization allows You to isolate some resources to process that acts like new computer with some small overhead needed for management and security. If you want something that translates from one arch to another then it’s called emulation and that makes big cpu usage.

1 Like