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

Moh*_*hdi 7 nvidia xorg graphics drivers

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

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

\n

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

\n
\xe2\x94\x80$ lspci -k | grep -EA3 'VGA|3D|Display'\n00:02.0 VGA compatible controller: Intel Corporation CometLake-U GT2 [UHD Graphics] (rev 02)\n    DeviceName: VGA\n    Subsystem: ASUSTeK Computer Inc. CometLake-U GT2 [UHD Graphics]\n    Kernel driver in use: i915\n    Kernel modules: i915\n--\n02:00.0 3D controller: NVIDIA Corporation GP108M [GeForce MX250] (rev a1)\n    DeviceName: Second VGA\n    Subsystem: ASUSTeK Computer Inc. GP108M [GeForce MX250]\n    Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia\n03:00.0 Network controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 31)\n
Run Code Online (Sandbox Code Playgroud)\n

另外,当我用 apt 安装它时,它最后给了我这条消息:

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

Moh*_*hdi 6

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

sudo apt remove --purge *nvidia*
Run Code Online (Sandbox Code Playgroud)

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

sudo prime-select query
Run Code Online (Sandbox Code Playgroud)

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

sudo prime-select nvidia
Run Code Online (Sandbox Code Playgroud)

然后进入你从NVIDIA网站下载的NVIDIA驱动所在的路径并使用以下命令进行安装:

sudo bash NVIDIA-Linux-x86_64-***.run
Run Code Online (Sandbox Code Playgroud)

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

sudo bash NVIDIA-Linux-x86_64-***.run --uninstall
Run Code Online (Sandbox Code Playgroud)

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

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

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