Support us on Patreon to keep GamingOnLinux alive. This ensures we have no timed articles and no paywalls. Just good, fresh content! Alternatively, you can donate through PayPal, Liberapay or Buy us a Coffee. You can also buy games using our partner links for GOG and Humble Store.

My experiences of Valve's VR on Linux

By - | Views: 33,695

As the proud and excited owner of a shiny new Valve Index kit to go with my almost-new all-AMD rig, I thought I’d outline the journey to getting it all working, exclusively on Linux.

Now bear in mind that I’m not amazingly Linux-savvy. I’ve been using it since the early 2000’s, sure, and full time, exclusively, since 2013, but I’m not very interested in learning the guts of this stuff. I’m extremely technical as a network nerd, but my O/S is just a tool to let me run cool things. I want to be a “normal” consumer of that O/S and if things don’t work out of the box, I take a dim view of it and I don’t have a lot of patience for terminal hacks or “compiling my own kernel”.

Why is that important? Because  when it comes to the Valve Index on Linux, absolutely nothing works out of the box... and yet it’s still (mostly) a success story. Here are some of the hoops I had to jump through to get this stuff working (again, mostly).

My system:

  • Distribution: Mint 19.3
  • Desktop Environment: Cinnamon
  • RAM: 32GB
  • CPU Model: AMD 3900X
  • GPU Model: AMD Radeon RX 5700 XT

You can also see my specs in my profile or by clicking “View PC info” under my avatar in any of my comments, but I’ve listed them here so that this article notes them statically as those during my experience with the Index.

Edit: I'm also using Kernel 5.7.8 from Mainline here, which is important given the hardware I'm using. Also, the OIBAF PPA puts me on Mesa 20.2 at the time of writing.

Unboxing

It’s so pretty! The presentation and unboxing experience is very Apple-like or Google Pixel-like in that it tries to get your buy in just from opening the box! There’s a real wow-factor at play here. It’s a HUGE box, bigger than it needs to be probably, but the presentation is great.

(The HMD visor is so shiny and new that you can see me taking the photo in the third shot!)

There’s not many pictures from here on out, because trying to capture a VR experience with a screenshot (or even a video) is like trying to taste food with your nose pinched.

So, let’s get started!

First Attempt

The “Getting Started” card is pretty basic actually. In summary:

  • Basestations are plugged into a power outlet, front and back of room - check
  • Headset (HMD) is plugged into Displayport and USB3, and powered - check
  • Controllers are on - check
  • Enabled the Steam beta - check
  • SteamVR is downloaded - check

Let’s do this! In Steam, I change my “games” filter to “games and tools”, then run SteamVR. Nothing happens. But wait! I see a light from the HMD. Putting it on, I can see a basic, default, VR environment - a grid on the floor, with mountains in the distance, stars overhead and a moon hanging directly above me. Head tracking is fine, and everything is nice and clear, but I can’t actually do anything and I certainly haven’t defined my “play area”, so I’m reluctant to actually launch a VR game at this point, for fear of walking into a table, wall, or through the french windows while they’re closed!

Taking the HMD off, I can see that I have a bunch of errors on my Steam client about how “SteamVR failed to initialize”. Okay then.

The errors must have taken a few seconds to pop up, or they did so as a result of my putting the HMD on. Hmmm.

So… to Google!

Second Attempt

Well, it looks like SteamVR also has a beta branch, which you activate like any game. Go to SteamVR, right click and choose Properties, then hit the Betas tab:

Which to choose though? Well, I’m on Linux, so the answer is pretty obvious! The “temp” worries me, but it’s the only Linux entry, so I choose it anyway. It downloads, I run SteamVR again, it asks for my sudo password (surprising!), and off we go.

Much better!

Now, I get a pop up on the desktop screen asking me to step through a set up process, including defining my play area. Basically, you stand in the centre of your “space”, point your controller at the screen and pull the trigger, then lay both controllers on the ground, then finally you move the controller around the edges of your space, holding down the trigger, to form a virtual box. This box must be at least 1.5m wide and about 2m in length, otherwise the program complains that it’s too small. I had to rejig my room a bit to accommodate that! I think there’s supposed to be a way around that minimum size, but this version of SteamVR literally won’t you press the “next” button unless you hit the minimum, so that’s what I did.

Having done so, I could put on the HMD and I was back at the default landscape. But now there’s an option in the bottom bar called “SteamVR Home”. I click on it with my emulated laser-pointer controller and finally got my first taste of how absolutely incredible VR can be when it’s “done right”.

SteamVR Home is like BigPicture mode, but for VR. It emulates a room which has a balcony space outside overlooking a distant mountain range. Butterflies flutter by, and you can customise the room and the balcony/garden area in a variety of ways. You also have an “avatar” and can invite friends to your room for chat, or as a party set up for games.

I customised my avatar, drew weird shapes with my painting tool, threw the Portal companion cube around a bit, watching it bounce around. It wasn’t until later that I discovered that Steam Home seems to have a problem saving environments, which is a shame. Frankly, until that’s fixed, there’s literally no point in using Home at all. Later on, I’ll end up disabling it completely, which is pretty disappointing.

But I’m here for now, so I tried to launch a game. Any game. But no dice. I could “view details” of games, but there was no launch button. So what’s going on?

Taking off the headset, I see more errors on the desktop. Sheesh. This looks serious.

So… to Google!

Third Attempt

Looked like I already had a lot of these installed, but as the error notes, it’s the 32-bit versions I need. So after a bit of searching on the web and via Synaptic, I get this to go away with a series of apt commands. In summary:

sudo apt install libva-x11-2:i386 libva2:i386 libgdk-pixbuf2.0-0:i386 libxtst6:i386 libgtk2.0-0:i386 libbz2-1.0:i386 libvdpau1:i386

And for good measure, I also do:

sudo apt install libvulkan1:i386 mesa-vulkan-drivers:i386 vulkan-utils:i386

After all that, I’m not getting any errors anymore, which is great. And I have a “Launch game” option in SteamVR Home now! Which does… nothing. At all.

So… (surprise!) to Google!

Fourth Attempt

I’m going to quickly summarise about an hour of frustrating googling/launching/killing/launching/googling here, but ultimately, I resorted to the tried and tested “have you tried switching it off and back on again” method of nerd troubleshooting.

And it almost, kind of, worked.

I start Moss from inside SteamVR Home, and my launch button now fades the Home environment away, and I’m now in the default environment, with a floating banner that says “Up Next: Moss”.

However, after a disappointing couple of minutes, it’s clearly not doing anything.

So… (you know the drill by now) to Google!

Fifth Attempt

Okay, so it looks like the main issue is that a lot of the games I’m trying to launch are Windows only and perhaps they have to be launched directly from Steam? It looks like SteamVR on Linux doesn’t know how to handle Proton titles from “within” the SteamVR environment.

So, I fire up SteamVR, leaving it in the default environment (not SteamVR Home), then I hit the “play” button on Moss on my desktop.

It works! Almost. No sound! But the game launched and it’s my first “real” VR gaming experience. I don’t spend long with Moss though, as it’s clear that it’s a narrative-driven experience and I don’t want to ruin it by playing without sound.

So why are my Index speakers not working?

So… to Google!

Sixth Attempt

Well, this was over an hour of trying various things - mainly running

tail -f /var/log/kern.log

... and then unplugging the USB3 connector and plugging it back in, and watching the output in the terminal. It’s definitely recognising all the devices - the HMD, the twin cameras on the HMD, the microphone, the speakers… but for some reason that's not translating to an actual device in my sound control panel.

Long (really, really long, another hour or two maybe) story short - it looks like my multi-monitor set up was interfering here. I noticed that the speakers’ description is “HDMI / DP 5”, which is the same port number my second screen uses.  When I unplugged my second monitor, the Index speakers appeared in my sound’s control panel. I have sound!

Perhaps this issue is related to https://github.com/ValveSoftware/SteamVR-for-Linux/issues/348

Who knows? Who cares! They work!

Kind of… they’re actually crackling and hissing on certain channels. I notice this in Moss when certain music plays, on the sound effect when you push/pull objects, and most annoying of all, when the narrator speaks.

So… to Google!

Seventh Attempt

Okay, quicker fix for this one. A weird fix, but it works. All you have to do after starting SteamVR, is start the PulseAudio Volume Control (I had to install it first, of course, it’s rarely included by default, at least on Ubuntu derivatives). And, that’s it. That’s all you do. You go from hissing/crackling sound to crystal clear sound on your Index… by opening that app. I have no words.

Later on, I’ll discover that by changing my primary, now singular monitor from HDMI to DisplayPort, I seem to get pretty consistent, crystal-clear sound without resorting to opening the Pulse Audio volume control. But for now, I’m just delighted it works.

It’s time to go big. It’s time to try Half Life Alyx.

Or not. Starting the game fails almost immediately with a vriniterror_init_interfacenotfound error. You know what that means? Yep.

So… to Google!

Eighth Attempt

At this point, I’ve probably had the VR set up for around 10 hours, most of which is actually with the HMD sat on my desk as I troubleshoot what the bloody hell is wrong with it. So I’m properly gutted that one of the biggest reasons I bought a VR kit, Half-Life Alyx, doesn’t even start.

After googling for about 20 minutes, all I’ve really found is a Steam Forums post noting that they had to update SteamVR before Alyx would launch. My SteamVR is already up to date though, albeit I’m still on the Linux_Temp build.

I’m desperate though. I can force an update if I change beta tabs! I switch back to SteamVR_beta, wait for the 500Mb download to complete, restart my PC to give it a clean slate, enter my sudo password again (yeah, that’s still weird) and finally start Alyx.

It works.

Indeed, not only does Alyx now work, but my SteamVR “settings” app works too. In fact, so does the desktop reprojection option! So does “reset seating/standing position”! In fact, everything seems to be working now (except the volume slider for some reason)!

Arrival: VR

I’ve now spent around 20 hours in VR, which is a crucial tipping point for me - it took me around 10 hours of soul-destroying googling to get this far. I can’t stress enough the weird dichotomy of running VR on Linux. On one hand, I paid £900 for the full kit, only to spend over a full working day wrestling with awful, incomprehensible issues for which I had little to no context.

On the other hand, now that it’s largely up and running, it’s easily the best money I’ve spent in a long time, because when you use a high quality HMD on a powerful PC and run “built-for-VR” games and software… it’s mind blowing. Truly, literally, game changing.

It’s not perfect, by a long way. The whole “getting started” experience is, as you can see, appalling. Especially on Linux. And even then there’s stuff that just doesn’t work, either well, or at all:

  • The cameras don’t work, as they’re tied to a D3D11 interface which fails on start up. Ironically, you can run guvcview and play about with them there - they’re just standard v4l2 cameras after all! Hopefully they get this fixed soon, but they'd have to rewrite that D3D11 dependency, so I don't expect that to happen quickly.
  • The volume slider on the “Dashboard” does nothing. You have to modify the volume setting on your desktop.
  • You can’t turn off the basestations yet, so make sure you can reach a plug/switch for them.
  • Steam Home doesn’t save any settings/changes you make within it, rendering it largely useless.
  • You can’t launch games from Steam Home, because it doesn’t seem to understand Proton.
  • Two of “The Lab” experiences crash out - “Robot Repair” and “Secret Lab”. They just fail, no idea why. All the others work though. This is also common on Windows, but none of the Windows fixes seem to work on Linux.
  • I can’t use my second monitor any more. This is probably my biggest gripe right now.
  • The Index head phones crackle until you launch pavucontrol (although this appears to be fixed by not using any HDMI on my system at all).
  • Finally, when you run SteamVR, the sound device appears in your sound panel, but it doesn’t switch to that output. Pulseaudio does has an option to auto-switch to “newly detected devices”, but something about the way that SteamVR creates the output channel seems to bypass this. After starting SteamVR, you have to switch the sound output manually.

But in the grand scheme of things, I’m finally really pleased with the overall result. In fact, there’s only one thing that still annoys me (other than losing my multi-monitor set up), and it’s the noise the basestations make when they’re on. It’s a high pitch, and apparently not everyone can hear it, but I appear to be one of the “lucky” few who not only hears it, but can easily hear it from about 3m away. For me it’s not subtle and only starting a game would distract you from the noise they make. So, basestations definitely off while not in use, sadly, which is a bit of a pain given the lack of remote power options on Linux. I have to literally unplug them.

Do I have any regrets? None at all now that I’m “here”. But good god, Valve have a long, long road before this stuff is mainstream. I’m thinking years, given their rate of progress so far. The out of box experience is just simply diabolically poor.

Is this the future of gaming? Yes and no. Yes, once you’ve experienced VR first hand, you’ll realise how fundamentally important and immersive it is. But no, not at this price, and certainly not with this level of hassle from a technical perspective. Also, arguably headsets need to get lighter, and potentially lose the wires too, which is still the biggest restriction/annoyance you’ll face in VR.

The jury is still out on whether VR could be good in an FPS environment too. Apparently Killing Floor 2 has VR support? I’ll maybe give that a shot. Or Dying Light, perhaps? I haven’t tried anything in VR that features traditional movement yet - it’s all jump-based movement, which isn’t as bad as I thought it would be. But I suspect that traditional movement might cause motion sickness, so we’ll see.

But other games work amazingly well in VR. Moss, for example, is just spellbinding. And Elite Dangerous feels like a completely different game in VR.

I just can’t stress it enough, the difference VR makes. You know when you start an FPS game it’s stuck on 1024x768, 70 FOV and with motion blur? Then you figure out how to get 1920x1080, 100 FOV with no motion blur and you’ve gone from a game you literally can’t play to a really beautiful, engaging experience?

Imagine that, but multiplied by a hundred. The idea of playing “flat” Elite Dangerous is now utterly laughable. Like, why would you restrict yourself so needlessly?? I’m being facetious to hammer home the point, because it’s hard to put into words otherwise. It’s THAT spectacular a jump.

To sum up, if you:

  1. Have the money
  2. Have the PC
  3. Have the technical skill
  4. Have the patience

...then VR is a fantastic experience when it’s all working. But you have to have all four, I think, before it’s a sure fire recommendation.
 

Appendix
Here's the games I've tried that work near-enough perfectly:

  • Half-life: Alyx
  • Beat Saber
  • Moss
  • Smashbox Arena
  • The Lab (although noting that two experiments crash)
  • Elite Dangerous
  • Space Pirate Trainer
  • Superhot VR
  • Gorn
  • Waltz of the Wizard
  • Sheaf - Together EP

And a couple of games that don't work:

  • Project Cars 2 doesn't recognise the HMD at all.
  • Overload doesn't recognise the HMD at all.
Article taken from GamingOnLinux.com.
55 Likes, Who?
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG, Humble Store and Paradox Interactive. See more here.
About the author -
author picture
I'm a Scottish Ubuntu user since 2006 and an Ubuntu-only gamer since 2013. I used to contribute to GOL's Funding Crowd articles, but now contribute the odd article directly, most recently the Play It Now series.

I also dabble a bit in Python, I do Internet Security for a living and finally, I'm a big fan of Neil Degrasse Tyson. And not just because he has a cool first name.
See more from me
110 comments
Page: «11/11
  Go to:

slaapliedje 17 Aug
View PC info
  • Supporter Plus
Wonder how hard this would be to get ported to Linux?
https://github.com/BlueSkyDefender/Depth3D
beko 19 Aug
Quoting: Cyba.CowboyJust look at how many people are buying <insert VR solution> for use at home, and in the commercial market (e.g. family entertainment centers), VR is exploding.
Yeah… calm down.

This is GamingOnLinux.
This is a niche already.
And VR on Linux is a niche in a niche.

I didn't say I don't like it. I was just surprised.
slaapliedje 19 Aug
View PC info
  • Supporter Plus
Quoting: beko
Quoting: Cyba.CowboyJust look at how many people are buying <insert VR solution> for use at home, and in the commercial market (e.g. family entertainment centers), VR is exploding.
Yeah… calm down.

This is GamingOnLinux.
This is a niche already.
And VR on Linux is a niche in a niche.

I didn't say I don't like it. I was just surprised.
niche-ception
dude 21 Sep
  • Supporter
It was an ootb experience on Manjaro with Nvidia. Except the bluetooth connection to the base stations for power management, but there is an Android app, Lighthouse PM, that can be used as a workaround.
Whole thing works better than expected. Beefy GPU recommended though.
slaapliedje 23 Sep
View PC info
  • Supporter Plus
Quoting: dudeIt was an ootb experience on Manjaro with Nvidia. Except the bluetooth connection to the base stations for power management, but there is an Android app, Lighthouse PM, that can be used as a workaround.
Whole thing works better than expected. Beefy GPU recommended though.
Ha, yeah if I end up upgrading to a 3080, it will be for VR. I legit gor a 2080 so I could use the cool VR link... then they decided to not sell it...I still wonder if they couldn't get it to work.
Cybolic 27 Sep
Not sure how much new information I'll be adding here, but I received my Valve Index 2 days ago, so here's my experience so far.

Day 1
The first day was almost useless. The setup process was painless using SteamVR beta (following the suggestions here), but SteamVR Home would behave weirdly, wouldn't let me launch anything other that Beat Saber and had some stuttering while looking around. Beat Saber itself was absolutely flawless though, so I wasn't too dismayed. SteamVR itself would also often end up in a state where I had to physically reconnect the headset for it to work again. Not the best start.

Day 2
I figured I'd try the stable branch of SteamVR and also disable SteamVR Home since I didn't really see the point when I had to launch from the desktop Steam client anyway. Well, well, well, that was the missing piece! Suddenly I could access a Steam Overlay by pressing the Home button on the controller, actually change settings and launch games from inside VR! So this is how it's supposed to work! Now I could try out AirCar, The Lab (what a lovely robot doggo) and even watch a bit of Predator 3D in Whirligig!

Day 3
So I'm now at a place where things are mostly working. I'm still figuring out which games require which version of Proton (4.9 seems to be a safer bet than latest version 5) and SteamVR gets into a funky state when a game fails to launch (still haven't figured out to get Fushimi Inari VR from itch.io to launch in SteamVR), so it still feels a bit like a public beta, but it generally works well enough :)

I'm also happy to say that performance has been fine (at 90hz) on my almost decade old Intel i7-3930K and two generations old NVIDIA 1080 Ti (ASUS ROG Strix version); there's a bit of reprojection jutter every once in a while, but not enough to make me nauseous or enough to even notice in Beat Saber.

I'd still like the Proton fiddling to be easier and I wish it was easier to see if I need to use the Valve Index controllers or a normal controller in a game without having to go to the store page, but in general things are working better than I thought they would and the fact that Proton can run so much in VR is frankly amazing to me.
jens 4 Oct
View PC info
  • Supporter
New Valve Index user here since a bit more than 48 hours.

The process for getting everything up and running had been somewhat bumpy for me here on Fedora 32 with a GTX 1080, but it was still better and faster than expected. Actually I stood in the SteamVR lobby after ~ 2,5 hours. I didn't had to use any beta version, I just run stable Steam and stable SteamVR.

My lessons learned:
- I had to switch from the latest Nvidia Vulkan Developer driver (455.22.04) to the latest stable (450.66). The Vulkan Developer driver gave me a hard system lookup when the headset was supposed to start. I haven't tried an earlier Vulkan Developer driver.

- The "Restart headset" function in the SteamVR menu is the life saver when the headset wont come to life. Initially I started to reboot my system or tried to reconnect the headset to the GPU (which sometimes worked, sometimes not) when the headset failed to start (red lights on the headset). It took me a few hours to discover that menu entry. Meantime I came close to think that I had already bricked my headset, it would have been useful when a short troubleshooting guide had been included.

- The system menu when being inside SteamVR can be activated by pressing the power button on the controller. The tutorial didn't mentioned this one, thus initially I didn't discover that menu and had to switch quite often between headset on and off.

- Getting the sound to the headset was also initially somewhat exhausting. I guess pulseaudio doesn't switches that easily from one display port sound output to another (I'm also using audio on my main screen via hdmi audio). In the end I spend some time into pactl and came up with `pacmd set-card-profile 0 output:hdmi-stereo-extra2` to do the re-routing with just one command.
I do have to restart pulseaudio after coming back from suspend and have to enjoy a few minutes of crackling when sound is played, though it has always been like this on my machine.The volume control in the SteamVR menu isn't working here unfortunately.

I've mostly played in the lobby with different environments. I tried two games, Elite Dangerous and DCS. Both are a bit tricky to get started in Proton, but once they started normally, they also started flawlessly in VR. Pretty impressive! I do see that I'm now missing a lot of GPU power :). When I switch to "low VR" setting in ED, it is really playable. With higher settings I'm experiencing a lot of jitter (I hope this is the correct term). I guess this is the missing async reprojection feature? I haven't played much with the SteamVR settings, expect setting the headset frequency to 90 Hz.

I tried some video players in Steam, none of them worked. Using the player that had been mentioned earlier here (https://git.dec05eba.com/vr-video-player/) I could enjoy the IMAX countdown from https://kodi.wiki/view/Samples#3D_Test_Clips in full 3D which is also pretty cool.

Finally, thanks a lot @Patola for recommending the full kit. Initially I wasn't sure if I wanted the controllers since I wanted to go mostly for flight/racing simulations, but now I'm really glad that I have them! The experience in the SteamVR lobby alone are worth it.

Overall I'm really glad with the kit and how it works on Linux. Now it's time to keep an eye on the GPU market!

PS: I can also hear the noise of the base station. Having a reachable power switch for them is also a must for me.


Last edited by jens on 5 October 2020 at 8:38 am UTC
barotto 20 Oct
Quote10 hours of soul-destroying googling to get [VR working]

I can report that it took me minutes to get the Index work on my system.

So as of 20 October 2020 the situation has vastly improved.
Well, at least on my system: Ryzen 3900X, Radeon 5700XT, Ubuntu 20.04, Linux 5.8.15, Mesa 20.2.1, SteamVR stable.

But it's still not perfect:

  • to get the HMD to work (Direct Mode) I had to first select "Devices -> Restart headset" command on SteamVR.

  • to get audio to work I had to use pavucontrol and manually move the volume slider.

  • sometimes I have to reboot the system because Steam "gets confused" (?) and can't properly launch games from SteamVR or simply acts weirdly or even locks up (this happened once, while trying to use the desktop inside VR).

  • For the first couple of seconds after a VR program has been started I experience weird flashes, as if the tracking needs to adjust or something (doesn't happen on Windows).


Apart from that, I can play Alyx for hours on end and the overall experience in game has been nothing short of fantastic.
I haven't been so enthusiastic about videogames for maaany years. So many years that I was ready to give up on the subject completely, until VR that is.


Last edited by barotto on 20 October 2020 at 9:29 am UTC
scaine 20 Oct
View PC info
  • Contributing Editor
  • Supporter Plus
I re-installed Mint last week after a torrid two weeks on Manjaro. Manjaro's VR experience was okay, but other elements forced me back to Mint.

On Mint 20, although I entered the various commands for dependencies that I list in this article, I noticed that a lot of them are now already there. Presumably this tallies with a lot of people earlier telling me that their experience on 20.04 was pretty seamless. Now that Mint 20 is based from that, I'm finding it much more streamlined.

As for the VR experience, I know what you mean about the flashing. I think it's the equivalent of shader compiling as I only notice it when the game starts up, as you describe. It lasts under a second, but it's noticeable. Can't compare it to Windows as I haven't used that O/S for over 7 years now.

If you haven't already, check out my Forum post on how to remotely turn on/off your Lighthouses. It could use a few more people trying it out, I think. Some folk have struggled, while other are working perfectly. It worked for me perfectly on both Manjaro and Mint, so I think the issues people face are actually older VR hardware. Just a hunch though, still too few people replying on that thread to know for sure.

And I liked the earlier suggestion that we create a WIKI page for this stuff. I'll get round to that eventually, as my knowledge of this stuff grows.

VR is a incredible experience though, for sure. Games like Elite:Dangerous and Overload (in Proton) are incredible. I love it.


Last edited by scaine on 20 October 2020 at 12:34 pm UTC
barotto 20 Oct
Quoting: scaineI think it's the equivalent of shader compiling as I only notice it when the game starts up, as you describe.

It's like the geometry moves erratically for the duration of just 1 frame, sometimes only on one eye, and it happens multiple times for 1 or 2 seconds.
Fortunately, when it stops it then works flawlessly.

Quoting: scaineIf you haven't already, check out my Forum post on how to remotely turn on/off your Lighthouses.

I'll do! It's probably a better solution than the unofficial Android app.
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Twitter Sign in with Google
Social logins require cookies to stay logged in.