Steam Proton 配置

Proton是个好东西,经过Valve这么多年的调教,对于大部分游戏来说都算得上有奇效了。不得不感叹一下商业公司的效率。
但是,上手就遇到了问题,本该很顺畅的游戏,却无论如何无法打开,只有按钮发生了变化,过一段时间就关掉了,也没有任何窗口弹出来。按照网上说的,添加PROTON_LOG=1 %command%命令行,也没有起任何作用,任何日志都没有生成。
通过命令行运行Steam,发现报了个错误,

1
OSError: [Errno 22] Invalid argument: '../drive_c' -> '/run/media/jackmyth/565C3B565C3B305B/SteamLibrary/steamapps/compatdata/3489700/pfx//dosdevices/c:'

根据这个错误查了一下,原来是Proton尝试在Steam库下创建Wine环境,但环境路径里有冒号,违背了NTFS的路径要求,会导致创建不出来完整的环境。
解决方式也很简单,就是在方便的地方创建一个文件夹,然后把compatdata这个目录链接过去。

1
2
mkdir /home/jackmyth/ProtonRuntime/compatdata
ln -s /home/jackmyth/ProtonRuntime/compatdata /run/media/jackmyth/565C3B565C3B305B/SteamLibrary/steamapps/compatdata

需要根据需要调整路径,每一个分区下的SteamLibrary都要链接一份,不过可以用同一个文件夹,放在一起就行。
网上的教程到这里就结束了,但实际上我再次运行依然没有成功,报了一个找不到explorer的错误。
并没有找到这个问题的解决方案,唯一有的是说把Proton本身也放在Linux分区内,给它也创建链接,但并没有起作用。
当时我甚至以为Fedora无法正常跑起来游戏,因为我找到了一个回答,说“N卡和Linux兼容性不好,SteamOS经过特调,所以SteamDeck能跑但PCLinux跑不起来是正常的”,果然半桶水害人不浅。
我将Steam的某个Galgame卸载了,安装到了Fedora分区内(EXT4文件系统),仍然无法运行,但我在调试的时候偶然选错了兼容层,选择了一个新的,而这一次却突然可以运行了。
经过仔细的观察,我发现Steam会将Proton安装在需要运行的游戏所在的库中,如果要运行的游戏在NTFS分区中,就会安装在NTFS分区里,而之后运行其他游戏时会使用已经装好的Proton。我猛然想到,既然Proton是固定的,那么把Proton装到Fedora分区不就可以了。于是我卸载了之前装过的所有Proton,然后通过运行位于Fedora分区内的游戏来把高版本的Proton安装到了Fedora分区里,然后游戏就可以运行了,包括《剑星》这类的大型3D游戏,并且运行效率还不低。


Valve官方有一篇关于Proton在NTFS上运行的文档,里面有更详细的内容。