In March, 2026 I built a high-end PC, and went all-in on Fedora 43 as my only OS.
"I'm going all in on Linux with cutting edge-hardware!
What could possibly go wrong..?"
1244 hours of troubleshooting later, I managed to get everything working.
I'll save the AI-related issues in another post, but for now...
Here is everything needed to get it working for gaming, from fresh install to launching steam games on a 5K ultrawide.
The Hardware
- CPU: AMD Ryzen 9 9950X3D
- GPU: ASUS ROG Astral GeForce RTX 5090 32GB OC
- RAM: Kingston FURY Renegade 64GB DDR5-6000 CL38
- Motherboard: X870E Aorus Elite
- PSU: Phanteks AMP GH 1200W Platinum
- Cooler: Arctic Liquid Freezer III 360
- Case: Fractal Torrent
- Storage: Samsung 990 Pro 4TB (LUKS encrypted)
- Monitor: Dell U4025QW 40" ultrawide (5120x2160 @ 120Hz)
Step 1: Install Fedora 43
I installed Fedora 43 Workstation from USB with full-disk LUKS encryption. Boots into GNOME on Wayland using the default nouveau/nova_core open source driver.
Step 2: System Update and RPM Fusion
sudo dnf upgrade --refresh
sudo reboot
The --refresh flag forces dnf to download fresh repo metadata. On a fresh install the cache can be stale, causing dnf upgrade to find nothing when updates actually exist.
After reboot, enable RPM Fusion (provides NVIDIA drivers and Steam):
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
Step 3: NVIDIA Driver (Open Kernel Module)
This is the most important step. RTX 5000 series (Blackwell) GPUs require NVIDIA's open kernel modules. The standard closed/proprietary module does not work. This is a deliberate NVIDIA decision for all Blackwell and newer architectures.
sudo dnf install akmod-nvidia-open
Wait 5 minutes for the kernel module to build. Verify:
modinfo -F version nvidia
Should return 580.126.18 or newer.
Configure modeset and fbdev
echo "options nvidia-drm modeset=1 fbdev=1" | sudo tee /etc/modprobe.d/nvidia.conf
sudo grubby --update-kernel=ALL --args='nvidia-drm.modeset=1 nvidia-drm.fbdev=1'
LUKS Encryption: Force Early Module Loading
If your root partition is LUKS encrypted, the NVIDIA modules must be loaded in the initramfs before the encrypted root is unlocked. Without this, the boot-to-desktop transition fails with a black screen.
echo -e "force_drivers+=\" nvidia nvidia_modeset nvidia_uvm nvidia_drm \"" | sudo tee /etc/dracut.conf.d/nvidia.conf
sudo dracut --force
sudo reboot
If your drive is not encrypted, skip the dracut config but still run sudo dracut --force.
Verify
nvidia-smi
echo $XDG_SESSION_TYPE
nvidia-smi should show the RTX 5090. $XDG_SESSION_TYPE should say wayland.
If You Get a Black Screen
Reboot, mash Esc for the GRUB menu, select the Fedora entry, press e, navigate to the end of the linux line, add nomodeset, press Ctrl+X. This bypasses the NVIDIA driver so you can troubleshoot.
Common causes:
- Installed
akmod-nvidiainstead ofakmod-nvidia-open. Fix:sudo dnf swap akmod-nvidia akmod-nvidia-open - Missing dracut config for LUKS. Fix: add the
force_driversline above. - Missing modeset kernel args. Fix: add the
grubbyargs above.
After any fix, run sudo dracut --force before rebooting.
Step 4: BIOS Settings
Access BIOS by pressing DEL during boot. Enable these two settings:
- EXPO (XMP for AMD): Without it, DDR5-6000 defaults to 4800MT/s. Significant free performance.
- X3D Turbo Mode: Optimizes the 9950X3D's CCD routing for gaming workloads.
Step 5: Steam and Proton
sudo dnf install steam
After launching Steam, go to Settings > Compatibility > "Enable Steam Play for all other titles" and select the latest Proton version.
If Steam shows a "bwrap crashed" notification on first launch, ignore it. Harmless sandboxing warning.
Step 6: Multimedia Codecs
Some Proton games need gstreamer for cutscenes and video playback:
sudo dnf install gstreamer1-plugins-bad-free gstreamer1-plugins-ugly gstreamer1-plugins-good-extras ffmpeg
Step 7: GameMode
GameMode is a daemon that temporarily applies performance optimizations when a game launches and reverts them when you quit. On Fedora 43 with a Zen 5 CPU, the main thing it does is flip the amd-pstate-epp driver from balance_performance to performance, which tells the CPU to hold higher clocks more aggressively under load. Without it, your CPU runs games on the balanced profile.
sudo dnf install gamemode
To activate it, prepend gamemoderun to a game's launch options. See Step 9 for the full launch command.
Step 8: Proton-GE for Better Compatibility
Stock Valve Proton works for most games, but GE-Proton (a community fork maintained by GloriousEggroll) ships with additional patches for DLSS 4, Frame Generation, media codecs, and fixes for specific games that Valve hasn't upstreamed yet. On a 5090 this matters for newer titles using the latest NVIDIA features.
Install ProtonUp-Qt via Flatpak, which is the standard tool for managing Proton-GE versions:
flatpak install flathub net.davidotek.pupgui2
Launch it, click "Add version", pick the latest GE-Proton release, install. Then in Steam, right-click a game > Properties > Compatibility > "Force the use of a specific Steam Play compatibility tool" > select GE-Proton.
When to force GE-Proton:
- Force it for Windows-only games using newer NVIDIA features (Cyberpunk 2077, Hogwarts Legacy, Uncharted, anything with DLSS 4 or Frame Generation), and older games where stock Proton has known bugs.
- Leave default Proton for Valve games (CS2, Half-Life 2, Portal).
- Leave native Linux versions alone for games with proper Linux ports (Baldur's Gate 3, Hades II, Paradox grand strategy titles, Hollow Knight: Silksong).
Step 9: Launch Options for Ultrawide and Performance
This is the launch options string you'll use for most games. Set it per-game in Steam: right-click game > Properties > Launch Options.
gamemoderun gamescope -w 5120 -h 2160 -r 120 -f --force-grab-cursor -- %command%
Adjust -w, -h, and -r to your monitor's native resolution and refresh rate.
What each part does:
gamemoderunactivates GameMode for the game's process tree, flipping CPU EPP to performance for the duration of the session.gamescopeis a micro-compositor that runs the game in its own isolated Wayland session at a fixed resolution and refresh rate. It handles ultrawide resolutions cleanly, even for games that don't natively support them (it letterboxes 16:9 games at 21:9 instead of stretching).-w 5120 -h 2160 -r 120forces the gamescope surface to your panel's native mode. Games that don't list 5K2K in their internal options will still render at it.-fmakes gamescope fullscreen.--force-grab-cursorfixes a mouse capture bug where in-game mouse movement stops working in some titles. Without it, the mouse works in menus but not gameplay. Required for CS2, harmless everywhere else.
Do not use --grab (does not exist) or -e (can prevent some games from launching). On NVIDIA + Wayland, letting games run in X11 inside gamescope (the default) produces less stuttering than XWayland without gamescope.
CS2-specific addition
CS2 also wants these console arguments after %command%:
gamemoderun gamescope -w 5120 -h 2160 -r 120 -f --force-grab-cursor -- %command% -novid -vulkan
CS2 works through Proton with VAC anti-cheat fully supported. FACEIT anti-cheat does not work on Linux.
Key Takeaways
Use akmod-nvidia-open, not akmod-nvidia. Every guide for older NVIDIA cards says akmod-nvidia. For Blackwell (RTX 5000 series), that is wrong and will give you a black screen.
LUKS encryption requires initramfs changes. If you encrypted your drive, the NVIDIA modules must be force-loaded in dracut.
Learn the nomodeset escape hatch. Knowing how to edit the GRUB entry and add nomodeset will save you whenever driver changes go wrong.
The gaming stack is GameMode + Gamescope + Proton-GE. GameMode tunes the CPU, gamescope handles the display, Proton-GE handles Windows compatibility. Once you have all three configured, the same launch options work for nearly every game in your library.
Fedora 43 is a perfectly capable gaming OS. Steam, Proton, Wayland, and a 5090 all work together with a little bit of setup.
Become a subscriber receive the latest updates in your inbox.
Member discussion