protonscr

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

steamvropen bug
ValveSoftware/SteamVR-for-Linux#427 · opened 2021-02-06 by aligator · updated 2022-12-23 · 3 comments · github
Aaligator 2021-02-06 github

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.

CChrisJAllan 2021-05-14 github

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
Jjmanabc 2022-03-10 github

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

SScrumplex 2022-12-23 github

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.

Nothing extracted yet.