O3DE on Fedora in 2025

O3DE only offers official builds for Ubuntu, but the engine and editor work perfectly fine on Fedora. These instructions show how to build the engine on a Fedora-based system, including immutable versions like Silverblue, Kinoite, Bazzite, etc, and inside a [Toolbox] (https://containertoolbx.org/) (I haven't tested Distrobox, but it might work too)

If you're on Bazzite (like me), then you might not have Toolbox anymore because they replaced it with Distrobox recently. I got it back by layering (rpm-ostree install toolbox), so if you can't get distrobox to work with these instructions, you can try switching to toolbox.

The following has been tested on Fedora 42 (running inside a toolbox on a Bazzite host).

Installing Dependencies

First, here is the list of dependencies required to build the engine and tools:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
sudo dnf install \
    cmake \
    clang \
    ninja-build \
    libxkbcommon-x11-devel \
    libxkbcommon-devel \
    libunwind-devel \
    libzstd-devel \
    pkg-config \
    mesa-libGL-devel \
    mesa-libGLU-devel \
    libxcb \
    libXinerama-devel \
    fontconfig-devel \
    libxkbcommon-devel \
    pcre2-devel \
    zlib-devel \
    xcb-util-keysyms-devel \
    qt5-qtbase-gui

For Toolbox users

There's a glitch that causes your compositor to freeze for a couple of seconds in certain situations. The fix is simple, but weird. You need to add your toolbox's hostname to /etc/hosts, and point it to localhost.

1
2
3
# Add this to /etc/hosts:
127.0.0.1   toolbx toolbox
::1         toolbx toolbox

You usually can't edit /etc/hosts from within a toolbox, so you'll have to do it on your host.

Note: I found this fix on a Github issue some years ago, but don't have the link anymore. I'll update this to point to the issue if I ever find it again. Thanks to whoever discovered this fix!

For Nvidia + Toolbox users

This may or may not be required in your case, but I found that on my system, my Nvidia GPU wasn't being used by Vulkan applications when launched from a toolbox, even though nvidia-smi was detecting it. You can test if you have this issue by running vkcube and seeing which GPU it picks. (vkcube can be installed with sudo dnf install vulkan-tools).

On my system, vkcube in a toolbox launches and crashes with the following output:

1
2
3
Selected WSI platform: xcb
Selected GPU 0: AMD Radeon Graphics (RADV RAPHAEL_MENDOCINO), type: IntegratedGpu
[1]    14287 segmentation fault (core dumped)  vkcube

The fix for this is to run the Nvidia driver installer inside the toolbox, and ignore all the errors it spits out. This is an ugly hack, but it works for me. You can download the driver manually, but I use this helper script to streamline it:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
function update_nvidia() {
        echo "==========\n!!  UPDATING NVIDIA DRIVER  !!\n==========";
        NVIDIA_VERSION=$(cat /proc/driver/nvidia/version | head -n 1 | awk '{ print $8 }')

        INSTALLER=$HOME/nvidia-driver-installer.run

        nvidia_driver_uri=http://us.download.nvidia.com/XFree86/Linux-x86_64/${NVIDIA_VERSION}/NVIDIA-Linux-x86_64-${NVIDIA_VERSION}.run
        wget -O $INSTALLER $nvidia_driver_uri

        echo "Installing latest driver...";

        sudo dnf install -y glx-utils kmod libglvnd-devel || return 1;
        sudo sh $INSTALLER -a -N --ui=none --no-kernel-module || return 1;

        rm $INSTALLER

        if [ $? -ne 0 ]; then
                return 1;
        else
                return 0;
        fi
}

Now just run update_nvidia inside the toolbox, and it will automatically download/install the driver. You will get errors, but they're safe to ignore. The install won't (and can't) break your host's driver, because it's running inside a toolbox.

You will be prompted many times to ask if you wish to abort due to various errors, since the installer will try and fail to overwrite the mounted host driver. Do NOT abort, just continue the install. After a certain point, 'continue' will be the default instead of abort, so you can just hold down the enter key to quickly ignore all errors until it completes.

Once that's done, vkcube works fine:

1
2
Selected WSI platform: xcb
Selected GPU 0: NVIDIA GeForce RTX 4090, type: DiscreteGpu

Building O3DE

At this point, you should be able to follow the official instructions without any problems.

Don't do an SDK build! I could not get it to work after many attempts (and many rebuilds). It seems to be a bug in O3DE's CMake scripts, resutling in Gem files not being installed properly to the SDK location. Idk if it's an O3DE bug, a Linux bug, or just a Fedora one. Either way, don't waste your time compiling the engine for no reason.

Instead, do a Source build. This is inconvenient because you need to compile the entire engine (and editor) from scratch for every project, but it's the most reliable option. It also conveniently lets you poke and prod at the engine source code, which is useful for debugging and learning how the engine works.