SteamVR-for-Linux
SteamVR-for-Linux copied to clipboard
[BUG] steamtours saved home environments don't work due to case-sensitive fs
Describe the bug When saving an environment and / or setting it as default, it cannot be loaded the next time. This seems to be due to case-sensitive filesystems. It think it saves some files with a different case than it later tries to load them.
To Reproduce Steps to reproduce the behavior: (saving)
- Change something in your vr-home environment
- Save the environment
- load it again -> it cannot load it and steamtours exits.
(default environment)
- Set another environment as default
- restart the vr home to load it -> it loads the standard home not the saved one.
Expected behavior Loading the saved data correctly.
** Workaround ** To verify my assumption and to workaround this problem I took advantage of the new abillity of ext4 to handle folders case insensitiv. However if the ext4-filesystem is not created with this feature enabled, it cannot be enabled afterwards. (see https://www.collabora.com/news-and-blog/blog/2020/08/27/using-the-linux-kernel-case-insensitive-feature-in-ext4/) This is what I did:
- create a new small partition (I use LVM so this was no problem for me...)
- format it with ext4 and the flag:
sudo mkfs -t ext4 -O casefold -E encoding_flags=strict /dev/{YOUR_PARTITION}
- rename the original folder
mv /home/$USER/.steam/steam/steamapps/common/SteamVR/tools/steamvr_environments/game /home//$USER/.steam/steam/steamapps/common/SteamVR/tools/steamvr_environments/game-old
- create a new folder as mount point
mkdir /home/$USER/.steam/steam/steamapps/common/SteamVR/tools/steamvr_environments/game
- mount it
sudo mount /dev/mapper/VG_SSD-LV_STEAMTOURS /home/$USER/.steam/steam/steamapps/common/SteamVR/tools/steamvr_environments/game
- create an fstab entry
/dev/{YOUR_PARTITION} /home/{YOUR_USER_NAME}/.steam/steam/steamapps/common/SteamVR/tools/steamvr_environments/game ext4 rw,relatime,data=ordered 0 2
- copy the data
cp /home/$USER/.steam/steam/steamapps/common/SteamVR/tools/steamvr_environments/game-old/* /home/$USER/.steam/steam/steamapps/common/SteamVR/tools/steamvr_environments/game/*
- Set the case insensitive flag for the steamtours folder
chattr +F /home/$USER/.steam/steam/steamapps/common/SteamVR/tools/steamvr_environments/game/steamtours
After that you should be able to save and load everything.
System Information (please complete the following information):
- Distribution: Arch
- SteamVR version: 1.15.19
- Steam client version: Built: Feb 5 2021, at 02:23:56 Steam API: v020
- Opted into Steam client beta?: No
- Graphics driver version: (AMD RX6800) driverInfo = Mesa 20.3.4 (ACO) driverInfo = Mesa 20.3.4 (ACO)
- Gist for SteamVR System Information: https://gist.github.com/aligator/894f126f43a4097f1859681bdb3d6518
Note: Commenters who are also experiencing this issue are encouraged to include the "System Information" section in their replies.
Can confirm, easier workaround using ciopfs:
- From SteamVR dir
-
cd tools/steamvr_environments
-
mv game game_real
-
mkdir game
-
ciopfs game_real game
This bug seems like one that'd be so easy to fix, and seems universal
ciopfs seems like a pretty good workaround for now. It feels like this shouldn't be hard to fix, though I don't have context and how a fix might affect workshop content.