Linux Steam Proton教程:从安装Steam到启动地平线4

        本文记录了我在安装使用Steam Proton过程中,需要执行的操作步骤和遇到的问题,并给出解决方案,希望能为在使用Proton过程中遇到问题的朋友提供帮助。

        本文基于的硬件与操作系统:       

CPU: AMD R9 7900X
主板: MSI B650M MORTAR WIFI (微星 B650M 迫击炮)
内存: 32GB DDR5 4800MHZ(未开启XMP)
GPU: NVIDIA Geforce RTX 3050
硬盘情况:装有两块SSD,硬盘A有两个分区:Windows10系统与SteamLibrary所在分区(NTFS),硬盘B装有Linux系统
操作系统:Linux Mint 22.1 "xia"

        此教程也适用于Ubuntu系统。

        1:安装Steam

        到Steam官网下载安装Linux版Steam并将客户端更新到最新版本,操作简单,这里不再展开。

        正确安装显卡驱动,对于N卡,可以运行 nvidia-smi 检查驱动,如果看到输出了自己的显卡型号,则安装成功。

        2:启用Proton

        Steam左上角 --> 设置(Settings) --> 兼容性(Compatibility) --> 打开Steam Play开关(Enable Steam Play for all other titles) --> 选择Proton版本(Run other titles with)

        选择比较新的Proton版本,如Hotfix,Experimental 并等待Steam自动下载安装完成

        3:尝试启动游戏

        此时可以尝试启动Windows平台专用游戏,如地平线4,5,赛博朋克2077,如果一切正常,那么恭喜你安装成功

        对于从Windows平台转向Linux的用户,如果没有把游戏下载到Linux分区上,应该是无法启动的,具体表现为:点击启动按钮后,Steam显示正在启动 --> 正在运行 --> 等待数秒后游戏停止运行,按钮恢复到绿色的“启动游戏”,全过程没有出现任何游戏窗口。

        这种情况大多发生于:游戏安装在Windows分区内(NTFS格式),当Proton启动时,程序需要创建符号链接或带有冒号的文件名,这二者不被Windows(NTFS)所支持,所以操作会失败,游戏无法启动。

        为了确认错误所在,在命令行中运行Steam,(Ctrl+Alt+T打开命令行,直接输入steam,注意不能是root身份),Steam的日志输出中包含很多有用的信息。

        如果看到包含 "drive_c", : 的错误信息,且错误日志所表达的意思为创建符号链接失败,则参考下面的解决方案。

        解决方法1:更换Proton版本,但这应该不会起效果。

        解决方法2:将游戏文件下载或全部复制到Linux分区内(EXT4格式),但这会浪费大量硬盘空间,而且Windows不支持EXT4分区,这些游戏文件在Windows中是无法使用的。

        解决方法3(推荐):修改执行过程,参考链接:Steam/Troubleshooting - ArchWiki,以下给出操作过程

        4:修复执行

        1:运行

genfstab -U /

        并查看输出,找到 ntfs 所对应的磁盘UUID,并将整行数据复制,要复制的内容应该长这样:

UUID=C2B91B3520D969DD	/media/zhang/Game	ntfs      	rw,nosuid,nodev,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096  0 0

        其中,存储游戏文件的SteamLibrary位于盘符为 Game 的NTFS分区内,这个分区在Linux中被默认挂在到 /media/你的用户名/Game 下,这个UUID所对应的分区就是要添加的分区。

        2:写入fstab

sudo vim /etc/fstab

        如果你没有安装vim,先安装vim,简单操作不再列出。

       一直按下方向键到文件末尾,按i进入编辑模式,将刚才复制数据粘贴到新的一行。ESC退出编辑模式,按冒号再按wq回车保存退出。

        卸载并重新挂载分区:

1:sudo umount /media/你的用户名/Game
2:使用lsblk查看SteamLibrary(Game)所在分区的设备名,如sda1/nvme0n1p1等
3:sudo mount /dev/设备名 /media/你的用户名/Game
请将Game替换为对应的盘符

         运行

sudo systemctl daemon-reload

        或重启电脑,如果运行命令后不起作用。

        3:尝试启动游戏

        再次在命令行中启动Steam并运行游戏,注意观察输出日志,Steam启动游戏时,会输出“Adding xxx”的信息并包含进程PID,游戏运行结束时会输出“Removing xxx”并包含与启动时相对的进程PID信息,在启动与停止日志信息中间的,就是要找的错误信息。如果一切正常,那么恭喜安装完成。

        4:权限修改

        大多数情况下,在完成以上修改后,类似"drive_c"的错误信息不再出现,表示Proton可以正常处理NTFS分区内的游戏文件,但是这通常会带来另一个问题:日志输出体现为:”wineserver ... this prefix is not owned by you“, "wine ... this prefix is not owned by you",这是由于兼容层在创建虚拟环境时,将前缀创建在外部存储器中,从而普通用户无权访问的情况,但是Steam又不能以root身份运行,则需要修改添加的NTFS分区的权限。

        将刚才写入fstab中的数据进行修改,替换为如下格式

UUID=C2B91B3520D969DD /media/zhang/Game	ntfs uid=1000,gid=1000,rw,user,exec,umask=000 0 0

        将UUID,用户名,盘符,uid,gid替换为当前环境下所对应的数据,uid与gid可以通过命令

id -u
id -g

        查看,默认情况下二者应该都是1000,其他内容按照给出的内容复制即可。

        重启Steam,游戏正常启动。如果可以启动地平线4,那么赛博朋克2077等一系列(很多)Windows专用游戏都可以正常启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值