How to build qemu-system-arm in Linux

Most (all?) Linux distributions have a binary package for qemu-system (including qemu-system-arm) in order to emulate non-x86 targets such as ARM, MIPS, PPC, Alpha and more.

However, in some case you may need to very latest version of qemu-system and it may not be able yet for your distribution.

Here’s how to do to build qemu-system-arm without building all qemu-system-***:

  1. Download the latest stable version of qemu (qemu 1.0.1 at the time this post was written):

    or get the latest source code (development tree) which has the very latest features and bug fixes, but may not work or compile:

    or get the latest source code from linaro (which may be more up-to-date for ARM targets):
  2. Configure qemu to build ARM targets:
  3. Build and install qemu-system-arm:
  4. Verify the latest version of qemu-ssytem-arm is installed:
Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard

10 Replies to “How to build qemu-system-arm in Linux”

  1. I followed the steps here but did not end up seeing a change in version when running qemu-system-arm –version

    I was unable to get the “make install” to work without sudo. Maybe that is a clue as to what I did wrong?

    TIA for help!

  2. @ Tim
    I’ve updated the steps to use “sudo make install” instead. Sorry about that.

    If qemu-system-arm version has not changed, it’s possible your old qemu is installed in a different path.

    Assuming the make install worked, run “locate qemu-system-arm” to see the locations of qemu-system-arm.

    (If there is only one and this is the old one, run “updatedb” first and then “locate qemu-system-arm”)

    If you want to overwrite your old qemu with the new one, you can use –prefix=INSTALL_PATH with configure, something like:

    or you can just use the full path to run it, e.g. /usr/local/bin/qemu-system-arm

  3. @cnxsoft
    Do you know if the QEMU supports Qualcomm MSM ARM board series? How can one enable the support for the MSM board series?


  4. @ Eschol
    You can run “qemu-system-arm -M ?” to see the list of supported boards.
    I can’t see any Qualcomm board that are supported.

    I’ve searched for “Qualcomm Virtual Platforms”, but could not find any. It appears Qualcomm will be working on this, since they are currently recruiting Virtual platform engineers.

    As long as your program does not access the hardware directly, you should be able to run your application in other ARM Cortex A8/A9 based board such as the Beagleboard.

  5. Seems

    sudo apt-get install qemu qemu-system

    does the above job. Thanks for the above article

  6. I am using windows subsystem for linux (WSL) on windows 10 – ubuntu app.
    When I run the code “./configure –target-list=arm-softmmu,arm-linux-user” from the qemu folder I get:
    ERROR: Python not found. Use –python=/path/to/python

    So I run: ” ./configure –target-list=arm-softmmu,arm-linux-user –python=/mnt/c/Python27″
    And I get:
    ./configure: 1576: ./configure: /mnt/c/Python27: Permission denied

    ERROR: Cannot use ‘/mnt/c/Python27’, Python 2.6 or later is required.
    Note that Python 3 or later is not yet supported.
    Use –python=/path/to/python to specify a supported Python.

    My Python version on /mnt/c/Python27 is 2.7.16

    I’m very new to linux and I would very much appreciate any help
    Thank you

    1. You may need to change the permissions on /mnt/c/Python27 with chmod command.

      As a side note if you just want to run qemu-system-arm, you could probably install it with:

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC