Running Windows games on Linux with Steam Play
There are tons of tutorials going over how to try and run Windows games directly from Linux using Steam. After following a mix of advices from various places, I still could not run any Windows games. They would crash shortly after a “Preparing to launch” popup appeared.
In many cases, crashes are caused by stuff that has nothing to do with the games themselves. To figure out what is going on, it’s a great idea to enable detailed logging. To do that, find the user_settings.sample.py
file under the Proton folder. Mine was located at $HOME/.local/share/Steam/steamapps/Proton 5.0
. Open it, set "DXVK_LOG_LEVEL"
to "debug"
and then rename the file to user_settings.py
. After making these changes and restarting Steam, when you try to launch a game, a log named steam-GAMEID.log
will be saved to your $HOME
folder.
In my case, the log files said that Steam had no permission to access game files. My laptop has a tiny SDD wherein only the OS and some essential libs are installed, and a large HDD in which heavy files, such as games, are stored. It turns out that this HDD was mounted to a point owned by root
. Using chown
to change ownership does not work in this case, since the HDD is formatted in NTFS, and NTFS does not allow fine-grained (folder or file) ownership assignment. Running games directly from the command line via sudo steam steam://rungameid/{MY_GAME_ID}
does not work either, because Steam will not run anything under sudo
(it is a terrible idea anyway :)).
It is possible, however, to change the ownership of the entire mounting point. This should be ok if the HDD is not accessed by multiple users, and can be done by changing the /etc/fstab
file. Find the line referring to the HDD mount and add user/group info. It should look something like this
UUID={MY_PARTITION_ID} /hdd ntfs defaults,uid={MY_OWNER_USER},gid={MY_OWNER_GROUP} 0 0
A list of all partitions and their UUIDs can be retrieved via sudo blkid
.
After updating fstab, reboot. Check that HDD ownership was updated and get ready to play.