在启用安全启动的 Fedora 中安装英伟达驱动
创始人
2025-06-28 12:11:37
0

背景信息

现在新出厂的电脑 UEFI 会默认开启安全启动Secure Boot,它的作用是防止恶意软件侵入。当电脑的引导程序被病毒修改之后,它会给出提醒并拒绝启动,避免可能带来的进一步损失。不过它同样会阻止一些未经微软签名的 Linux 内核启动运行。虽然可以直接选择在主板设置中关闭安全启动来解决这些麻烦,但在近期微软公布的 Windows 11 最低硬件标准中可以看到,安全启动被微软看的越来越重。如果你的电脑是 Windows + Linux 双系统,最好还是让 Linux 本身支持安全启动。

而最好用的发行版之一 Fedora 更热衷于开源驱动。Fedora 其本身是支持安全启动的,但是当你通过 Rpmfusion 安装官方的英伟达驱动,会造成这些驱动的内核模块未签名。在 Linux 启动过程中因为安全启动校验签名,会阻止加载这些模块,进而无法正常驱动显卡。

用过 Ubuntu 的伙伴们应该知道,在安全启动开启的情况下,Ubuntu 安装程序会自动用自签密钥来签名英伟达驱动内核模块,并在开机过程中自动将该自签密钥导入 MOK List(安全启动机器主人信任密钥列表)。但 Fedora 只会保证自身内核签名有效,而对 Rpmfusion 中的第三方内核模块签名问题不予理会,导致无法正常加载英伟达驱动。

本文介绍如何在 Fedora 中自动签署英伟达内核模块

准备工作

在 Fedora 36 之前,要像 Ubuntu 那样自动签署内核模块有点困难。但从这个版本开始,你只需几个简单的步骤就能做到。

在开始之前,让我们先确认一些前提条件已经满足:

  1. 已启用安全启动;
  2. 尚未安装英伟达驱动程序(非常关键,如果你已经安装了专有的英伟达驱动,可能需要重装系统才行);
  3. 以及安装了 Fedora 36 及以上版本。

本指南主要参考了以下资料:

  1. Rpmfusion 的官方英伟达文档
  2. Rpmfusion 的官方安全启动文档
  3. Andrei Nevedomskii 的博客教程

希望深入了解的朋友可以阅读上述资料进一步研究。

具体步骤

1、安装自动签名所需的工具

sudo dnf install kmodtool akmods mokutil openssl

2、生成签名密钥

sudo kmodgenca -a

该命令会在 /etc/pki/akmods/certs/ 目录下生成密钥,运行正确的情况下不会有输出。

3、启动密钥注册

这将使 Linux 内核信任使用你的密钥签名的驱动程序。

sudo mokutil --import /etc/pki/akmods/certs/public_key.der

你会被要求输入一个密码。请记住这个密码,在下面的第五步中还需要再次使用。

4、重启以注册密钥

sudo reboot

5、注册密钥

重启后,你将看到蓝色的 MOK 管理器界面,不要被这种类似 BSOD 的页面吓坏,按照以下步骤注册密钥。

如果你曾在启用安全启动的 Ubuntu 中安装过英伟达驱动程序,你可能见过这个界面。

1、首先要及时按任意建继续进入 MOK 管理(如果没有及时进入 MOK 管理,系统会重启)

MOK 管理界面1MOK 管理界面1

2、首先选择 “Enroll MOK” 注册 MOK。

3、然后选择 “Continue”。

4、选择 “Yes” 并输入步骤 3 中的密码并回车(密码不会在输入框中显示,输入密码直接回车就好了)。

MOK 管理界面2MOK 管理界面2

5、此时密钥已经注册,选择 “reboot”,设备将再次重启。

MOK 管理界面3MOK 管理界面3

6、安装英伟达驱动程序

现在只需正常安装英伟达驱动程序。

sudo dnf install gcc kernel-headers kernel-devel akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-libs

7、确保内核模块已编译

sudo akmods --force

8、确保启动镜像也已更新

sudo dracut --force

9、重启设备

sudo reboot

验证是否成功

重启完成后,输入以下命令确认驱动是否加载:

lsmod | grep -i nvidia

如果有类似以下的输出,恭喜你,一切顺利,一切就绪!

$ lsmod | grep -i nvidia
nvidia_drm             94208  2
nvidia_modeset       1560576  2 nvidia_drm
nvidia_uvm           3493888  0
nvidia              62517248  118 nvidia_uvm,nvidia_modeset
video                  73728  3 asus_wmi,i915,nvidia_modeset

现在,你可以愉快的在开启安全启动的情况下使用英伟达显卡了。

希望本文能够帮助到你。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...