StealMemoryRegion guards the open() with LogMan::Throw::AFmt, which compiles out in release builds. With no procfs mounted the fd is -1 and CollectMemoryGaps then loops on read(-1) forever at 100% CPU. This is hit whenever FEX is the x86_64 binfmt handler and something runs an x86 binary in a root without /proc. BuildKit does exactly that: its emulator probe execs a static x86_64 binary in an empty chroot, so every BuildKit start on an Arm host with FEX registered hangs. Reserve nothing instead: StealMemoryRegion returns no regions and Setup48BitAllocatorIfExists skips the 48-bit allocator. The guest then runs without the upper VA hidden, which only matters in environments that previously never got past startup.
FEX: Emulate x86 Programs on ARM64
FEX allows you to run x86 applications on ARM64 Linux devices, similar to qemu-user and box64. It offers broad compatibility with both 32-bit and 64-bit binaries, and it can be used alongside Wine/Proton to play Windows games.
It supports forwarding API calls to host system libraries like OpenGL or Vulkan to reduce emulation overhead. An experimental code cache helps minimize in-game stuttering as much as possible. Furthermore, a per-app configuration system allows tweaking performance per game, e.g. by skipping costly memory model emulation. We also provide a user-friendly FEXConfig GUI to explore and change these settings.
Prerequisites
FEX requires ARMv8.0-a or newer hardware, with minimum extensions FEAT_FP and FEAT_CRC32.
It has been tested with the following Linux distributions, though others are likely to work as well:
- Arch Linux
- Fedora Linux
- openSUSE
- Ubuntu 22.04/24.04/24.10/25.04
An x86-64 RootFS is required and can be downloaded using our FEXRootFSFetcher tool for many distributions.
For other distributions you will need to generate your own RootFS (our wiki page might help).
Quick Start
For Ubuntu 22.04, 24.04, 24.10 and 25.04
Execute the following command in the terminal to install FEX through a PPA.
curl --silent https://raw.githubusercontent.com/FEX-Emu/FEX/main/Scripts/InstallFEX.py | python3
This command will walk you through installing FEX through a PPA, and downloading a RootFS for use with FEX.
For other Distributions
Follow the guide on the official FEX-Emu Wiki here.
Navigating the Source
See the Source Outline for more information.