本文最后一次在 2021 年 11 月15 日更新,部分内容可能已经过时!

视频点此

“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 条评论

  1. 前排支持 —— winlere winlere 发表。 回复TA
  2. up说的对! —— ScottLiu_NonWin ScottLiu_NonWin 发表。 回复TA
  3. vmware可以玩很多游戏cod,cs1.6,希望站长啥时候能来一片关于linux vmware的相关文章 —— TypeMoon TypeMoon 发表。 回复TA
    1. vmware我之前提过 往前找找 —— 等我稍后补充昵称 等我稍后补充昵称 [作者] 于 发表。 回复TA

添加新评论