I recently bought one to play around with VR and figured I should document what got it working for me.
Even though linux is "officially supported", it does not mean feature-parity with windows.
However, I absolutely refuse to install windows ever again.
I finally figured out the bug with pkexec, and added the necessary package to arch.sh
!
Installing SteamVR will require superuser permissions to run the vrcompositor-launcher
, but this locks up my entire openbox desktop forcing me to reboot the system.
This can be solved by running this command before launching SteamVR, and must be run anytime SteamVR is updated:
sudo setcap cap_sys_nice+eip ~/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher
You can verify the setting with:
getcap ~/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher
Apparently the script is attempting to run pkexec
, and I am unsure what polkit configuration needs to exist for that to succeed...
Apparently steamvr does not like amdvlk, and since my system has both amdvlk and radeon I had to add this to my ~/.bash_profile
:
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json"
Various documents also recommend these settings in your ~/.bash_profile
:
export STEAM_RUNTIME=1
export STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0
There is a manual switch at the bottom that let's you adjust IPD, and will display the numeric distance in the HMD.
I measured my IPD at 62.5, but sometimes I find visuals to be better when I set it slightly larger.
These are bugs, which have workarounds:
Startup / Shutdown
tab.
echo 3 > /proc/sys/vm/drop_caches
, and then starting it back up.export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json"
), then starting it again.pactl
to find and switch profiles, but it has to be done manually and set back to the original after you exit SteamVR.
pactl set-card-profile 1 output:hdmi-stereo-extra2
to enable and pactl set-card-profile 1 output:hdmi-stereo
to switch back to the default, and it may not remember the volume making it potentially noisy.These are broken and have no resolutions:
guvcview
, but this issue has been open for 2 years now, and no progress or official replies.These are some scripts and utilities that can be used to provide some missing functionality:
The steamvr_utils
package can be installed and easily hooked to the launch configuration of SteamVR.
First I cloned the repository and reviewed the readme and code. I found nothing malicious in the code.
I ran installation of dependencies and permissions as root:
pip3 install bluepy
pip3 install psutil
setcap 'cap_net_raw,cap_net_admin+eip' /usr/lib/python3.9/site-packages/bluepy/bluepy-helper
I forked and modified the code so that I could get it to properly restore audio, and will eventually add microphone support to it.
Next I added the SteamVR launch command:
python3 /home/cdelorme/git/steamvr_utils/scripts/steamvr_utils.py daemon >>/tmp/steamvr_utils.out 2>&1; %command%;
Here are the games I've tried and the results:
Test out Steam VR Desktop Theater functionality; should be able to play flat-screen games in VR on a big screen. The game for this should be Everspace 2.
Finally, decide whether to buy and download Beat Saber, which is dependent on the ability to mod and add custom songs.
Beat Saber customization on linux: https://unhexium.net/vr/beat-saber-mods-and-linux/ https://github.com/bsmg/beat-saber-community-wiki/pull/3