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
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
Step 3 — Identify your GPU
lspci | grep -iE 'VGA|3D|nvidia'
Step 4 — Install the driver (RTX 3050 = current driver)
sudo dnf install akmod-nvidia
sudo dnf install xorg-x11-drv-nvidia-cuda
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
Then in a separate terminal, keep checking every 2–3 minutes:
modinfo -F version nvidia
✅ 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
Step 7 — Verify after reboot
nvidia-smi
Expected output:
NVIDIA-SMI 580.142 Driver Version: 580.142 CUDA Version: 13.0
GeForce RTX 3050 ...
⚠️ 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 sawP8in yournvidia-smioutput, 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
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=1prefix 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
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>
Example:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glmark2
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
Watch NVIDIA GPU usage live while app runs
watch -n 1 nvidia-smi
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"
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
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
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
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
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)