无法将 Nvidia 设置为默认 GPU,安装 Nvidia 驱动程序后,Ubuntu 在启动时冻结

无法将 Nvidia 设置为默认 GPU,安装 Nvidia 驱动程序后,Ubuntu 在启动时冻结

我正在使用 Ubuntu 22.04 LTS,一切都很好,直到今天我决定更改我的 NVIDIA 驱动程序,我更改了它,我不记得我使用的是哪一个。
然后我重新启动了笔记本电脑,一切几乎都正常了。我打开了 NVIDIA X 服务器设置并将 PRIME 配置文件设置为 NVIDIA(性能模式)。然后我重新启动了笔记本电脑。它在启动时冻结,在 ASUS - Ubuntu 屏幕上,我使用 ctrl + alt + f3 键并打开终端,删除 NVIDIA 驱动程序并重新启动。现在它可以与 Intel GPU 一起使用,我安装了 nvidia-driver-510 并再次尝试将我的 NVIDIA 设置为默认 GPU,但问题仍然存在。我无法将我的 NVIDIA 设置为默认 GPU。此外,NVIDIA X 服务器设置中的许多选项都消失了!!!!
请帮帮我!我做错了什么?

我的 GPU 是:nVidia GP108M [GeForce MX250]
而我的 CPU 是:Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz

这是lspci -k | grep -EA3 'VGA|3D|Display'命令输出:

─$ lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation CometLake-U GT2 [UHD Graphics] (rev 02)
    DeviceName: VGA
    Subsystem: ASUSTeK Computer Inc. CometLake-U GT2 [UHD Graphics]
    Kernel driver in use: i915
    Kernel modules: i915
--
02:00.0 3D controller: NVIDIA Corporation GP108M [GeForce MX250] (rev a1)
    DeviceName: Second VGA
    Subsystem: ASUSTeK Computer Inc. GP108M [GeForce MX250]
    Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
03:00.0 Network controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 31)

另外,当我使用 apt 安装它时,它最后给出了以下消息:

update-initramfs: Generating /boot/initrd.img-5.15.0-30-generic
I: The initramfs will attempt to resume from /dev/nvme0n1p5
I: (UUID=f56ee4ed-58ac-49d4-a438-3ca75f08397a)
I: Set the RESUME variable to override this.

答案1

我终于解决了我的问题,我想在这里分享它,以便它成为未来遇到此问题的人的解决方案。首先,您应该从系统中删除所有 NVIDIA 驱动程序和模块。

sudo apt remove --purge *nvidia*

此命令将删除所有 NVIDIA 驱动程序和模块及其配置文件。
然后,确保您没有除官方 Ubuntu 存储库之外的任何活动存储库。
从下载 Linux 的官方 NVIDIA 驱动程序NVIDIA 网站。重新启动系统,系统将使用 Nouveau 驱动程序进行渲染。转到其他驱动程序并选择最新的 NVIDIA 驱动程序安装在您的系统上。安装后,重新启动系统。
如果您无法访问 Gnome 登录屏幕,请同时按 ctrl + alt + f2、f3、f4、... 键以访问终端。如果这不起作用,您应该使用 nomodeset 启动系统,然后执行相同操作。输入您的用户名和密码并登录。
您的默认 Prime 配置文件应该是按需模式。您可以使用以下命令查看您的 Prime 配置文件:

sudo prime-select query

将您的主要配置文件设置为 nvidia

sudo prime-select nvidia

然后转到从 NVIDIA 网站下载的 NVIDIA 驱动程序所在的路径,并使用以下命令进行安装:

sudo bash NVIDIA-Linux-x86_64-***.run

将 NVIDIA-Linux-x86_64-***.run 替换为文件的名称。继续安装过程,当系统询问您是否要安装内核模块时,... 请回答是。系统还会警告您,您的目标 Linux 系统有一个自定义驱动程序安装,您可以使用它来代替官方 NVIDIA 驱动程序;忽略此消息并安装该驱动程序。
安装后,重新启动系统。再次按 Ctrl + Alt + F2 调出终端并登录您的帐户。转到您之前下载的官方 NVIDIA 驱动程序文件。并使用以下命令将其卸载:

sudo bash NVIDIA-Linux-x86_64-***.run --uninstall

卸载驱动程序后,重新启动系统。

一切都会好起来的。 请勿更改 PRIME 配置文件或 NVIDIA 驱动程序版本,否则一切都会再次出错。

据我所知,这些模块在内核中以某种方式被删除,当从官方 Ubuntu 驱动程序安装驱动程序时,它们不会被安装。但我们下载的官方 NVIDIA 驱动程序会安装这些模块,当我们卸载官方驱动程序时,这些模块会保留下来。两个驱动程序不能同时安装在系统上,所以我们必须删除一个。如果我们从 Ubuntu 驱动程序中删除驱动程序并保留官方 NVIDIA 驱动程序,问题将无法解决。我试过了。希望它能对某人有所帮助。

相关内容