SteamVR-for-Linux
SteamVR-for-Linux copied to clipboard
[BUG] Unable to setup SteamVR under debian bookworm. "getcap is required..."
I am attempting to run SteamVR and when I initially start it, I get a message stating:
SteamVR setup is incomplete, some features might be missing. See /tmp/SteamVRLauncherSetup.log for details.
upon opening the log file I have only this error message:
Tue Feb 21 22:07:38 EST 2023 - Error: getcap is required to complete the SteamVR setup.
I am running debian testing, and I have attempted both libcap2-bin and libcap2-bin:i386 without any luck.
I have also attempted to setcap with /user/bin/getcap without much luck either
My aim is to get my rift cv1 running. I have installed from the debian repo openhmd:
$ apt list | grep openhmd
libopenhmd-dev/testing,stable,now 0.3.0-1 amd64 [installed]
libopenhmd-dev/testing,stable 0.3.0-1 i386
libopenhmd0/testing,stable,now 0.3.0-1 amd64 [installed]
libopenhmd0/testing,stable 0.3.0-1 i386
My system:
- Debian Bookworm on kernel 6.1.0-3-amd64
- Steam client built Feb 14 2023, at 00:47:47
- Steam API: v020
- Steam Package Versions: 1676336721
- SteamVR Version: 1.24.7 (1671750570)
- Nvidia Driver Version: 520.56.06
- Gist: https://gist.github.com/RetroZelda/6891fda8b96ad3f9def99c20f80e8265
so I was able to get past installation by adding /user/sbin to PATH before starting steam, however the issue will continue to appear in subsequent runs without it present in PATH. I at least have a workaround, but I will leave this ticket because the underlying problem still exists
It's worth noting that your PATH will depend on how you're launching Steam. I'm on a linux distro and was using an Xfce launcher that was added to my launcher panel, and that has a different PATH than bash (which already included /user/sbin. Launching Steam through bash resolves the issue for me.
I'm getting the same issue on fedora 37 and so far niether of the above workarounds have fixed the issue, I have getcap installed and it's in the path when I launch steam. When I attempt to launch steamVR all I get is
I attempted to force start steam vr by calling ./vrstartup.sh and multiple windows opened but none of my base stations could detect the headset or controllers during room setup.
I have encountered same issue. My workaround is following:
ln -s /usr/sbin/getcap /usr/bin/getcap
ln -s /usr/sbin/setcap /usr/bin/setcap
You must restart your SteamVR instance, so it will ask elevation and you would need type your password to something like pkexec.
@KisaragiEffective Thank you! This is the pointer I was looking for.
For anyone else on OpenSUSE Tumbleweed do the following:
sudo zypper install libcap-progs rustup
sudo ln -s /usr/sbin/getcap /usr/bin/getcap
sudo ln -s /usr/sbin/setcap /usr/bin/setcap
# alternatively you can set the cap yourself without having to symlink it. I would recommend still doing the symlink just in case you have to change SteamVR versions if you are a ALVR user like me on Linux.
sudo setcap CAP_SYS_NICE=eip .local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher
Output should look similar to the following:
~/.local/share/Steam/steamapps/common/SteamVR/bin/vrsetup.sh
vrsetup.sh[6481]: exec /home/linux/.local/share/Steam/steamapps/common/SteamVR/bin/vrenv.sh /home/linux/.local/share/Steam/steamapps/common/SteamVR/bin/vrsetup.sh
vrenv.sh[6481]: VRCOMPOSITOR_LD_LIBRARY_PATH=/home/linux:/home/linux/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/lib:/home/linux/.local/share/Steam/steamapps/common/SteamVR/bin/linux64
vrenv.sh[6481]: exec /home/linux/.local/share/Steam/steamapps/common/SteamVR/bin/vrsetup.sh
vrsetup.sh[6481]: Relaunching under scout LDLP runtime.
vrsetup.sh[6481]: exec /home/linux/.steam/bin/steam-runtime/run.sh /home/linux/.local/share/Steam/steamapps/common/SteamVR/bin/vrsetup.sh
vrsetup.sh[6481]: Detected scout LDLP runtime.
vrsetup.sh[6481]: /home/linux/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher binary has cap_sys_nice privileges
Bug still exists in Debian Trixie as of July 2024, but can be worked around with the provided terminal commands from @KisaragiEffective
ln -s /usr/sbin/getcap /usr/bin/getcap
ln -s /usr/sbin/setcap /usr/bin/setcap