Open Graphicscore opened 3 years ago
Hello @Graphicscore, your system information looks healthy, and from your log this looks like the failure:
Traceback (most recent call last):
File "/usr/lib/python3.7/tarfile.py", line 2206, in makelink
os.symlink(tarinfo.linkname, targetpath)
OSError: [Errno 22] Invalid argument: '../drive_c' -> '/run/media/graphicscore/SSD/Games/SteamLibrary/steamapps/common/Proton 6.3/dist/./share/default_pfx/dosdevices/c:'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/run/media/graphicscore/SSD/Games/SteamLibrary/steamapps/common/Proton 6.3/proton", line 1253, in <module>
g_proton.extract_tarball()
File "/run/media/graphicscore/SSD/Games/SteamLibrary/steamapps/common/Proton 6.3/proton", line 318, in extract_tarball
tar.extractall(path=self.dist_dir)
File "/usr/lib/python3.7/tarfile.py", line 2004, in extractall
numeric_owner=numeric_owner)
File "/usr/lib/python3.7/tarfile.py", line 2046, in extract
numeric_owner=numeric_owner)
File "/usr/lib/python3.7/tarfile.py", line 2124, in _extract_member
self.makelink(tarinfo, targetpath)
File "/usr/lib/python3.7/tarfile.py", line 2217, in makelink
targetpath)
File "/usr/lib/python3.7/tarfile.py", line 2118, in _extract_member
self.makedir(tarinfo, targetpath)
File "/usr/lib/python3.7/tarfile.py", line 2147, in makedir
os.mkdir(targetpath, 0o700)
OSError: [Errno 22] Invalid argument: '/run/media/graphicscore/SSD/Games/SteamLibrary/steamapps/common/Proton 6.3/dist/./share/default_pfx/dosdevices/c:'
To me, this reads like an error on Proton's side and should be evaluated by the Proton devs first.
What filesystem are you using with /run/media/graphicscore/SSD/Games/
? Also, are there any symlinks along the path in the error?
The filesystem is NTFS since I am dualbooting Windows and share games between Linux and Windows.
Proton interacting with NTFS is known to be finicky. This is most likely yet another example of NTFS causing trouble based on how you mounted the partition.
Also, "Application files installed by Steam for Linux should not be shared (e.g. between Windows and Linux). This is a requirement of the Steam for Linux client." (https://github.com/ValveSoftware/steam-for-linux/blob/master/RelNotes.md#installation) is relevant here as sharing a Steam library between multiple OSes is not supported and can lead to other undefined behavior.
@kisak-valve I am really sorry but this matter is not communicated that well. And this piece of knowledge is really easy to miss when you are a new user and you are going through adjustment period. In addition to that, you linked to an ancient document (2013) from a repo that no one looks into. Steam is now built in base repositories, distro stores or even built-in into distros, there is little reason to enter Steam's github page.
Since Proton exploded, people will most likely find this: https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows, and unfortunately this page does not educate you about issues, bugs, anomalies or errors linked to the usage of NTFS partition. I had to find discussions about those issues on linux gaming related Discords (!).
One thing to note is this may be resolved with the new ntfs3
driver being mainlined in Linux kernel version 5.15, as it appears to give full NTFS support with none of the issues ntfs-3g
had. I'm currently running the -rc4
kernel with the aforementioned new driver and I'll see if proton works fine on it.
The filesystem is NTFS since I am dualbooting Windows and share games between Linux and Windows.
This should fix it -> https://wiki.archlinux.org/title/Steam/Troubleshooting#Steam_Library_in_NTFS_partition I can start all my installed games from my NTFS drives without problems
Here is the full traceback I receive:
Traceback (most recent call last):
File "/home/fichte/.local/share/Steam/steamapps/common/Proton - Experimental/proton", line 1402, in <module>
g_session.init_session(sys.argv[1] != "runinprefix")
File "/home/fichte/.local/share/Steam/steamapps/common/Proton - Experimental/proton", line 1207, in init_session
g_compatdata.setup_prefix()
File "/home/fichte/.local/share/Steam/steamapps/common/Proton - Experimental/proton", line 738, in setup_prefix
os.symlink("../drive_c", self.prefix_dir + "/dosdevices/c:")
OSError: [Errno 22] Invalid argument: '../drive_c' -> '/mnt/data_steam/steamapps/compatdata/397540/pfx//dosdevices/c:'
which makes sense because :
is not a valid character on NTFS file systems (when used with Windows) and i use windows_names
in my mount options for compatibility.
I tried working around that by symlinking from the NTFS to my ext4 root partition:
/mnt/data_steam/steamapps/compatdata $ mv -v 397540 ~/.steam/steam/steamapps/compatdata
/mnt/data_steam/steamapps/compatdata $ ln -s ~/.steam/steam/steamapps/compatdata/397540 397540
which got rid of the error, but unfortunately the game still does not start. Not sure if that's a general issue or one with the game in particular (Borderlands 3). Edit: Made it work by re-installing into a different location instead of re-using the version I had from Windows.
The filesystem is NTFS since I am dualbooting Windows and share games between Linux and Windows.
This should fix it -> https://wiki.archlinux.org/title/Steam/Troubleshooting#Steam_Library_in_NTFS_partition I can start all my installed games from my NTFS drives without problems
thank you so much it works now
This is a prome candidate for some sort of a more readable error (custom exception, probably) AND better documentation (Proton wiki only mention "game does not run", does NOT mention any of the errors.
For the record, I had the same error with Gems of War installed on an NTFS partition.
I would never guess that proton has issues mounting paths if I didn't open the terminal to check out why steam continues to silently kill the game processes...
Moving the proton folders and creating sys links indeed fixes the problem!
Turns out Wine has problems with NTFS, so that Arch wiki link is really relevant. Thanks a lot Fijxu!
I would never guess that proton has issues mounting paths if I didn't open the terminal to check out why steam continues to silently kill the game processes...
Moving the proton folders and creating sys links indeed fixes the problem!
Turns out Wine has problems with NTFS, so that Arch wiki link is really relevant. Thanks a lot Fijxu!
You welcome :)
Also, i found this some time ago, this make Windows able to read BTRFS partitions, so you can format you Hard Drives and Solid State Drives to BTRFS on Linux and Windows will be able to read them without problem. This also solves this issue because it's not NTFS
https://github.com/maharmstone/btrfs
I haven't used this driver to much since i barely use Windows now, but it was pretty stable. All my HDDs are formated in BTRFS and fully readable
Installation Guide if someone is intrested (For spanish speakers only): https://www.youtube.com/watch?v=iVzCZrwgo0Q
Installation Guide (English, not my video and kinda old): https://www.youtube.com/watch?v=ni-4fEtgTso
@FichteFoll is right about windows_names
, but I am strongly against the whole symlink thing because it defeats the point of having a game library disk where all the heavy stuff go. And man the compactdata place can surely grow: 200 MB for each game is not big for your average AAA game sizes, but imagine you are a weirdo with a bunch of small indie games and...
The thing is, NTFS is getting wrongly blamed. Y'all should be blaming udisks2 or whatever for trying to be clever with windows_names
. Windows does not like these names, so what? It does not hang or crash when it gets to one of these names, it just fails to read it. And these are Wine symlinks, so Windows does not need to read it anyways! If chkdsk
deletes them, proton recreates them -- these are symlinks, not important data.
The real way to fix it is to do the mount
yourself without the bunch of options. rw,allow_other,user_id=1000,big_writes
works just fine, so stick with it. And write it into /etc/fstab
so your dumbass file explorer stops being smart with the options.
Your system information
Steam Runtime Version: 0.20210817.0
Distribution (e.g. Ubuntu 18.04): Manjaro Linux 21.1.3
Full system information https://gist.github.com/Graphicscore/a431b91d8a3da7d8823bc9c8bee2823c
Have you checked for system updates? Yes
What compatibility tool are you using?: Steam Linux Runtime / Proton 6.3
If you are using Steam Linux Runtime, or Proton 5.13 or newer: What versions are listed in SteamLinuxRuntime_soldier/VERSIONS.txt?
Name Version Runtime Runtime_Version Comment
depot 0.20210818.24 # Overall version number
pressure-vessel 0.20210809.1
scripts v0.20210818.0-0-gc6be089 # Entry point scripts, etc.
soldier 0.20210817.0 soldier 0.20210817.0 # soldier_platform_0.20210817.0/
Please describe your issue in as much detail as possible:
If I try to run a game with proton steam will "launch" the game, nothing happens, and after a few seconds the steam client revokes the "running" status of the game. If I bypass the runtime container described in this post https://github.com/flightlessmango/MangoHud/issues/369#issuecomment-709902078 I am able to run the games. I have tested it with FFXIV and Space Engineers.
slr-app39210-t20210918T214247.log
Steps for reproducing this issue: