DEV Community

Cover image for NVIDIA Driver Setup on Fedora 43 Workstation
KALPESH
KALPESH

Posted on

NVIDIA Driver Setup on Fedora 43 Workstation

RTX 3050 Mobile (Hybrid AMD + NVIDIA Laptop)

Reference Guide: Comprehensive-Wall28/Nvidia-Fedora-Guide


System Profile

Property Value
OS Fedora 43 Workstation
GPU (dGPU) NVIDIA GeForce RTX 3050 Mobile
GPU (iGPU) AMD Radeon Vega (Renoir)
LUKS Encryption ❌ None
Secure Boot ❌ Disabled
Driver Installed 580.142

Why the Freeze Happened

The freeze + screen dimming during use was caused by the default Nouveau open-source driver, which has poor power management on modern NVIDIA GPUs — especially on hybrid AMD+NVIDIA laptops.


The Fix: Install Proprietary NVIDIA Drivers

Step 1 — Update your system

sudo dnf update
Enter fullscreen mode Exit fullscreen mode

Step 2 — Enable RPM Fusion (provides NVIDIA drivers)

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
Enter fullscreen mode Exit fullscreen mode

Step 3 — Identify your GPU

lspci | grep -iE 'VGA|3D|nvidia'
Enter fullscreen mode Exit fullscreen mode

Step 4 — Install the driver (RTX 3050 = current driver)

sudo dnf install akmod-nvidia
sudo dnf install xorg-x11-drv-nvidia-cuda
Enter fullscreen mode Exit fullscreen mode

Step 5 — Watch the kernel module build in real time

⏳ This takes 5–10 minutes. Do NOT reboot until verified.

# Watch live build logs
journalctl --follow --grep=akmod
Enter fullscreen mode Exit fullscreen mode

Then in a separate terminal, keep checking every 2–3 minutes:

modinfo -F version nvidia
Enter fullscreen mode Exit fullscreen mode

✅ When you see a version number like 580.142 — the build is done. Safe to reboot.

❌ If it says Module nvidia not found — it's still building. Wait more.

Step 6 — Reboot

systemctl reboot
Enter fullscreen mode Exit fullscreen mode

Step 7 — Verify after reboot

nvidia-smi
Enter fullscreen mode Exit fullscreen mode

Expected output:

NVIDIA-SMI 580.142    Driver Version: 580.142    CUDA Version: 13.0
GeForce RTX 3050 ...
Enter fullscreen mode Exit fullscreen mode

⚠️ Hybrid GPU Note (AMD + NVIDIA Laptops)

Since this is a hybrid laptop (AMD iGPU + NVIDIA dGPU), there are two separate components managing your GPUs. Understanding both is important.


nvidia-powerd — Power Manager

Its job is purely power management of the NVIDIA GPU:

  • Turns the NVIDIA GPU on/off automatically based on demand
  • Prevents the GPU from staying on when idle (saves battery)
  • Manages dynamic power states — P8 = idle/low power, P0 = full performance (you saw P8 in your nvidia-smi output, which is correct at idle)

💡 Think of it as the power switch manager — it decides when to give the GPU electricity.

Status in your case: ✅ Auto-installed and running. Verify with:

systemctl status nvidia-powerd
Enter fullscreen mode Exit fullscreen mode

PRIME Offload — Rendering Router

Its job is deciding which GPU renders what:

  • Routes specific apps to the NVIDIA GPU for rendering
  • The __NV_PRIME_RENDER_OFFLOAD=1 prefix command is PRIME
  • Tells the system "run THIS specific app on NVIDIA"

💡 Think of it as the traffic director — it decides what work gets sent to which GPU.

On Linux, this is manual per-app — unlike Windows (NVIDIA Optimus) which switches automatically.


How They Work Together

You run: nvidia-run glmark2
         ↓
PRIME says → "send this to NVIDIA GPU"
         ↓
nvidia-powerd says → "NVIDIA GPU needed, power it ON"
         ↓
RTX 3050 renders glmark2
         ↓
App closes → nvidia-powerd powers NVIDIA back OFF
Enter fullscreen mode Exit fullscreen mode

In short:

  • nvidia-powerd = controls when the GPU gets power
  • PRIME = controls what gets sent to the GPU

Both are needed and both are active on your system ✅


How Hybrid GPU works (normal behavior)

GPU Role
AMD Vega (iGPU) Drives the display, runs desktop + most apps — always active
NVIDIA RTX 3050 (dGPU) Performance GPU — only activates when explicitly asked via PRIME

Apps running on AMD by default (like glmark2) is correct and expected — it saves battery.


Run any app on NVIDIA explicitly (PRIME)

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia <your-app>
Enter fullscreen mode Exit fullscreen mode

Example:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glmark2
Enter fullscreen mode Exit fullscreen mode

Or add a convenient alias so you don't type that every time:

echo 'alias nvidia-run="__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia"' >> ~/.bashrc
source ~/.bashrc

# Then simply use:
nvidia-run glmark2
nvidia-run steam
Enter fullscreen mode Exit fullscreen mode

Watch NVIDIA GPU usage live while app runs

watch -n 1 nvidia-smi
Enter fullscreen mode Exit fullscreen mode

You should see GPU utilization spike on the RTX 3050 when PRIME offload is active.

Check which GPU is currently rendering

glxinfo | grep "OpenGL renderer"
Enter fullscreen mode Exit fullscreen mode

When WOULD you need extra manual steps?

Only if you experience any of the following after the driver install:

1. Still freezing during use
The NVIDIA module may not be loading at boot. Force-load it:

echo 'options nvidia NVreg_DynamicPowerManagement=0x02' | sudo tee /etc/modprobe.d/nvidia-pm.conf
sudo dracut --force
systemctl reboot
Enter fullscreen mode Exit fullscreen mode

2. Battery draining abnormally fast even at idle
nvidia-powerd may not be running. Re-enable it:

sudo systemctl enable --now nvidia-powerd
systemctl status nvidia-powerd
Enter fullscreen mode Exit fullscreen mode

3. systemctl status nvidia-powerd shows inactive or failed
Reinstall the power management package:

sudo dnf reinstall xorg-x11-drv-nvidia-power
sudo systemctl enable --now nvidia-powerd
systemctl reboot
Enter fullscreen mode Exit fullscreen mode

Quick Diagnostic Commands

# Check Fedora variant
cat /etc/os-release

# Check LUKS encryption
lsblk -o NAME,TYPE,FSTYPE,MOUNTPOINT

# Check Secure Boot status
mokutil --sb-state

# Check GPU(s)
lspci | grep -iE 'VGA|3D|nvidia'

# Check driver version (before reboot)
modinfo -F version nvidia

# Check driver after reboot
nvidia-smi

# Check nvidia-powerd status
systemctl status nvidia-powerd

# Watch akmod build live
journalctl --follow --grep=akmod
Enter fullscreen mode Exit fullscreen mode

Common Problems

Problem Cause Fix
Module nvidia not found Still building Wait 5–10 min, retry modinfo
Black screen after reboot Wrong driver version Boot to TTY (CTRL+ALT+F2), run sudo dnf remove "*nvidia*"
nvidia-smi: command not found CUDA not installed sudo dnf install xorg-x11-drv-nvidia-cuda
"Nvidia modules failed to load" Secure Boot issue Disable Secure Boot or redo MOK enrollment
Still freezing after install Hybrid GPU power issue Check nvidia-powerd status, consider PRIME config

Guide based on: github.com/Comprehensive-Wall28/Nvidia-Fedora-Guide

Top comments (0)