A couple of days ago, I mentioned that I had accidentally deleted every game installed on my Linux PC. Which, you know… well, I won’t kvetch too much because technically I DID tell the upgrade to go ahead and remove stuff, and I didn’t really have that many things installed. It also gave me an excuse to look through Steam and see which Linux games I actually own.
It turned out that there’s a Linux port of Bioshock Infinite, and I still need to play the Rapture DLCs for that, so I figured I’d go ahead and install it. 40 GB download, by the way. Thankfully I’m nowhere near my bandwidth cap for the month.
Anyway, I installed and ran it, and it was working just fine until I tried to enable my Xbox 360 controller. There was a “controller” option in the options menu, but the game steadfastly refused to recognized that I had one plugged in.
Off I went to google, where I found an explanation of why:
It appears that /dev/input/js0 is owned by root:input and has 664 access so you have to add your user to the group “input”.
The degree to which this is “useful” is… let’s call it relative. It gave me the basic problem – my user account didn’t have rights to use the gamepad – but with no steps on how to solve, and I don’t usually need to add users to groups so I didn’t really know how to make this happen.
You also don’t seem to be able to add users to groups through the Ubuntu control panel, so it was off to the commmand line.
For the record, if you want to add a user to group “input”, this is how you do it in Ubuntu:
sudo usermod -a -G input <user name>
And after this, I can happily report that gamepad support appears to be working fine in Bioshock Infinite. I don’t think we’re getting any closer to the year of the Linux desktop, though.