Ubuntu 的 dkms v3.0.6 会破坏启用 SecureBoot 的驱动程序

Ubuntu 的 dkms v3.0.6 会破坏启用 SecureBoot 的驱动程序

发生了什么

我昨天升级了我的系统,它将 dkms 更新到了 Ubuntu 22.10 的最新版本: dmks3.0.6-2ubuntu1。同时,apt 将我升级到了最新的内核版本。

从那时起,我的 nvidia 驱动程序就停止工作了。

原因

经过一番查看,我终于明白了在中找到的 nvidia 驱动程序/lib/modules/5.19.0-35-generic/updates/dkms/nvidia.ko没有签名,这解释了为什么modprobe nvidia输出:

modprobe: ERROR: could not insert 'nvidia': Key was rejected by service

根本原因

经过进一步观察后,我得出结论,这dmks3.0.6-2ubuntu1就是我的游戏之夜被毁掉的唯一原因。

手动调用 dkms

sudo dkms install --force nvidia/525.89.02    
Sign command: /usr/lib/linux-kbuild-5.19/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Binary kmod-sign not found, modules won't be signed
...

该漏洞自 2022 年 9 月起被发现

Bug#1019425:dkms 3.0.6-2 未签署模块,可以读到:

软件包:dkms 版本:3.0.6-2 严重性:重要

亲爱的维护者,

从 dkms 3.0.6-2 开始,模块不再签名。这意味着安全启动不再起作用。

回到 3.0.3-4 并再次签名。

此错误已由 修复dkms3.0.9

问题

我该怎么做(不,我无法禁用 SecureBoot)才能将 dkms 降级或升级到可用版本?apt list -a dkms仅列出 3.0.6 作为 dkms 的可用版本 :(

答案1

dkms 的修复已发布至 Ubuntu 的 PPA kinetic-updates

您可以暂时将此存储库添加到您的源并将 dkms 升级到dkms3.0.6-2ubuntu2

添加存储库

cat | sudo tee -a /etc/apt/sources.list
# 2023-03-03: Temp fix for dkms 3.0.6 bug
# <https://askubuntu.com/q/1457570/475641>
deb http://fr.archive.ubuntu.com/ubuntu/ kinetic-updates main

^D

(注意:您可能想要选择离您更近的镜子;)

升级 dkms

sudo apt update && sudo apt install dkms

修复你的驱动程序

$ sudo dkms status
nvidia/525.89.02, 5.19.0-35-generic, x86_64: installed
# note that version string

$ sudo dkms remove --force nvidia/525.89.02
[...]

$ sudo dkms install --force nvidia/525.89.02
[...]

$ sudo modprobe nvidia

瞧!

相关内容