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

问题诊断

  1. NVIDIA 内核模块未加载 — 缺少 akmod-nvidia 包,没有编译内核模块
  2. Secure Boot 阻止模块加载 — 即使编译了模块,未签名也会被拒绝
  3. 部分库版本过旧 — 已装的库是 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:

  1. 开机按 F2 / Del / Esc(取决于品牌)进入 UEFI 设置
  2. 找到 Security → Secure Boot → Disabled
  3. 保存退出

第5步:重启并注册 MOK 密钥(方案 A 专用)

  1. 重启系统:sudo reboot
  2. 启动时出现蓝色 MOK Manager 界面
  3. 选择 "Enroll MOK"Continue → 输入你之前设置的密码 → Yes
  4. 系统继续启动

第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
posted @ 2026-04-22 04:51  游翔  阅读(70)  评论(0)    收藏  举报