So Valve has been generous enough to provide a Linux build of Steam for many years now, but the most recent numbers from Valve show only about 0.74% of Steam users are using Linux. For comparison, about 3% are using Macs. So these numbers aren’t great, especially if you were thinking that Valve and it’s massive bucket of money would be able to provide consistent support for its Linux products. Nope, the only thing less popular on Steam would be 32-bit versions of Windows 8, so if you run into any issues you’re usually on your own.
A lack of support might seem strange if you remember how the Steam Machine runs SteamOS, which is just a Linux distribution from Valve, and is still very a much alive and expensive option to run. While the SteamOS itself seems to use a more recent kernel, the regular Linux client seems to have been ignored a bit. That with the hit and miss quality of the ports can mean you run into a few problems. Here’s a few I had and what I’ve done to fix them.
Problem #1 Steam doesn’t launch
No doubt this is kind of a large problem, as even on Linux Steam is one of the most popular distribution platforms for games. In my case I’m using LinuxMint 18.1 which like its Ubuntu parent no longer uses the AMD video driver, this change to the community driver seems to be the problem for many people experiencing this issue. This was easily fixed for me by deleting a file, basically forcing Steam to use my driver. Here’s the command and path.
If that doesn’t fix your issue or if it keeps reoccurring I recommend you check out this post.
Problem #2 My controller acts all kinds of crazy
Sporadically for five or so years I’ve been using my PS3’s SixAxis controllers to game on Linux. I used to have to use QtSixA to pair my controller with my laptop so I could play Psychonauts. QtSixA still works, but no longer has a build for the more recent distros. So you’ll need to build from source. If you need help try this. More recently I’ve had more success just plugging the controller in and letting the default drivers handle it all.
That is, until I tried to play Bastion. Bastion seems to expect it’s input to be from a Xbox360 controller, or at least something identical. While the xpad driver does a pretty good job of doing what should be enough for a PS3 controller to work like this, I’ve found certain game devs either lack the experience, time, or concern to implement a good way of handling gamepad input for anything that can’t run DirectX. And the Steam controller setting seem to do nothing helpful outside the client itself. Not saying I’d do any different, I mean 0.74%. But anyway, the best way to handle this is with xboxdrv. This nifty driver will allow you to make most controllers be seen as XBox360 controllers. However this can take a little work. I switched to a Logitech F310 controller, because it’s the cheapest one at Best Buy, and had success by just doing the following:
sudo xboxdrv –type xbox360 –mimic-xpad –detach-kernel-driver
I put this in a .sh on my desktop and just launch it when I’m going to need it. You can also suppress the constant feed in the terminal with –silent but I kind of like having it spewing out information. You may need to make your own custom mapping to make this work. For that I’ll send you here. Which does more thorough job than I ever could.
Hopefully this helps. Good luck and good gaming.