Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux SteamVR broken slimevr: bridge error: No such file or directory #43

Closed
Links2004 opened this issue Dec 13, 2023 · 23 comments · Fixed by #44
Closed

Linux SteamVR broken slimevr: bridge error: No such file or directory #43

Links2004 opened this issue Dec 13, 2023 · 23 comments · Fixed by #44

Comments

@Links2004
Copy link
Contributor

currently using SlimeVR on Linux with SteamVR is not possible.

error message from vrserver:

slimevr: bridge error: No such file or directory

after some debugging I noticed that this comes from the fact that the vrserver is started in a chroot like envirement and has no access to the host files system.
this means /tmp and /run/user/1000 are not the same as the host system sees, and as a result the sockets from the slimeVR server are not there from the point of view of vrserver or the slimevr driver.

How to easy see the chroot mounts:

cat /proc/$(pidof vrserver)/mounts

How to explore the chroot isolation:

sudo nsenter -m -t $(pidof vrserver) bash
@ImUrX
Copy link
Member

ImUrX commented Dec 13, 2023

I haven't heard anyone else using the driver in linux having this issue 🤔

@Links2004
Copy link
Contributor Author

not sure it its new first time trying to use SlimeVR.
currently experimenting with it, looks like the $HOME dir can still be accessed, cooking a custom build currently to move the paths there.

I am currently running Arch linux with SteamVR 2.2.1 Beta.

@ImUrX
Copy link
Member

ImUrX commented Dec 13, 2023

I just entered latest stable SteamVR with nsenter -e because what we care about is the environment, and XDG_RUNTIME_DIR does exist

@ImUrX
Copy link
Member

ImUrX commented Dec 13, 2023

Latest beta also has an existing XDG_RUNTIME_DIR, I'm using NixOS Unstable

@Links2004
Copy link
Contributor Author

nsenter -e will only give you the env from the process, -m ist the importend flag

@ImUrX
Copy link
Member

ImUrX commented Dec 13, 2023

I can also ls it in latest beta

@Links2004
Copy link
Contributor Author

intressting, may the vrserver is started diffrently based on the host system, not sure what valve is doing.

with a custom build and the sockets moved to $HOME/.local/share/slimevr/SlimeVRDriver its working correctly.
will look in to creating a patch that allows to overrides the PATH when needed.

@ImUrX
Copy link
Member

ImUrX commented Dec 13, 2023

btw just curious, you are using steam-runtime and not the flatpak/snap, right?

@Links2004
Copy link
Contributor Author

no flatpak/snap in use.

steam comes from the arch pkg
https://archlinux.org/packages/multilib/x86_64/steam/

Links2004 added a commit to Links2004/SlimeVR-OpenVR-Driver that referenced this issue Dec 13, 2023
Links2004 added a commit to Links2004/SlimeVR-Server that referenced this issue Dec 13, 2023
this is needed if the vrserver is running in a chroot env and we need to mount the sockets to the HOME dir.

see: SlimeVR/SlimeVR-OpenVR-Driver#43
@ImUrX
Copy link
Member

ImUrX commented Dec 13, 2023

btw i asked for someone with SteamVR experience to check this issue.
I'm not against adding custom socket dir support, but I would like to know why you are having this issue.

@Links2004
Copy link
Contributor Author

sure, have not found the place where the isolation from the host system happens yet.
happy to provide more info of my system / environment if needed.

@Vixea
Copy link

Vixea commented Dec 13, 2023

Could you try to run SteamVR with Steam play none as the compatibility layer(install using protonup-qt)
https://github.com/Scrumplex/Steam-Play-None - for instructions

@Vixea
Copy link

Vixea commented Dec 13, 2023

Reason being is SteamVR is running under Valve's runtime and they may have changed how it works in this beta this would confirm that's the case

@Links2004
Copy link
Contributor Author

with Steam-Play-None SteamVR UI is not starting.

@Vixea
Copy link

Vixea commented Dec 13, 2023

Do you have all the dependencies needed to see that try installing steam-native-runtime

@Links2004
Copy link
Contributor Author

tried, but same result.

steps:

  • quit steam
  • sudo pacman -Syu
  • sudo pacman -S steam-native-runtime
  • steam-native
  • SteamVR does not start

@Vixea
Copy link

Vixea commented Dec 13, 2023

Run steam in a terminal and send the output here

@Vixea
Copy link

Vixea commented Dec 13, 2023

You have tried previous versions right and only 2.2.1 is affected?

@Links2004
Copy link
Contributor Author

Links2004 commented Dec 13, 2023

tested with Beta and Release
Release does not start at all Steam-Play-None or not.

Steam-Play-None + Beta

from looking at the logs I think this are the core problems:

libcef.so: cannot open shared object file: No such file or directory
/usr/bin/zenity: symbol lookup error: /usr/lib/libharfbuzz.so.0: undefined symbol: FT_Get_Transform
/home/links/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrmonitor: error while loading shared libraries: libsteam_api.so: cannot open shared object file: No such file or directory

/bin/sh\0-c\0/home/links/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=250820 -- /home/links/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/links/.local/share/Steam/compatibilitytools.d/Steam-Play-None-main'/launch.sh waitforexitandrun  '/home/links/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh'\0
vrstartup.sh[225616]: === Wed Dec 13 22:03:30 CET 2023 ===
vrstartup.sh[225616]: WARNING: launching in legacy LDLP scout, please use sniper SLR
vrstartup.sh[225616]: exec /home/links/.local/share/Steam/steamapps/common/SteamVR/bin/vrenv.sh /home/links/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh
vrenv.sh[225616]: VRCOMPOSITOR_LD_LIBRARY_PATH=/home/links/.local/share/Steam/steamapps/common/SteamVR:/home/links/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/lib:/home/links/.local/share/Steam/steamapps/common/SteamVR/bin/linux64:/home/links/.local/share/Steam/steamapps/common/SteamVR
vrenv.sh[225616]: exec /home/links/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh
vrstartup.sh[225616]: WARNING: launching in legacy LDLP scout, please use sniper SLR
vrstartup.sh[225616]: call /home/links/.local/share/Steam/steamapps/common/SteamVR/bin/vrsetup.sh
vrsetup.sh[225650]: Detected scout LDLP runtime.
/usr/bin/zenity: symbol lookup error: /usr/lib/libharfbuzz.so.0: undefined symbol: FT_Get_Transform
vrsetup.sh[225650]: Error: user declined superuser request.
/usr/bin/zenity: symbol lookup error: /usr/lib/libharfbuzz.so.0: undefined symbol: FT_Get_Transform
vrstartup.sh[225616]: exec /home/links/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup-helper.sh
vrstartup-helper.sh[225616]: exec /home/links/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrstartup
Using breakpad crash handler
Setting breakpad minidump AppID = 250820
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
12/13 22:03:30 Init: Installing breakpad exception handler for appid(250820)/version(2.2.1)/tid(225616)
Using breakpad crash handler
Setting breakpad minidump AppID = 250820
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
12/13 22:03:30 Init: Installing breakpad exception handler for appid(250820)/version(2.2.1)/tid(225723)
VR Server (v1702410427)

Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561197990129926 [API loaded yes]
Steam_SetMinidumpSteamID:  Setting Steam ID:  76561197990129926
vrcompositor-launcher.sh[225746]: === Wed Dec 13 22:03:33 CET 2023 ===
vrcompositor-launcher.sh[225746]: Detected scout LDLP runtime.
vrcompositor-launcher.sh[225746]: exec /home/links/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher
Using vrcompositor capability proxy
Failed to raise ambient cap
Launching /home/links/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor
Using breakpad crash handler
Setting breakpad minidump AppID = 250820
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
12/13 22:03:33 Init: Installing breakpad exception handler for appid(250820)/version(2.2.1)/tid(225746)
Fossilize INFO: Overriding serialization path: "/home/links/.local/share/Steam/steamapps/shadercache/250820/fozpipelinesv6/steamapprun_pipeline_cache".
12/13 22:03:34 Init: Installing breakpad exception handler for appid(250820)/version(2.2.1)/tid(225746)
assert_20231213220334_4.dmp[225782]: Uploading dump (out-of-process)
/tmp/dumps/assert_20231213220334_4.dmp
Using breakpad crash handler
Setting breakpad minidump AppID = 250820
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
12/13 22:03:34 Init: Installing breakpad exception handler for appid(250820)/version(2.2.1)/tid(225796)
./vrwebhelper: error while loading shared libraries: libcef.so: cannot open shared object file: No such file or directory
Using breakpad crash handler
Setting breakpad minidump AppID = 250820
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
12/13 22:03:34 Init: Installing breakpad exception handler for appid(250820)/version(2.2.1)/tid(225812)
This application failed to start because it could not find or load the Qt platform plugin "xcb".

Available platform plugins are: xcb.

Reinstalling the application may fix this problem.
crash_20231213220334_2.dmp[225815]: Uploading dump (out-of-process)
/tmp/dumps/crash_20231213220334_2.dmp
assert_20231213220334_4.dmp[225782]: Finished uploading minidump (out-of-process): success = yes
assert_20231213220334_4.dmp[225782]: response: CrashID=bp-38816eec-d988-4446-8d40-5a4bd2231213
assert_20231213220334_4.dmp[225782]: file ''/tmp/dumps/assert_20231213220334_4.dmp'', upload yes: ''CrashID=bp-38816eec-d988-4446-8d40-5a4bd2231213''
crash_20231213220334_2.dmp[225815]: Finished uploading minidump (out-of-process): success = yes
crash_20231213220334_2.dmp[225815]: response: CrashID=bp-0d472697-b2b8-4c83-8744-4ac712231213
crash_20231213220334_2.dmp[225815]: file ''/tmp/dumps/crash_20231213220334_2.dmp'', upload yes: ''CrashID=bp-0d472697-b2b8-4c83-8744-4ac712231213''
./vrwebhelper: error while loading shared libraries: libcef.so: cannot open shared object file: No such file or directory
Using breakpad crash handler
Setting breakpad minidump AppID = 250820
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
12/13 22:03:36 Init: Installing breakpad exception handler for appid(250820)/version(2.2.1)/tid(225857)
This application failed to start because it could not find or load the Qt platform plugin "xcb".

Available platform plugins are: xcb.

Reinstalling the application may fix this problem.
crash_20231213220336_2.dmp[225866]: Uploading dump (out-of-process)
/tmp/dumps/crash_20231213220336_2.dmp
Gtk-Message: 22:03:37.021: Failed to load module "colorreload-gtk-module"
Gtk-Message: 22:03:37.021: Failed to load module "window-decorations-gtk-module"
steam.sh[225880]: Running Steam on endeavouros rolling 64-bit
steam.sh[225880]: STEAM_RUNTIME is disabled by the user
steam.sh[225880]: Can't find 'steam-runtime-check-requirements', continuing anyway
tid(225967) burning pthread_key_t == 0 so we never use it
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561197990129926 [API loaded yes]
Steam_SetMinidumpSteamID:  Setting Steam ID:  76561197990129926
/bin/sh\0-c\0/home/links/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1009850 -- /home/links/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/links/.local/share/Steam/steamapps/common/OVR_AdvancedSettings/run.sh'\0

@rcelyte
Copy link

rcelyte commented Dec 13, 2023

You can tell the Steam Linux Runtime to expose SlimeVR's IPC file within its sandbox by putting PRESSURE_VESSEL_FILESYSTEMS_RW=$XDG_RUNTIME_DIR/SlimeVRDriver %command% in SteamVR's launch options. This is the same issue Monado runs into for Steam games, as documented at https://gitlab.com/znixian/OpenOVR#linux-specific-info

Edit: if it wasn't clear, adding that launch option fixes SlimeVR

@Vixea
Copy link

Vixea commented Dec 14, 2023

anyway if you truely believe this to be a steamvr issue you can always report it here(the not launching part(https://github.com/ValveSoftware/SteamVR-for-Linux/)

@Links2004
Copy link
Contributor Author

yes, can confirme adding PRESSURE_VESSEL_FILESYSTEMS_RW=$XDG_RUNTIME_DIR/SlimeVRDriver %command% makes it work with out moding the socket dir, may its a good idea to add this to the docu?

I dont think that Steam-Play-None is supported by Valve , they have ther runtime for a reason,
If not they need to support any OS with any version of dependenys which sound bad ;)

@ImUrX
Copy link
Member

ImUrX commented Dec 16, 2023

can you report this to https://github.com/ValveSoftware/steam-runtime/issues please, I honestly feel like /run should be mounted from the system, people use it to override LD_PRELOAD for TF2 for example qwq

Eirenliel pushed a commit that referenced this issue Apr 25, 2024
#43) (#44)

* add $HOME/.local/share/slimevr to the possible dirs of the sockets (fix #43)

* Don't throw exception when socket fails to open

Co-authored-by: Uriel <[email protected]>

* Add path constants

Co-authored-by: Kitlith <[email protected]>

* Update src/bridge/bridge-unix-sockets.cpp

Co-authored-by: Kitlith <[email protected]>

* fixup!

---------

Co-authored-by: Kitlith <[email protected]>
Co-authored-by: Uriel <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants