SteamVR-for-Linux icon indicating copy to clipboard operation
SteamVR-for-Linux copied to clipboard

[BUG] steamtours saved home environments don't work due to case-sensitive fs

Open aligator opened this issue 4 years ago • 2 comments

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)

  1. Change something in your vr-home environment
  2. Save the environment
  3. load it again -> it cannot load it and steamtours exits.

(default environment)

  1. Set another environment as default
  2. 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:

  1. create a new small partition (I use LVM so this was no problem for me...)
  2. format it with ext4 and the flag: sudo mkfs -t ext4 -O casefold -E encoding_flags=strict /dev/{YOUR_PARTITION}
  3. 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
  4. create a new folder as mount point mkdir /home/$USER/.steam/steam/steamapps/common/SteamVR/tools/steamvr_environments/game
  5. mount it sudo mount /dev/mapper/VG_SSD-LV_STEAMTOURS /home/$USER/.steam/steam/steamapps/common/SteamVR/tools/steamvr_environments/game
  6. 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
  7. 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/*
  8. 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.

aligator avatar Feb 06 '21 13:02 aligator

Can confirm, easier workaround using ciopfs:

  1. From SteamVR dir
  2. cd tools/steamvr_environments
  3. mv game game_real
  4. mkdir game
  5. ciopfs game_real game

ChrisJAllan avatar May 14 '21 22:05 ChrisJAllan

This bug seems like one that'd be so easy to fix, and seems universal

jmanabc avatar Mar 10 '22 16:03 jmanabc

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.

Scrumplex avatar Dec 23 '22 10:12 Scrumplex