Fedora 38/39 上搞定 NVIDIA 驱动签名:告别安全启动报错,保姆级图文指南

发布时间:2026/5/30 11:55:25

Fedora 38/39 上搞定 NVIDIA 驱动签名:告别安全启动报错,保姆级图文指南 Fedora 38/39 上解决NVIDIA驱动签名问题的终极指南当你在Fedora 38或39上安装NVIDIA驱动时最令人头疼的问题莫过于安全启动(Secure Boot)导致的驱动签名验证失败。本文将带你深入理解这一问题的根源并提供一套完整的解决方案让你彻底告别NVIDIA kernel module missing的困扰。1. 理解安全启动与驱动签名的关系现代计算机系统采用UEFI安全启动机制来防止恶意软件在操作系统加载前运行。这一安全特性要求所有加载的内核模块都必须经过数字签名验证。对于NVIDIA这样的第三方驱动系统默认不会信任其签名这就是为什么我们需要手动处理签名问题。安全启动的核心流程如下系统启动时UEFI固件验证引导加载程序(如GRUB)的签名引导加载程序验证内核的签名内核验证所有内核模块(包括显卡驱动)的签名当这一链条中的任何一环验证失败系统就会拒绝加载相应组件。这就是为什么我们需要为NVIDIA驱动创建自己的签名密钥并将其添加到系统的可信密钥数据库中。2. 准备工作环境配置与工具安装在开始之前请确保你的系统已更新到最新状态sudo dnf update -y接下来安装必要的开发工具和内核头文件sudo dnf install -y kernel-devel kernel-headers gcc make dkms还需要安装处理安全启动相关的工具sudo dnf install -y mokutil openssl提示如果你的系统是新安装的可能需要先启用RPM Fusion仓库来获取某些软件包。3. 禁用开源Nouveau驱动Fedora默认使用开源的Nouveau驱动来支持NVIDIA显卡。在安装官方驱动前必须先禁用这一驱动创建黑名单配置文件echo blacklist nouveau | sudo tee /etc/modprobe.d/blacklist-nvidia-nouveau.conf echo options nouveau modeset0 | sudo tee -a /etc/modprobe.d/blacklist-nvidia-nouveau.conf更新initramfssudo dracut --force重启系统并验证Nouveau是否已禁用lsmod | grep nouveau如果命令没有输出说明Nouveau驱动已成功禁用。4. 安装NVIDIA官方驱动4.1 下载正确的驱动版本访问NVIDIA官方网站下载适合你显卡的Linux驱动。选择与你的Fedora版本和显卡型号匹配的驱动包通常是一个.run文件。4.2 切换到文本模式为了避免图形界面干扰安装过程我们需要切换到文本模式sudo systemctl isolate multi-user.target4.3 运行安装程序给下载的.run文件添加执行权限并运行chmod x NVIDIA-Linux-x86_64-*.run sudo ./NVIDIA-Linux-x86_64-*.run安装过程中会遇到几个关键选项构建内核模块选择是签名内核模块选择是生成新密钥对首次安装选择生成新密钥对删除私有签名密钥建议选择是除非你频繁更新内核安装完成后不要立即重启系统还需要完成以下关键步骤。5. 处理驱动签名与安全启动5.1 导入公钥到MOK列表NVIDIA安装程序会在/usr/share/nvidia/目录下生成一个.der格式的公钥文件。我们需要将其导入到机器的MOK(机器所有者密钥)列表中sudo mokutil --import /usr/share/nvidia/nvidia-*.der系统会提示你设置一个密码这个密码将在下次启动时使用请务必记住。5.2 更新initramfs和GRUB配置sudo dracut --force sudo grub2-mkconfig -o /boot/grub2/grub.cfg6. 完成安全启动密钥注册现在可以重启系统了sudo reboot重启过程中系统会进入蓝色MOK管理界面通常在GRUB菜单之后。按照以下步骤操作选择Enroll MOK选择Continue选择Yes确认注册输入之前设置的密码选择Reboot完成注册7. 验证驱动安装系统重启后可以通过以下命令验证NVIDIA驱动是否正常工作nvidia-smi如果看到类似下面的输出说明驱动已正确安装----------------------------------------------------------------------------- | NVIDIA-SMI 525.85.05 Driver Version: 525.85.05 CUDA Version: 12.0 | |--------------------------------------------------------------------------- | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | || | 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A | | N/A 45C P8 N/A / N/A | 200MiB / 6144MiB | 0% Default | | | | N/A | ---------------------------------------------------------------------------8. 常见问题解决方案8.1 驱动安装后无法进入图形界面如果重启后卡在命令行界面可以尝试sudo systemctl start graphical.target如果问题依旧可能需要重新配置显示管理器sudo systemctl enable gdm sudo systemctl start gdm8.2 内核更新后驱动失效每次更新内核后都需要重新构建NVIDIA内核模块sudo akmods --force sudo dracut --force8.3 签名密钥丢失或无效如果遇到签名问题可以重新生成并注册密钥sudo mokutil --reset sudo mokutil --import /usr/share/nvidia/nvidia-*.der sudo reboot9. 高级配置与优化9.1 启用Wayland支持从NVIDIA 550驱动版本开始官方提供了对Wayland的更好支持。如果你的系统使用Wayland作为显示服务器可以尝试以下配置sudo cp /etc/gdm/custom.conf /etc/gdm/custom.conf.bak sudo sed -i s/#WaylandEnablefalse/WaylandEnabletrue/ /etc/gdm/custom.conf9.2 性能调优在/etc/modprobe.d/nvidia.conf中添加以下内容可以优化性能options nvidia NVreg_PreserveVideoMemoryAllocations1 options nvidia NVreg_UsePageAttributeTable19.3 多显示器配置使用nvidia-settings工具可以方便地配置多显示器布局nvidia-settings10. 安全注意事项虽然本文指导你如何绕过安全启动的限制来安装NVIDIA驱动但安全启动本身是一项重要的安全功能。在完成驱动安装后建议保持安全启动启用状态以保护系统免受低级恶意软件的侵害。定期检查并更新你的NVIDIA驱动也是一个好习惯可以确保你获得最新的性能改进和安全补丁。NVIDIA通常会定期发布新的驱动版本你可以通过官方网站或RPM Fusion仓库获取更新。通过以上步骤你应该已经成功在Fedora 38/39上安装了NVIDIA驱动并解决了安全启动导致的签名问题。这套方案不仅适用于当前的Fedora版本其原理和方法也可以应用于其他Linux发行版。

相关新闻