ArchLinux 下双显卡配置

Fuck Nvidia

如果笔电上有一张 Nivdia 显卡,使用 Linux 的时候也许会因为驱动引起一些令人苦恼的问题。

如果熟读并背诵 ArchWiki 的话就不会有这些问题了 (误

我就记录一下我的笔电在 ArchLinux 下的双显卡的配置,其实我说的这些,几乎全部来自于 ArchWiki ,但是分布在不同的几个页面,我就充当一次搬运工了。

我的显卡硬件情况:

  • GPU0 Intel UHD 620
  • GPU1 Nvidia MX150

先说一下黑屏的问题

有可能是因为你漏装了 nvidia 显卡的驱动程式,可以用一下命令安装

进不去系统的话可以尝试 Ctrl+Alt+F2~6切换到 tty,仍然不行的话可能就要搬来 LiveCD 了

pacman -S nvidia

注意!

我现在执行的命令在我的机器上有效,对于比较新的机器应该都没有问题,但是具体呢还是要参看 ArchWiki NVIDIA

进入正题

先说一下我的基于什么选择了接下来的双显卡方案,如果你的目的与我不同,那也许就没有参考价值了

  • 尽量发挥性能
  • 尽量省电

基于以上理由我选择了,闭源驱动 + PRIME render offload

安装驱动

Intel 显卡驱动

具体参见 ArchWiki Intel graphics

安装 mesa 包,为了对 32 位程序的支持,安装 lib32-mesa 包 (位于 multilib 仓库,请提前自行开启此仓库)。

pacman -S mesa lib32-mesa

另外需要注意的是,如果之前安装了 xf86-video-intel 包,最好卸载掉

比如这个包会引起我的 OBS 在录制闪屏,而且不使用此包也是官方的建议

Often not recommended, see note below

Note: Some (Debian & Ubuntu, Fedora, KDE) recommend not installing the xf86-video-intel driver, and instead falling back on the modesetting driver for Gen4 and newer GPUs (GMA 3000 from 2006 and newer). See [1], [2], Xorg#Installation, and modesetting(4). However, the modesetting driver can cause problems such as Chromium Issue 370022.

卸载

pacman -Rsc xf86-video-intel

NVIDIA 显卡驱动

具体参见 ArchWiki NVIDIA

安装 nvidia 包,为了对 32 位程序的支持,安装 lib32-nvidia-utils 包 (位于 multilib 仓库,请提前自行开启此仓库)。

pacman -S nvidia lib32-nvidia-utils

配置 PRIME render offload

具体参见 ArchWiki PRIME

安装 nvidia-prime 包来使用官方配置 (不起作用的话,你就要去 Wiki 看怎么手动配置了,不过我觉得一般都不需要手动配置啦)

pacman -S nvidia-prime

reboot!

这时候重启系统就应该起作用了,你可以通过 prime-run 命令使指定程序在 NVIDIA 显卡上渲染。例如:

# 以 n 卡渲染 vlc
prime-run vlc
# 以 n 卡渲染 wine 游戏
prime-run wine touhou08.exe

在此之前你可能想查看你的配置是否生效,可以使用 glxinfo 这个工具,它属于 mesa-demos 包,先安装

pacman -S mesa-demo

来测试一下

glxinfo | grep "OpenGL renderer"

输出应该类似于下面,这意味着默认情况下你使用的是 Intel 显卡

OpenGL renderer string: Mesa DRI Intel(R) UHD Graphics (Whiskey Lake 3x8 GT2)

然后

prime-run glxinfo | grep "OpenGL renderer"

你应该看到

OpenGL renderer string: GeForce MX150/PCIe/SSE2

这意味着你在使用 NVIDIA 显卡了 ´ ▽ ` )ノ

一点总结

我之前使用的是 Bumblebee 方案,但是感觉不如现在的方案方便也不如这个性能好。

另外使用了 NVIDIA 的闭源驱动所以在配置双显卡的时候使用了 PRIME render offload 而不是在 Wiki 里的上一级标题 PRIME GPU offloading ,后者是给 NVIDIA 的开源驱动程式用的。关于具体的不同,自己去翻阅 wiki 吧,不归我管,我只是记录一下我觉得目前最好使的方案。