首页 > 代码库 > Archlinux 下Intel + NVIDIA 双显卡3D 游戏配置(dota2@steam)

Archlinux 下Intel + NVIDIA 双显卡3D 游戏配置(dota2@steam)

贴吧里问这问那中午睡醒后做好的,下午打了几场dota2 感觉流畅度还算很不错的,写点东西记录一下。用Archlinux 的一般来说都会用搜索引擎,所以只说下需要注意的地方即可。

1. steam 自带的OpenGL 库是过时的,运行可能会抱怨“Cannot find OpenGL GX” 之类的东西,看ArchWiki 「steam」条目,删除steam 自带的几个库。

2. 但是删除了steam 自带的那些库之后你需要在系统中安装新版的库,除去64 位的库之外(不可能还有人在用32 位的系统吧),看看有没有「lib32-mesa」和「lib32-mesa-libgl」,双显卡的lib32 还需要安装「lib32-intel-dri」,不要问为什么,不装上的话会非常非常卡,「primusrun」会不声不响失败,「optirun」会提示“cannot find opengl entry point xxxx” 之类的东西。

3. NVIDIA 的驱动需要安装「nvidia」而不是「nouveau」,同时安装「nvidia-utils」 和「lib32-nvidia-utils」。不过「bumblebee」安装的时候可能会有依赖冲突,看ArchWiki 的「bumblebee」条目,好象是同时安装「intel-dri」、「xf86-video--intel」、「bumblebee」和「nvidia」来规避依赖冲突。

4. 「bumblebee」是用来切换独显来运行某个程序的东西,但是「startx」进入桌面环境还是用的Intel 核心显卡,所以不要生成「xorg.conf」,如果你的系统中有任何合法的「xorg.conf」,无论是「/etc/X11」下的还是主目录下的,删除它或者改为不会被检测到的名字,否则你可能无法启动X11。当然bumblebee 你也得配置好才行,「optirun glxgears -info」看看有没有输出「NVIDIA」字样的信息,输出了就是配好了。

5. dota2 没法用「optirun」跑起来,安装「primus」包,使用「primusrun」来运行,当然不要在虚拟终端下跑dota2,那太挫了。steam 里右键dota2,「Properties」中的「SET LUNACH OPTIONS...」 里面填入「vblank_mode=0 primusrun %command%」,当然这是全球服,如果玩完美世界代理的国服填入「vblank_mode=0 primusrun %command% -language schinese -international -perfectworld」。

6. 如果你之前用的是开源驱动,N 卡驱动从nouveau 切换到nvidia 之后需要重新生成内核镜像,看看「/etc/mkinitcpio.conf」注释掉所有的nouveau 模块,然后「sudomkinitcpio -p linux」,重启之后「dmesg」信息里看看有没有「nouveau」 和「nvidia」 字样的信息,应该是前者没有而后者有的。

7. 这一条不是什么重要的东西,网络上不少人乱讲NVIDIA 驱动要把kms 禁用掉,但是我们是双显卡,只有才跑3D 的时候才会手动切换显卡,平时用的都是Intel 核心显卡,所以用不着加「nomodeset」参数来禁用kms。

8. 对了再说一个不是BUG 的特性,steam 安装的dota2 跑完美代理的国服刚开始是没法全屏的,左上角的设置里找到视频栏改成「全屏」就好了,以前好象是“无什么窗口”之类的玩意儿,游戏画面会被Xfce4 的面板覆盖,很蛋疼。

基本就这些了,写的主要是ArchWiki 中含含糊糊或者没有提及而又非常重要的东西,如果你有这个需求的话,最好参考下ArchWiki 中的以下条目:「steam」,「bumblebee」,「nvidia」。

下面是我安装的相关包,如果有问题看看是不是少了什么。

------------------------------------------------------------
~ » pacman -Qqs '(nvidia|intel|mesa)'                                   ispeller@SHELL-LAB
bumblebee
glu
intel-dri
intel-tbb
lib32-glu
lib32-intel-dri
lib32-libtxc_dxtn
lib32-libvdpau
lib32-mesa
lib32-mesa-libgl
lib32-nvidia-utils
libcl
libtxc_dxtn
libvdpau
mesa
mesa-demos
mesa-libgl
nvidia
nvidia-utils
xf86-video-intel
------------------------------------------------------------
~ »    
就这样,祝你愉快~