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

[BUG] Unable to setup SteamVR under debian bookworm. "getcap is required..."

Open RetroZelda opened this issue 2 years ago • 10 comments

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

RetroZelda avatar Feb 22 '23 03:02 RetroZelda

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

RetroZelda avatar Feb 23 '23 01:02 RetroZelda

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.

wheaney avatar Jun 06 '23 04:06 wheaney

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 image

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.

wbehrens-on-gh avatar Aug 30 '23 22:08 wbehrens-on-gh

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 avatar Oct 01 '23 10:10 KisaragiEffective

@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

mikeyjoel avatar May 20 '24 19:05 mikeyjoel

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

elite4jonny avatar Jul 24 '24 19:07 elite4jonny