0

Is there any way to run a MIPS binary on a Linux x86/x86-x64 machine? I got some applications for Enigma2 set-top-boxes (which is also based on Linux) that I want to run on a x86/x86-64 machine. These plugins are only available for MIPS processors.

phuclv
  • 37,963
  • 15
  • 156
  • 475
  • You need to find MIPS emulators for Linux and run your apps inside emulator. – M.Mahdipour Apr 22 '17 at 18:54
  • 1
    Possible duplicate of [How can I execute MIPS assembly programs on an x86 linux?](https://stackoverflow.com/questions/464313/how-can-i-execute-mips-assembly-programs-on-an-x86-linux) – phuclv Apr 13 '19 at 14:17
  • @phuclv that question refers to the spim emulator which can only emulate assembly but not the binary itself – KuhakuPixel Mar 24 '22 at 13:30

2 Answers2

3

The keyword is "emulator". The most famous emulator is qemu which can pretty much emulate any architectures out there, but there are also lots of MIPS emulators on Linux that you can find in the Linux-MIPS wiki:

  1. Open Virtual Platforms (OVP) OVPsim
  2. GXemul
  3. SimOS
  4. Sulima
  5. MIPSsim
  6. MipsSim
  7. SPIM
  8. VMIPS
  9. Virtutech Simics
  10. SandUPSim
  11. MPS
  12. YAMS
  13. MAME/MESS
  14. MISSE
  15. Cisco 7200 Simulator
  16. QEMU
  17. VirtualMIPS
  18. Miep
  19. MARS
  20. QtMips

Note that there are full-system emulation (which is heavier) and user-mode emulation which emulates a single process. Depending on which type you need you must choose one, but qemu supports both

  • Full-system emulation: Run operating systems for any machine, on any supported architecture
  • User-mode emulation: Run programs for another Linux/BSD target, on any supported architecture

However performance will be terrible so you'll never want to run an app that need to be fast like a video decoder in a set-top-box. If the source is available then just recompile it

See Decompile / Run MIPS executable under x86_64 Ubuntu

phuclv
  • 37,963
  • 15
  • 156
  • 475
  • Some of these emulate a whole machine that you can run Linux-MIPS on (e.g. QEMU). Others emulate a "toy" MIPS with some "system calls" that call into the emulator itself as a simple standard library for reading/writing strings and numbers in various formats, and maybe some MMIO devices or video RAM (MARS, SPIM). Important to sort your list into different types of emulators. – Peter Cordes Apr 14 '19 at 01:01
  • Also, some are emulators (applying the as-if rule however they want, like dynamic recompilation at least when you're not single-stepping, e.g. maybe QEMU), while others are actual *simulators*, e.g. of the classic 5-stage RISC pipeline. MARS has a microarchitecture window you can open to see instructions go through pipeline stages. – Peter Cordes Apr 14 '19 at 01:03
0

Qemu could be your Messiah this time. I use it personally and it really saves a lot of pain using an FPGA. https://www.linux-mips.org/wiki/QEMU

Of course, this isn't natively executing the MIPS binary on your computer. But I suppose that if you can find plugin of your app coded for MIPS processors, the app itself can be found for MIPS.

Kuu Aku
  • 320
  • 2
  • 6