当前的问题
我有一台配备 AMD CPU 和 Nvidia GPU 的笔记本电脑,并且使用 Ubuntu。这种配置给我带来了很多麻烦,因为 AMD 对 Linux 的支持显然不太好。但最近出现了一个新问题,步骤如下:
- PC 运行良好,Nvidia 驱动程序已安装并正在运行,我可以使用 GPU 进行开发。
- 我重启了电脑
- Nvidia 现在不再起作用
这就是我现在的情况。当我跑步时,nvidia-smi
我收到此消息:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
但是,当我打开“软件和更新”中的“附加驱动程序”面板时,我会看到以下活动驱动程序:
o Using NVIDIA driver metapackage from nvidia-driver-535 (proprietary, tested)
我还可以运行lspci | grep VGA
以获得以下输出:
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [Geforce RTX 3070 Ti Laptop GPU] (rev a1)
09:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt [Radeon 680M] (rev c7)
最后,我可以运行sudo apt search nvidia-driver-535
得到这个输出:
...
nvidia-driver-535/lunar-updates,lunar-security,lunar,now 535.54.03-0ubuntu0.23.04.2 amd64 [installed]
NVIDIA driver metapackage
...
xserver-xorg-video-nvidia-535/lunar-updates,lunar-security,lunar,now 535.54.03-0ubuntu0.23.04.2 amd64 [installed,automatic]
NVIDIA binary Xorg driver
...
是的,我刚刚删除了(即sudo apt purge nvidia*)
从 PC 上删除了驱动程序并重新安装了它。问题仍然存在。而且我还通过编辑文件强制 gdm3 使用 X11 /etc/gdm3/custom.conf
。因为它不适用于 Wayland。
尝试调试
我调试 Linux 内部的技能非常有限,但我确实从运行中得到了一些消息sudo journalctl -S -1h
:
modprobe: FATAL: Module nvidia not found in directory /lib/modules/6.2.0-25-generic
[...]
systemd[1860]: Started app-gnome-nvidia\x2dsettings-7946.scope - Application launched by gnome-shell.
nvidia-settings.desktop[7946]: ERROR: NVIDIA driver is not loaded
nvidia-settings[7946]: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
nvidia-settings[7946]: ctk_powermode_new: assertion '(ctrl_target != NULL) && (ctrl_target->h != NULL)' failed
nvidia-settings.desktop[7946]: ERROR: nvidia-settings could not find the registry key file or the X server is not accessible. This file should have been installed along with this driver at /usr/share/nvidia/nvidia-application-profiles-key-documentation. The application profiles will continue to work, but values cannot be prepopulated or validated, and will not be listed in the help text. Please see the README for possible values and descriptions.
nvidia-settings[7946]: PRIME: No offloading required. Abort
nvidia-settings[7946]: PRIME: is it supported? no
结论
PC 可以读取 GPU。NVIDIA 驱动程序已正确安装。但不知何故,在重新启动时,驱动程序随机被禁用。或者其他什么。
发生了什么事?我完全不知道该如何解决这个问题。
答案1
临时解决建议
快速重启后,它似乎现在可以正常工作了 - 但我还是不回答这个问题,以防其他人遇到同样的问题,或者它以某种方式再次出现。“修复”是在启动时打开 BIOS,并禁用安全启动。不知道为什么 - 看到有人建议这样做 - 现在nvidia-smi
运行正常。
答案2
由于某些奇怪的原因,我不得不:
sudo apt-get install nvidia-dkms-535
我以为这是之前作为依赖项安装的nvidia-driver-535
...因为在我执行apt-get upgrade
并重新启动之前它确实起作用了。
无论如何,驱动程序现在出现在我/lib/modules/
所有已安装内核版本的文件夹中。
答案3
两天前更新内核后,我也遇到了同样的问题。我通过禁用安全启动解决了这个问题。
但这很不寻常,因为在更新之前,即使打开了安全启动,我也能正常运行驱动程序。
答案4
我的内核从 24 更新到了 6.2.0.25。它启动了但没有桌面。这不是第一次使用 23.04。我启动了 tty 并关机。重启后启动 grub 菜单并返回到 6.2.0.24。然后修改 grub 以仅从我的选择启动而不是更新。我的测试机器在安全启动关闭的情况下运行。我有 10 个 ssd,可以切换以测试不同的发行版。主板是华硕 Z77。Debian、Ubuntu 23.04、22.04、Linux Mint、Manjaro 不会在安全启动开启的情况下运行。