Linux运行全平台游戏之显卡调优、系统调优
“Linux不能玩游戏!”
就我真想给你一巴掌……
哦,如果你只是玩儿腾讯游戏,那就把这一巴掌打回来吧还是……
今天就简单的来聊聊Gaming on Linux.
其实我经常会提到一句话:
你对Linux的认识还停留在十年前。
游戏就是一个很明显的例子。就连我往期内容也有人说不能玩游戏。如果你也是这么认为的,那推荐去看看Steam Play的那期内容,你会对这个问题有一个新的认识。
不过,还有一些不在Steam内的游戏,有没有办法玩耍呢?
有。而且还能让你在一个平台管理你所有平台的游戏。这就是Lutris。接下来主要介绍一下它的安装过程。
先来参照 https://github.com/lutris/lutris/wiki/Installing-drivers将显卡驱动的包补全。这地方就显示出来pop OS作为游戏系统的优势了:它把显卡的相关包都实现做了配置,你大可跳过显卡这一步。
接下来安装Lutris和相关包。因为是开源程序,所以直接通过源来一键安装即可:
pacman -S dxvk wine-staging lutris
- dxvk: DX到vulkan的翻译层
- wine-staging:有些发行版叫winehq-staging。而且有些发行版不包含这个包,需要去winehq官网对照步骤增加源
安装好这些之后,再前往https://github.com/lutris/lutris/wiki/Wine-Dependencies安装剩余的一些可选依赖。到此,lutris就可以正常运作了。不过,还有一些额外的配置,虽然配不配两可,但配置之后可以提升百分之二三十的性能。来看看。
- 安装gamemode:Debian源里边会存在,arch分支则通过aur安装。包名就叫
gamemode
。 - 查找库文件路径:无论通过文件管理器还是命令,只要找到
libgamemodeauto.so.0
,将完整路径复制备用。
查找文件的命令find /usr -name 'libgamemode*'
现在,打开Lutris,点击
左上图标- Preferences
,切换到System Options
,在Enviroment variables
增加一项- Key = LD_PRELOAD
- Value = 前面复制的路径
到此,gamemode配置完成。如果你还想进一步优化性能,可以参考https://github.com/lutris/lutris/wiki/Performance-Tweaks的最后两节,在上述位置中增加变量。
在上述全局配置完毕后,如果想再进一步提升性能,则可以选择tkg版本的wine,这个系列的wine启用了ESync,对性能的提升同样不容小觑。但若发挥ESync的效果,需要对系统内核进行一下调整。
- 通过命令
ulimit -Hn
可以查看当前系统是否已经启用ESync。只要返回的数值不小于524288,那么就无需继续配置了。(systemd 240以后的版本默认是启用的)否则继续操作 - 编辑
/etc/systemd/system.conf
,在结尾增加DefaultLimitNOFILE=524288
- 编辑
/etc/systemd/user.conf
,在结尾增加DefaultLimitNOFILE=524288
- 重启,再通过命令
ulimit -Hn
验证,应该就完成了
还有一些其他的配置,如果你想的话,可以去https://github.com/lutris/lutris/wiki/阅读。
到此,一个系统显卡双调优的、几乎支持全平台的游戏主机产生了。在lutris里,你可以导入你的Steam列表、GOG列表、甚至是你的KDE内置小游戏都可以被导入其中。自然,你也可以通过这个软件安装一些Steam平台以外的Windows游戏。安装也很简单:
- 前往lutris官网
- 切换到
Games
标签页 - 搜索你想安装的游戏,进入其页面
- 点击
Install
然后,什么都不用管了,lutris会自动配置、下载、安装。
借这个机会,再来说两个关于显卡的问题。
第一、显卡加速组件。
更多的会是opencl和cuda这两种。如果你是英伟达显卡,那么cuda不会像win的驱动那样随安装包附带,需要另行安装。而cuda对驱动版本有对应关系,所以如果你需要cuda,那最好就不要从英伟达官网下载驱动,直接通过源来安装即可(以archlinux为例):pacman -S nvidia cuda
opencl同样如此。但因为AMD和Intel的驱动均为开源驱动(或者说是不需要闭源驱动。因为开源性能更强),驱动版本和opencl包总是同步更新的所以这两个平台无需考虑版本对应问题,直接通过源来安装即可:
pacman -S opencl-headers
pacman -S opencl-mesa lib32-opencl-mesa
至于英伟达,与cuda一样,不要手工从官网下载驱动安装,因为这样一来驱动版本可能会跟不上opencl的版本造成版本不对应。所以一切组件均通过源安装即可:pacman -S opencl-nvidia lib32-opencl-nvidia # 这里假设nvidia驱动已经从源安装
第二、英伟达驱动更新后,库连接被打破
如果你是从源里边安装的驱动,一般不会出现这种问题。但出现这种问题也无需担心,只需要通过ln -s
手工建立软连接即可。
已有 4 条评论