Open main menu

CDOT Wiki β

Changes

AArch64 QEMU User Space Emulation

851 bytes added, 10:32, 13 October 2023
no edit summary
[[Category:SPO600]]
{{Admon/obsolete|[[AArch64 Emulation]]}}
== QEMU linux-user ==
There is a [http://wiki.qemu.org/Main_Page QEMU] userspace emulator available to execute AArch64 applications on an x86_64 machine and kernel. This program interprets aarch64 binaries and translates operating system calls to the underlying x86_64 kernel, enabling many aarch64 binaries to be executed with good performance. However, because it does not emulate the full system, some capabilities are not available: in particular, debugging software such as gdb and strace will not work.
 
This system works by installing a binfmt (binary format) handler for aarch64 binaries. When the kernel attempts to execute a binary, it will analyze the binary's signature data, and if it matches the aarch64 elf signature, the qemu userspace system is invoked as an interpreter for the binary.
 
This approach works best when a directory tree of a complete aarch64 system is installed, and then chroot is used to make that the root of a new process; this allows the aarch64 binaries to easily use aarch64 shared object libraries (.so). The qemu binfmt handler/interpreter can be installed inside the aarch64 directory tree.
 
Therefore, the two pieces that need to be installed are the directory tree, containing the aarch64 userspace files and interpreter, and the binfmt configuration file.
== Special Mounts ==
== Setting Up Qemu User Space Emulation ==
{{Admon/important|Fedora 19|The tarball mentioned here contains the preliminary aarch64 version of Fedora 19. The library versions, etc. may be older than those on Red or Blueare very old -- some of the earliest Aarch64 ports. Please feel free to update the image and contribute an updated tarball!}}
=== On Australia Xerxes ===
1. Unpack the archive in your home directory:
=== On your home system ===
1. Obtain the files in the <code>/public/qemu-linux-user-aarch64</code> directory on AustraliaXerxes: <code>arm64.qemu-userspace.tgz</code> and <code>qemu-arm64.conf</code>
2. Copy those files your machine.