将内核升级到 5.18 后,Ubuntu 不再识别我导入的 mokutil 密钥,导致 Nvidia 内核模块无法通过安全启动加载?

将内核升级到 5.18 后,Ubuntu 不再识别我导入的 mokutil 密钥,导致 Nvidia 内核模块无法通过安全启动加载?

我使用安全启动强制对内核模块进行签名,在将 Ubuntu 22.04 内核更新到 5.18 后,我无法再安装可以从此处下载的 nvidia 驱动程序:

https://www.nvidia.com/download/index.aspx

尝试了最新版本 (515.57),但仍然没有成功。安装过程中,出现以下错误:

ERROR: Unable to load the kernel module 'nvidia.ko'.  This happens most frequently when this kernel module was built against the wrong or improperly configured kernel sources, with a version of gcc that
       differs from the one used to build the target kernel, or if another driver, such as nouveau, is present and prevents the NVIDIA kernel module from obtaining ownership of the NVIDIA device(s), or no
       NVIDIA device installed in this system is supported by this NVIDIA Linux graphics driver release.
       
Please see the log entries 'Kernel module load error' and 'Kernel messages' at the end of the file '/var/log/nvidia-installer.log' for more information.

查看日志后,我发现它的密钥被拒绝了:

Kernel module load error: Key was rejected by service

尽管我已经按照本指南使用我新导入的密钥对其进行了签名:

如何安装启用安全启动的 nvidia 驱动程序?

我尝试导入一个新密钥,并手动对其进行签名,但驱动程序仍然无法加载,因为密钥被拒绝了。

在我恢复到 5.15 之后,驱动程序加载正常。

那么为什么会发生这种情况?为什么即使我创建了一个新密钥并使用 mokutil 导入它(并在启动期间导入它),内核仍然无法识别该密钥,并且我不再无法加载用它签名的驱动程序?

相关内容