这是由 NVIDIA 官方提供的新的双显卡配置方案(官方文档),需要最新的驱动及 Xorg 支持。其中 nvidia 驱动已经位于 Arch Linux 官方仓库中(版本号 435.21)。相关 Xorg 补丁还在 git 上,并没有新版本放出,所以需要自行编译包含补丁的版本。这里有现成的 PKGBUILD。我打包好的版本也提供下载。
2019年11月25日更新:xorg-server 1.20.6 已经进入 Arch Linux 官方仓库,包含需要的补丁了。
2020年02月14日更新:现在也可以通过安装 nvidia-prime 直接配置好,就不用搞下边那些配置了。记得安装 nvidia(或者 nvidia-dkms 等)驱动包哦~
我的硬件是 ThinkPad T470p,Intel Corporation HD Graphics 630 核显和 GeForce 940MX 独显。核显的特点是:省电、支持视频编解码加速。独显的特点是:Minecraft 能开光影,FPS 也要高一点。用来跑火狐的话可以正确渲染 FishGL。
配置方法如下。
首先把 bbswitch 啥的都卸载了吧。虽然注意点不卸载也没事,但是毕竟装着没意义还容易出问题。然后看看 /etc/modprobe.d 下有没有黑名单 nvidia 的驱动,给它取消了。我有一个 options nvidia_drm modeset=1
的配置,不知道有没有影响。
Xorg 这边要加一段配置。就保存在 /etc/X11/xorg.conf.d/nvidia.conf 好了。
Section "ServerLayout" Identifier "layout" Screen 0 "iGPU" Option "AllowNVIDIAGPUScreens" EndSection Section "Device" Identifier "iGPU" Driver "modesetting" BusID "PCI:0:2:0" EndSection Section "Screen" Identifier "iGPU" Device "iGPU" EndSection Section "Device" Identifier "dGPU" Driver "nvidia" EndSection
那个 BusID
的值要自己看着 lspci | grep VGA
来改。
如果你之前是用N卡跑 Xorg 的,需要把 xrandr --setprovideroutputsource modesetting NVIDIA-0
之类的设置去掉。
然后重启系统就可以了。请做好通过 tty 或者 ssh 修复配置的准备。
默认情况下,Xorg 及其上的程序运行于i卡。使用 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia
环境变量来指定使用N卡。为了方便起见,做一个别名好了:
alias nvrun="__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia"
然后就可以 nvrun minecraft-launcher
啦~
对了,要注意一下的是,这两个环境变量对视频硬解也是有效的。比如我如果给 mpv 使用这两个环境变量的话,mpv 就会黑屏(我的N卡不支持硬解……