宇宙纪元

hinder110 的思考、读书与代码札记。

0%

Steam Linux Proton 游戏配置指南

缘起

作为一个双系统用户,Windows 上装了不少游戏,但每次想玩游戏都得重启切换系统,体验实在割裂。最近决定在 Linux(CachyOS)上把 Steam 游戏环境搭起来,过程意外的顺利,记录下来供自己备忘,也分享给有同样需求的人。

核心概念

在 Linux 上玩 Windows 游戏,不需要虚拟机,靠的是 Proton

Proton 是 Valve 开发的兼容层,本质是 Wine + DXVK(DirectX → Vulkan 翻译层)的整合包。Steam Deck 用的就是这套东西。目前 ProtonDB 的数据显示大约 90% 的 Windows 游戏在 Linux 上可玩,主要例外是带内核级反作弊的网游(Valorant、Faceit 等)。

安装

CachyOS(Arch 系)安装极其简单。不需要装那个 3GB 的 cachyos-gaming-meta 全家桶,精简方案就够:

1
sudo pacman -S steam proton-cachyos gamemode mangohud lib32-mangohud protontricks
包名 作用
steam Steam 客户端
proton-cachyos CachyOS 定制的 Proton,带额外补丁和优化
gamemode 启动游戏时自动切换 CPU 到性能模式,退出后恢复
mangohud 屏幕浮层,显示帧率、CPU/GPU 占用、温度
protontricks 给特定游戏安装 VC++ 运行库、.NET 等 Windows 组件

总量约 330 MiB 下载,比我一开始看到的 680 MiB 少了一半。

启用 Proton

打开 Steam → SettingsCompatibility

  1. Enable Steam Play for supported titles
  2. Enable Steam Play for all other titles(这个必须勾,否则大量未认证游戏不会让你运行)
  3. 下拉选择 Proton-CachyOS(或者最新的 Proton Experimental)
  4. 重启 Steam

转移 Windows 上的游戏

这是最关键的步骤。查了一圈资料,有三种方案:

方案一:复制文件 + Steam 验证(推荐 ✅)

最稳妥,零副作用。原理:Windows 游戏的安装文件和 Linux 下的完全一样,Proton 只在运行时创建 Wine 前缀。

  1. 在 Linux 上挂载 Windows 的 NTFS 分区
  2. Steam/steamapps/common/游戏名 文件夹复制到 ~/.steam/steam/steamapps/common/
  3. 在 Steam 里点 “安装”,选择同一个路径
  4. Steam 会自动检测已有文件,从 “下载” 变成 “验证”,只拉取少量元数据
  5. 第一次启动时 Proton 自动创建 Wine 环境,启动稍慢几秒
1
2
# 如果 common 目录还不存在
mkdir -p ~/.steam/steam/steamapps/common

方案二:Btrfs 分区共享

如果你的游戏数据在单独的 Btrfs 分区,Windows 装 WinBtrfs 驱动后两边都能读写。但已知问题不少:Windows 索引会碰文件、有原生 Linux 版的游戏会在切换系统时重复下载。维护成本 > 方案一的一次性复制。

方案三:NTFS 直接共享(不推荐 ⚠️)

Valve 官方劝退。NTFS 不支持符号链接(Proton 必需),必须把 compatdata 目录软链到 Linux 原生文件系统。还得关 Windows 快速启动否则可能损坏数据。不值得折腾。

结论:方案一最佳,复制一次,一劳永逸。

Steam 游戏目录在哪里

1
2
~/.steam/steam/steamapps/common/        # 游戏文件
~/.steam/steam/steamapps/compatdata/ # Proton 为每个游戏创建的 Wine 前缀

~/.steam/steam/ 实际是 ~/.local/share/Steam/ 的软链接。

性能工具:GameMode 和 MangoHud

这两个工具通过 Steam 启动选项来用:

右键游戏 → 属性 (Properties)启动选项 (Launch Options)

启动选项 效果
gamemoderun %command% 自动切换 CPU 性能调度
mangohud %command% 屏幕浮层显示帧率、温度等
gamemoderun mangohud %command% 两者同时启用

注意: GameMode 不是所有游戏都需要开。视觉小说、像素游戏这种不吃性能的开了纯属浪费电。留给 3A 大作和射击游戏就够了。

手动验证 GameMode 是否在工作:

1
gamemoded -s

游戏兼容性查询

在买游戏或折腾之前,先去 ProtonDB 查一下:

评级 含义
Platinum 开箱即用
Gold 需要小幅调整
Silver 能玩但有明显问题
Bronze 勉强能跑
Borked 完全不能玩

网站上还有用户提交的具体 Proton 版本选择和启动参数,很有参考价值。

我的第一个 Linux 游戏

装好之后第一个跑的是《命运石之门》(Steins;Gate),这种视觉小说对 Proton 毫无压力,开箱即用。看着熟悉的画面出现在 KDE 桌面上,确实有一种 “这玩意儿真的能跑” 的新奇感。

小结

整个过程比预期的顺利很多。从安装到跑起第一个游戏,总共就几条命令加 Steam 里勾两个选项。Steam Deck 的生态反哺让 Linux 桌面游戏从 “能跑但折腾” 变成了 “大概率开箱即用”。

接下来打算把 Windows 上的游戏一个个搬过来试试,看看哪些能完美运行,哪些需要调参数。