Fedora – Tuning

Fedora – Pimp my System:

–>Aktualisiert – aber noch nicht komplett getestet! Das passiert die tage.

Die Reihenfolge ist kein Muss, aber empfehlenswert. Ich erweitere mein Fedora-System so, dass es annähernd die Funktionen von Bazzite bietet – nur dass ich am Ende kein unveränderliches (immutable) System habe. Eine zusätzliche Kernel-Anpassung spare ich mir, da Fedora von Haus aus einen aktuellen und zuverlässigen Kernel mitbringt.

sudo dnf update -y

RPM Fusion:

Falls bei der Ersteinrichtung noch nicht erledigt:

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf upgrade --refresh

ffmpeg-free gegen das echte ffmpeg tauschen:

sudo dnf swap ffmpeg-free ffmpeg --allowerasing

DNF erkennt, dass ffmpeg (aus RPM Fusion) das beschnittene ffmpeg-free (von Fedora) ersetzen soll.

Das Flag --allowerasing löst Abhängigkeitskonflikte auf, indem es die beschnittenen Bibliotheken entfernt und durch die voll ausgestatteten Versionen ersetzt.

Mein System kann nun alle gängigen Codecs inkl. Hardware-Beschleunigung (VAAPI) nutzen.


Gaming Essentials (ohne Steam) und Features:

sudo dnf install -y \
    mangohud \
    goverlay \
    gamemode \
    gamescope \
    lutris \
    wine \
    winetricks \
    liberation-fonts \
    corefonts \
    cabextract \
    protontricks \
    bottles \
    flatpak

Wine-Konfiguration:

winecfg

→ Wine auf Windows 10 setzen


Wayland-Optimierungen (VRR + HDR) und AMD: Shader-Cache erhöhen :

sudo nano /etc/environment

Folgendes füge ich hinzu:

## Gilt nur für KDE Plasma
# Bevorzugt Variable Refresh Rate für Displays mit G-Sync oder FreeSync
KWIN_DRM_PREFER_VRR=1

## Gilt nur für KDE Plasma
# Aktiviert HDR für den KWin-Fenstermanager
KWIN_DRM_ENABLE_HDR=1

## AMD: Shader-Cache erhöhen
# Erzwingt die RADV-Vulkan-Implementierung
AMD_VULKAN_ICD=RADV

# Erhöht die Shader-Cache-Größe von AMD auf 12 GB
MESA_SHADER_CACHE_MAX_SIZE=12G

# Erzwingt Hardware-Beschleunigung in vielen Apps
LIBVA_DRIVER_NAME=radeonsi

Strg-x, y, Enter

System Neustart empfohlen.


Steam & Proton-GE

Enweder nativ oder per Flatpak. Nicht unbedingt beide Versionen gleichzeitig. Ich verwende seit Version 43 wieder die native Installation. Native hat oft weniger Probleme mit udev für Controller.

Nativ:

sudo dnf install steam steam-devices -y
sudo udevadm control --reload
sudo udevadm trigger

ODER Flatpak:

flatpak install flathub com.valvesoftware.Steam -y

Nun Steam kurz starten (die erste Initialisierung dauert etwas), anmelden und wieder beenden und schließen (auch in der Taskleiste).


Ext. Mountverzeichnis für Spiele wird in Steam nicht erkannt? (z.B. Steam über Flatpak installiert):

Mein Spieleverzeichnis liegt auf:

/mnt/extssd1/SteamLibrary/steamapps

Folgende Befehle setze ich nun:

flatpak install flatseal
sudo chown -R $USER:$USER /mnt/extssd1/SteamLibrary
sudo flatpak override com.valvesoftware.Steam --filesystem=/mnt/extssd1

Steam neu starten und den Bibliotheksordner hinzufügen.

Wenn das nichts bringt, dann:

mkdir -p ~/SteamLibrary
ln -s /mnt/extssd1/SteamLibrary/steamapps ~/SteamLibrary/steamapps

Steam neu starten und den Bibliotheksordner /home/SteamLibrary hinzufügen.


ProtonUp-Qt für Proton-GE

flatpak install flathub net.davidotek.pupgui2 -y
flatpak run net.davidotek.pupgui2

→ Proton-GE installieren und in Steam aktivieren:

  • Steam → Settings → Compatibility
  • „Enable Steam Play for all other titles“
  • GE-ProtonX-XX als Standard setzen (hier verwende ich immer die neueste Version)

1x pro Monat führe ich den Befehl flatpak run net.davidotek.pupgui2 erneut aus und wähle wieder die aktuellste Version. Hier gibt es kein Auto-Update.


Vulkan & Mesa

sudo dnf install mesa-vulkan-drivers mesa-vulkan-drivers.i686 vulkan-tools -y
vulkaninfo | grep "deviceName"

OBS + Encoder

sudo dnf install obs-studio obs-studio-plugin-vaapi -y

Performance-Tweaks:


GameMode konfigurieren

nano ~/.config/gamemode.ini
[cpu]
governor=performance # Kein CPU-Powersave während des Spielens
gov_warning=0 # Unterdrückt Warnungen zum CPU-Governor

[log]
log_level=2 # 1=debug, 2=info, 3=warn, 4=error

Swappiness reduzieren

echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Zusätzliche Tools

flatpak install -y flathub com.heroicgameslauncher.hgl com.usebottles.bottles com.discordapp.Discord

Steam-Spiele starten & optimieren

Steam-Launch-Optionen (Beispiele):

  • Mit GameMode:
    • gamemoderun %command%
  • Mit GameMode und MangoHud:
    • mangohud gamemoderun %command%
    • Weiteres Beispiel:
    • WINE_FULLSCREEN_FSR=1 DXVK_HDR=1 mangohud gamemoderun %command%
  • WINE_FULLSCREEN_FSR=1
    • Aktiviert AMD FSR für Spiele, die im Vollbild laufen.
    • Funktioniert mit Proton/Wine.
  • DXVK_HDR=1
    • Aktiviert HDR‑Support in DXVK (Proton).
    • Nur sinnvoll, wenn das Spiel HDR unterstützt und ich HDR in KDE/Wayland aktiviert habe.
  • mangohud
    • Overlay für FPS, Frametime, GPU/CPU‑Daten.
    • Kann auch mit MANGOHUD=1 aktiviert werden, aber der Befehl mangohud ist bequemer.
  • gamemoderun
    • Startet das Spiel mit Feral GameMode (CPU‑Governor, I/O‑Priorität usw.).

Shader-Pre-Caching aktivieren:

Steam → Settings → Downloads → Shader Pre-Caching


ZRAM ist bei Fedora43 schon aktiviert.

swapon --show

Auto-Tweaks wie Bazzite:

Befehle nur einmal ausführen.

echo "kernel.nmi_watchdog=0" | sudo tee -a /etc/sysctl.d/90-boost.conf
  • Deaktiviert den NMI Watchdog, ein Kernel-Feature, das CPU-Hänger erkennt und protokolliert
  • Vorteil: leichter Performance-Boost, da weniger CPU-Interrupts für Überwachung erzeugt werden
  • Nachteil: Bei echten Systemhängern bekomme ich keine automatische Warnung
echo "vm.dirty_background_bytes=100000000" | sudo tee -a /etc/sysctl.d/90-boost.conf
  • Definiert, wie viele Bytes an „dirty pages“ (vom RAM noch nicht auf die Festplatte geschriebene Daten) im Hintergrund gespeichert werden dürfen, bevor das System beginnt, sie zu schreiben
  • 100000000 Bytes ≈ 95 MB
  • Vorteil: Weniger Festplattenzugriffe im Hintergrund → flüssigeres Arbeiten bei Spielen oder großen Schreiblasten
echo "vm.dirty_bytes=200000000" | sudo tee -a /etc/sysctl.d/90-boost.conf
  • Maximal erlaubte „dirty pages“, bevor das Schreiben blockiert
  • 200000000 Bytes ≈ 190 MB
  • Vorteil: Setzt eine Obergrenze für RAM, bevor das System Daten zwangsweise auf die Platte schreibt
sudo sysctl --system
  • Liest alle Dateien in /etc/sysctl.d/ und wendet die neuen Kernelparameter sofort an, ohne Neustart

Ein kleiner Tipp für den ersten Test: Wenn ich das erste Mal ein Spiel starte, kann ich im Terminal gamemoded -s eingeben. Wenn dort steht „gamemode is active“, weißt ich, dass mein Plan aufgegangen ist.

Ein weiterer Tipp: Da ich unter Wayland arbeite und HDR aktiviert habe: Falls manche Spiele beim Starten etwas dunkel wirken oder HDR nicht sofort greift, schau ich in den KDE-Systemeinstellungen unter „Monitor“ nach – dort gibt es oft einen Schieberegler für die SDR-Helligkeit innerhalb von HDR.

Noch ein Tipp: Viele Spiele aktivieren HDR nur im „Exclusive Fullscreen“. Fenstermodus oder Borderless kann HDR verhindern. Hier teste ich noch.






Optional – Kernel-Tuning

Eines Vornweg: Ein Kernel-Tuning auf Fedora bringt kaum bis keine Vorteile bei Verwendung von einer Auflösung von 2k oder 4k. Der Unterschied liegt hier bei knappen 0 – 2%. Bei einigen Anwendungen fühlt das etwas minimal „direkter“ an – keinesfalls nach der Devise „wow, hier spiele ich in einer anderen Liga“. Wenn ich die Nachteile gegenüber setze, verzichte ich persönlich auf diese Anpassung.

Was Fedora hier besser macht:

  • Kernel, Mesa, Wayland, KDE/GNOME sind aufeinander abgestimmt
  • Weniger Edge-Cases bei: HDR, VRR, OBS, Proton-Updates
  • Fedora folgt Upstream sehr nah
  • Keine Drittanbieter-Patches, die plötzlich brechen
  • Perfekt für: Wayland, HDR, neue Mesa-Features
  • Weniger Wartung:
    • Kein Kernel-Babysitten
    • Kein COPR nach Fedora-Upgrade reparieren
    • Kein Patch-Regressionen debuggen

Auf einem Satz gebracht: Fedora ist mittlerweile so gut, dass Custom-Kernel kaum noch echten Mehrwert bringen – außer für Spezialfälle.

Nicht getestet – nur Theorie, da ich das nicht verwende:

Hier das COPR-Repository von bieszczaders, der die CachyOS-Kernel-Builds für Fedora pflegt.

# 1. COPR Plugin aktivieren (falls nicht vorhanden)
sudo dnf install 'dnf-command(copr)'

# 2. Das CachyOS Kernel Repository aktivieren
sudo dnf copr enable bieszczaders/kernel-cachyos

# 3. CachyOS Kernel installieren
sudo dnf install kernel-cachyos

# 4. Optional: CachyOS-Settings für Fedora (optimiertes Tweaking, wenn man weiß man man tut)
sudo dnf install cachyos-settings

Nach einem Neustart: Beim Booten kurz die Shift-Taste (oder Esc) halten, um das Grub-Menü zu sehen. Dort den Eintrag mit „cachyos“ im Namen auswählen – sollte aber normalerweise automatisch ganz oben stehen.

Welche Vorteile bringt es – vorausgesetzt man weiß, was man tut?

Spürbar vor allem bei:

  • CPU-limitierten Spielen
  • Emulatoren
  • Frametimes (weniger Microstutter)

Kein „+20 FPS“, eher:

  • stabilere Frametime
  • etwas schnelleres Reagieren
  • geringere Input-Latenz

Passt gut zum Setup

  • Fedora + Wayland + AMD + Gaming

Welche Nachteile entstehen?

  • COPR = kein offizieller Fedora-Support
  • Maintainer = Einzelperson (bieszczaders)
  • Mittelfristig zukunftsicher
  • eigentlich nur für Gaming-Enthusiasten geeignet, mit eigens eingebrachter Pflege
  • Bei einem Upgrade zur nächsten Version ist es besser, den Kernel vorübergehend abzuschalten und das Original zu verwenden