如何在 Ubuntu 切换 Intel 和 Nvidia 显卡
如今,在笔记本电脑上混合配置两个显卡已变得更为常见。集成的显卡可以提供更长续航时间,Nvidia显卡可以图形繁重计算任务,让我们看看如何在 ubuntu 切换使用两个显卡

如今,在笔记本电脑上混合配置两个显卡已变得更为常见。一般情况下你的笔记本计算机都会有两个显卡。Intel 的集成显卡或者是专用 Nvidia GeForce。
集成的英特尔显卡充当主要驱动程序时,它可以处理大多数不太密集的计算任务,从而减少消耗电量,延长电池续航时间。
对于游戏、3D 渲染和其他此类图形繁重工作,应该使用专用显卡,例如 Nvidia GPU。
在本教程中,我还将向您展示如何在 Ubuntu 和以及其它 Linux 发行版在两个显卡之间切换工作。
有两种方法可以做到这一点。您可以明确使用 Nvidia 显卡,而不是 Intel 显卡来运行应用程序。也可以更改设置始终使用 Nvidia 显卡。如果您使用 Nvidia 专有驱动程序而不是开源驱动程序,显卡切换会非常容易。
检查您有哪些显卡
因此,您必须确保您使用的是Nvidia 显卡。要在 Linux 检查您的显卡,请运行命令 lspci | grep VGA
:
lspci | grep VGA
lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] (rev 0c)
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [Geforce RTX 3070 Ti Laptop GPU] (rev a1)
正如您在上面的输出中看到的,此笔记本电脑配备 Intel Iris Xe 显卡和 Nvidia Geforce RTX 3070 Ti。现在,让我们看看如何使用 Nvidia 而不是集成的 Intel 显卡驱动程序。
使用 Nvidia 运行某些应用程序
实际上,Ubuntu 提供一种使用专用 Nvidia 显卡启动应用程序的方法。在启动器中,右键单击图标时,您会注意到使用独立显卡启动
选项。
这个独立显卡就是你的专用显卡,在本例中是 Nvidia。您也可以在 GNOME 活动区域的应用程序中看到此选项。

请注意,并非每个使用此选项启动的应用程序实际上都会使用 Nvidia 显卡。我们对其进行测试,发现虽然 Firefox 以专用图形驱动程序启动,但许多应用程序(例如视频播放器、Inkscape 等)却没有。
nvidia-smi
来做这一点。我将在本教程的下一部分中讨论它。要从终端使用 Nvidia 驱动程序的运行应用,您可以使用设置环境变量 DRI_PRIME
并将值设置为1 后面是你要运行的应用启动命令 application_name:
DRI_PRIME=1 application_name
例如,如果您必须使用 Nvidia 运行 Firefox,您可以运行命令 DRI_PRIME=1 firefox
:
DRI_PRIME=1 firefox
DRI_PRIME
环境变量似乎仅适用于 NVIDIA 的开源驱动程序 Nouveau。如果您使用专有驱动程序,则应该使用:
__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 application_name
使用 Nvidia 专有的驱动程序和自带的工具
在 GNOME 活动区域中查找“附加驱动程序”工具,您还可以在“软件和更新”工具的“附加驱动程序”工具找到它。

在这里,确保您使用的是专有的 Nvidia 驱动程序。除非您有旧版驱动程序支持的较旧显卡(下图中的 470),否则请选择最高版本。

如果更改图形驱动程序,则必须重新启动系统。在某些情况下,系统会提示您签署 MOK。
只需使用密码,当您重新启动系统并看到蓝色 MOK 屏幕时,请使用您之前使用的密码对其进行签名。
当您重新启动计算机系统时,请搜索 NVIDIA X Server 的工具:

在这里,左侧边栏转到 PRIME 配置文件,然后您将看到在图形驱动程序之间进行更改的选项。

性能模式意味着 Nvidia 将成为所有应用程序运行时的主要图形驱动程序。
按需是默认行为,其中始终使用 Intel 集成驱动程序,并在指定时使用 Nvidia,如你在上面的第一个方法中看到那样。
您也可以运行命令 sudo prime-select nvidia
,将 Nvidia 设置为主驱动程序:
sudo prime-select nvidia
myfreax@myfreax-tuxedo:~$ sudo prime-select nvidia
[sudo] password for abhishek:
Info: selecting the nvidia profile
Deleting /lib/modprobe.d/nvidia-runtimepm.conf
Updating the initramfs. Please wait for the operation to complete:
Done
如果您想在终端使用 Nvidia 专有驱动程序的运行应用程序,请运行如下命令:
__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 application_name
💡检查每个进程的显卡使用率
借助 Nvidia 专有驱动程序,您还可以获得另一个方便的 CLI 工具 nvidia-smi
。你可以在终端直接运行它。并且它会一目了然地显示 GPU 使用情况统计信息:
nvidia-smi

如果你想像使用 top 命令一样持续关注 GPU 的使用情况,你可以将它与 watch 命令组合起来运行,命令将会是这样的 watch -n1 nvidia-smi
。并且每秒都会刷新统计数据。使用ctrl+c停止正在运行的程序。
watch -n1 nvidia-smi
结论
开源的 Nvidia Nouveau 驱动程序缺少类似于 nvidia-smi
的CLI工具查看 GPU 使用情况。我们认为开源的 Nvidia Nouveau 驱动程序应该有一个。
专有驱动程序提供了方便的工具,用于在图形驱动程序之间切换和监控 GPU 使用情况。哪个驱动程序表现更好完全取决于您。