Fedora 44 KDE — NVIDIA RTX 4050 Max-Q 驱动安装指南
系统环境
| 项目 | 值 |
|---|---|
| 系统 | Fedora 44 (KDE Plasma Desktop Edition) |
| 内核 | 6.19.12-200.fc43.x86_64 |
| 集显 | AMD Radeon 780M (当前默认) |
| 独显 | NVIDIA RTX 4050 Max-Q (AD107M) |
| Secure Boot | 已开启 |
| 已装 NVIDIA 包 | libnvidia-ml, libnvidia-cfg, nvidia-driver-cuda-libs, nvidia-persistenced (560.35.05, fc39) |
| 缺失 | akmod-nvidia, 内核模块, nvidia-smi |
问题诊断
- NVIDIA 内核模块未加载 — 缺少
akmod-nvidia包,没有编译内核模块 - Secure Boot 阻止模块加载 — 即使编译了模块,未签名也会被拒绝
- 部分库版本过旧 — 已装的库是 fc39 (560.35.05),当前系统是 fc44,仓库里最新是 595.58.03
安装步骤
第1步:启用 rpmfusion-nonfree 仓库
Fedora 44 默认未启用,且 dnf5 语法与旧版不同:
# dnf5 用 setopt,不是 --set-enabled
sudo dnf config-manager setopt rpmfusion-nonfree.enabled=1 rpmfusion-nonfree-updates.enabled=1
第2步:卸载旧版冲突包
已装的 fc39 旧包(560.35.05)会与 fc44 新包(595.58.03)冲突,必须先卸:
sudo dnf remove nvidia-driver-cuda-libs libnvidia-ml libnvidia-cfg nvidia-persistenced
第3步:安装 NVIDIA 驱动
sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda
这会安装:
akmod-nvidia— 内核模块自动编译框架xorg-x11-drv-nvidia-cuda— CUDA 工具(含 nvidia-smi)- 以及相关依赖(nvidia 驱动用户态库、X11 驱动等)
第4步:处理 Secure Boot — 签署内核模块
Secure Boot 已开启,必须签署 NVIDIA 内核模块,否则加载不了。
方案 A:使用 akmods 自动签名(推荐)
Fedora 44 中工具名为 kmodgenca(不是 kmodgenkey):
# 1. 确保 akmods 已安装
sudo dnf install akmods
# 2. 生成 CA 密钥对(-a 使用默认值,-f 强制覆盖已有)
sudo kmodgenca -a -f
# 密钥生成到 /etc/pki/akmods/private/
# 证书生成到 /etc/pki/akmods/certs/
# 3. 将公钥注册到 MOK(Machine Owner Key)
sudo mokutil --import /etc/pki/akmods/certs/public_key.der
# 系统会提示设置一个一次性密码,记住它
Fedora 44 注意: 工具名是
kmodgenca(生成 CA),旧教程中写的kmodgenkey在此版本不存在。
方案 B:关闭 Secure Boot(简单但降低安全性)
重启进入 BIOS/UEFI:
- 开机按 F2 / Del / Esc(取决于品牌)进入 UEFI 设置
- 找到 Security → Secure Boot → Disabled
- 保存退出
第5步:重启并注册 MOK 密钥(方案 A 专用)
- 重启系统:
sudo reboot - 启动时出现蓝色 MOK Manager 界面
- 选择 "Enroll MOK" → Continue → 输入你之前设置的密码 → Yes
- 系统继续启动
第6步:验证驱动加载
重启完成后,打开终端:
# 检查内核模块
lsmod | grep nvidia
# 应该看到:nvidia, nvidia_uvm, nvidia_drm, nvidia_modeset
# 检查 GPU 状态
nvidia-smi
# 应该显示 RTX 4050 的信息和驱动版本
如果 nvidia-smi 报错或模块未加载:
# 手动触发编译
sudo akmods --force
# 重建 initramfs
sudo dracut --force
# 再次重启
sudo reboot
第7步:设置 NVIDIA 为默认 GPU
驱动安装成功后,选择 GPU 使用策略。已选择 PRIME Render Offload(按需使用)。
验证当前状态
# Default renderer (should be AMD)
glxinfo | grep "OpenGL renderer"
# → AMD Radeon 780M Graphics
# PRIME Offload renderer (should be NVIDIA)
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep "OpenGL renderer"
# → NVIDIA GeForce RTX 4050 Laptop GPU
已配置 alias(~/.bashrc)
# NVIDIA PRIME Offload: run apps on discrete GPU (RTX 4050) instead of integrated AMD GPU
# Usage: nvidia-run <command> e.g. nvidia-run steam, nvidia-run glxgears
alias nvidia-run='__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia'
日常使用
# Normal usage — uses AMD (power saving, default)
firefox
code
# GPU-intensive apps — prefix with nvidia-run
nvidia-run steam
nvidia-run glxgears
nvidia-run python train.py
注意: 新终端自动加载 alias。当前终端需先执行
source ~/.bashrc。
其他备选方案(未采用)
方式 B:环境变量全局默认(未采用)
# in ~/.bashrc
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
所有应用都用 NVIDIA。缺点: 续航大幅缩短、发热高。
方式 C:KDE 系统设置(未采用)
KDE Plasma 6 中:系统设置 → 显示与监视 → 组合器 → 选择 GPU
方式 D:Xorg 配置(未采用)
xrandr --listproviders
sudo xrandr --setprovideroutputsource NVIDIA-G0 AMD
sudo xrandr --auto
故障排除
nvidia-smi 找不到
# 确认包已安装
rpm -qa | grep nvidia
# 检查 PATH
which nvidia-smi
# 通常在 /usr/bin/nvidia-smi
内核模块加载失败(dmesg 报 "Required key not available")
说明 Secure Boot 拒绝了未签名模块:
- 确认已执行 MOK 注册并重启
- 或关闭 Secure Boot
内核更新后模块消失
# akmod 会自动为新内核编译,但有时需要手动触发
sudo akmods --force
sudo dracut --force
黑屏无法启动
在 GRUB 启动菜单按 e 编辑启动参数,在 linux 行末尾添加:
nouveau.modeset=0 nvidia-drm.modeset=1
或者按 Ctrl+Alt+F2 进入 TTY,卸载驱动:
sudo dnf remove akmod-nvidia
sudo reboot
速查命令
# 启用仓库(dnf5 语法)
sudo dnf config-manager setopt rpmfusion-nonfree.enabled=1 rpmfusion-nonfree-updates.enabled=1
# 卸载旧版冲突包
sudo dnf remove nvidia-driver-cuda-libs libnvidia-ml libnvidia-cfg nvidia-persistenced
# 安装驱动
sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda
# 生成签名密钥(Fedora 44 用 kmodgenca)
sudo kmodgenca -a -f
# MOK 注册(Secure Boot)
sudo mokutil --import /etc/pki/akmods/certs/public_key.der
# 手动编译 + 重建
sudo akmods --force && sudo dracut --force
# 验证
nvidia-smi
lsmod | grep nvidia
# 使用 NVIDIA 运行应用
nvidia-run <命令> # e.g. nvidia-run steam

浙公网安备 33010602011771号