Debian – Is it possible to run x86 executable on ARM

armchrome-bookdebianexecutablex86

I'm trying to install Navicat which is an x86-64 binary onto my aarch64 machine, which results in "cannot execute binary file: Exec format error"

Here's the result of running file on the executable:

navicatess15-sqlserver-en.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=d629f6099d2344ad82818172add1d38c5e11bc6d, stripped

And here is my uname -a:

Linux penguin 4.19.98-08076-g24ab33fb8e14 #1 SMP PREEMPT Wed Apr 1 17:17:36 PDT 2020 aarch64 GNU/Linux

Is there any way to run this executable on my machine?

(Idk if this makes any difference but I'm running Linux on my Samsung Chromebook Plus w/ an OP1 processor)

Best Answer

Each architecture speaks its own hardware language so of course ARM CPUs can only run ARM binaries natively. If you want to run binaries for another architecture you need to use an emulator. The most famous x86-64 emulators are qemu and bochs

But emulation is extremely slow so it won't be suitable for time-sensitive applications, and should be the last resort. You'll better off recompile from source if available, or find an ARM alternative software

Related Question