我使用一台混合显卡(Intel + Nvidia)的笔记本电脑,运行 Kubuntu 24.10,启用安全启动。我当前的内核(输出uname -r
)是6.11.0-9-generic
。
在最近的更新之后(不确定具体是什么,但我怀疑是内核从 更新到6.11.0-8-generic
)6.11.0-9-generic
,我的 Nvidia 卡似乎已经完全停止工作了——无论我使用 X 还是 Wayland,都无法检测到外部显示器,而且我在“NVIDIA X 服务器设置”应用中再也看不到该卡的详细信息了。
lshw
显示该卡为未认领的显示设备,表明没有驱动程序想要处理我的 Nvidia GPU(“配置”部分下没有显示驱动程序名称也表明:
wisp@transient > ~ > sudo lshw -C display
*-display UNCLAIMED
description: 3D controller
product: GP107M [GeForce GTX 1050 Ti Mobile]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration: latency=0
resources: memory:a3000000-a3ffffff memory:90000000-9fffffff memory:a0000000-a1ffffff ioport:4000(size=128) memory:a4000000-a407ffff
*-display
description: VGA compatible controller
product: CoffeeLake-H GT2 [UHD Graphics 630]
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
logical name: /dev/fb0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list rom fb
configuration: depth=32 driver=i915 latency=0 resolution=1920,1080
resources: irq:150 memory:a2000000-a2ffffff memory:80000000-8fffffff ioport:5000(size=64) memory:c0000-dffff
wisp@transient > ~ >
这似乎指向一个驱动程序问题,并且看起来dkms status nvidia
我的驱动程序(专有驱动程序)安装得很好(上面可怕的警告似乎与我没有使用的旧内核版本有关),但确实没有被使用:
wisp@transient > ~ > sudo dkms status nvidia
nvidia/560.35.03, 6.11.0-8-generic, x86_64: installed (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!)
nvidia/560.35.03, 6.11.0-9-generic, x86_64: installed
wisp@transient > ~ >
尝试sudo modprobe nvidia
手动操作会导致modprobe
我大声抱怨一个关键错误:
wisp@transient > ~ > sudo modprobe nvidia
modprobe: ERROR: could not insert 'nvidia': Key was rejected by service
wisp@transient > ~ >
这部分让我很困惑,因为我以前在这台机器上使用过专有驱动程序,所以如果这真的是签名问题,我预计它会更早发生。为什么我现在遇到密钥错误,而不是更早,更重要的是,我该如何解决这个问题?
编辑:修复正文(非代码块)中的拼写dkms
错误dmks
我也有同样的问题。我在网上到处寻找解决方案,从内核模块加载配置(有人说需要签名模块,这似乎不是问题,尤其是基于 ubuntu 的发行版)到安全启动问题,我找到了各种各样的解决方案。看来安全启动是罪魁祸首。Ubuntu(及其衍生产品)没有正确更新启用安全启动的系统上的密钥,导致驱动程序加载失败。
我还没有亲自测试过,但大家似乎一致认为应该使用安全启动。如果可以避免,我真的不喜欢禁用安全启动,而且真的不应该只是为了让某个驱动程序正常工作而禁用它,因为有人太懒了,无法让其在安全启动下正常工作。
我有完全相同的设置:Acer Predator Helios 18,处理器上有英特尔嵌入式显卡(i9-14900hx,配备 Raptor Lake-S UHD 显卡),以及 Nvidia RTX 4090。尝试加载模块时也出现密钥错误,并且有 dkms 包。我还尝试安装上面建议的其他驱动程序包,但没有变化。仍然坏了。
我知道的唯一可以让它正常工作的方法(如果你想将在系统中创建一个巨大的安全漏洞称为“修复”)是完全禁用安全启动,并希望上帝保佑你不会遇到任何破坏你的启动文件的恶意软件。:/
他们确实需要解决这个问题。看看搜索结果,这个问题已经持续了好几年,人们唯一能做的就是随便提出一些修复方案,这些方案可能在一段时间内有效,但更新再次破坏了一切。
不幸的是,除非有人真正妥善处理并修复这个问题,否则这似乎是一个双输的局面。
我认为我的 DKMS 出了点问题。
6.11.0-9-generic
首先从问题 ()中的内核升级6.11.0-12-generic
到现在的6.11.0-13-generic
,DKMS 似乎运行良好,可以毫无问题地签署 Nvidia 驱动程序。日志摘录
6.11.0-13-generic
(部分sudo apt-get upgrade
)新的
dmks status nvidia
: