感谢IT之家网友 鸢一雨音的投稿 注意:禁用核心显卡是可行的,但不适用于便携式计算机。 我在上一篇《如何为Linux配置双显卡》的文章中提到,为Linux提供Optimus技术支持的Bumblebee项目并不支持Vulkan图形接口。但是在最近的众多测试里,Vulkan接口表现出来的性能确实高得令人咋舌。很多游戏在同等硬件条件下,使用Linux下的Vulkan接口运行甚至能吊打Windows下D3D的性能。这令很多Linux双显卡(特别是便携式计算机)用户不舒服:明明Vulkan性能很强,但是迫于日常节能的需求,不能用独立显卡渲染整个X;而实现了Optimus技术的Bumblebee项目又偏偏不支持Vulkan。
本教程在此提供一种解决方案。既然日常使用的X不能用独立显卡渲染,那我就在需要玩游戏的时候,在不退出日常使用的X会话的情况下,使用独立显卡渲染一个新的X会话;等到游戏玩完了,退出这个会话并关掉独立显卡。这样那个新的X会话就是完全采用独立显卡渲染的,也就不存在因为Bumblebee而无法兼容Vulkan接口的问题了;同时,和Optimus技术一样,在我们没有启动这个特殊的会话的时候,独立显卡是关闭的,也不会消耗额外的电量。 一、安装nvidia-xrun 这种解决方案可以手动实现,但是已经有大神将其整合为一个工具:nvidia-xrun项目。如果你是Arch Linux 64位版用户,你应该能很轻松地通过AUR安装这个包: yaourt -S nvidia-xrun-git 安装完成之后,你应该可以使用nvidia-xrun指令。 先别着急,这个工具需要你安装好英伟达的官方驱动程序。安装官方驱动的方式和注意事项在上篇文章中已经提到过,这里不在赘述。 不要立即执行这个指令,先看完下面的步骤。 二、安装一个桌面环境 我们的最终目的是运行一个桌面应用,所以我们需要一个桌面环境来承载它。虽然你已经有了一个桌面环境,但考虑到我们只是为了承载某一个应用程序,所以桌面环境越轻便越好。理想的选择是openbox。如果你是Arch Linux 64位版用户,j2直播,执行下面的指令: sudo pacman -S openbox 就可以安装一个只有不到2MB的桌面环境。 为了让nvidia-xrun工具启动X的时候启动openbox,我们创建一个文件~/.nvidia-xinitrc,并在里面写入 openbox-session 这样通过nvidia-xrun启动的那个X就会自动启动openbox桌面环境。 三、配置nvidia-xrun 到目前为止,nvidia-xrun应该还是不能正常工作的。因为我们没有配置它所使用的X配置文件。从头安装过Arch Linux的朋友们应该清楚,配置X是一个怎么样的步骤。 nvidia-xrun包使用下面这些配置文件(配置文件目录): 1、/etc/X11/nvidia-xorg.conf:主要的X配置文件; 2、/etc/X11/nvidia-xorg.conf.d:自定义的X配置文件目录; 3、/etc/X11/xinit/nvidia-xinitrc:对应于普通xinitrc的配置文件; 4、/etc/X11/xinit/nvidia-xinitrc.d:自定义的xinitrc配置文件目录; 5、~/.nvidia-xinitrc:用户自己的xinitrc配置文件; 为了在双显卡计算机上正确使用独立显卡渲染X,我们需要找到nVidia设备正确的总线ID。我们使用lspci指令来查看所有的PCI设备,并筛选出我们的独立显卡。执行: lscpi | grep NVIDIA 你应该会看到类似的输出: 由此可见,我的设备的独立显卡总线ID是4:0:0,那么我们修改(或新建)/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf文件,内容如下:
至此,配置基本完成了。你可以切换到一个新的终端(快捷键一般是Ctrl+Alt+F3~F5,之所以没有F1和F2是因为这两个终端一般都被默认桌面环境占了),登录进你的用户,并执行nvidia-xrun指令。它会询问你sudo密码,然后使用独立显卡启动一个独立的X会话,并启动openbox桌面环境。你可以在这个桌面环境里执行Steam和Steam游戏——它们都是被独立显卡直接渲染的,atv,当然也就支持Vulkan。 当你不想再玩游戏的时候,退出桌面环境和X会话,nvidia-xrun会自动关掉你的独立显卡以省电,然后你可以登出你的账户,回到你原本的桌面环境所在的终端,继续你的日常工作。 采用这种方式不仅能支持Vulkan接口,渲染效率也会比Bumblebee高一些。但是缺点是你需要在一个新的终端上启动一个新的X服务器。即使如此,这也比使用英伟达提供的Prime选项方便得多:你不需要为了玩游戏而退出你日常使用的桌面环境重新登入;这同样也比禁用核心显卡这种相对暴力的手段合理,特别是对于便携式计算机,独立显卡功耗不可忽视的时候。 (责任编辑:本港台直播) |