Badass Bonerfart Aug 25, 2013 @ 6:04pm
Sixaxis/Dualshock 3 in Steam -- this time we're WIRELESS, clean and transparent, with automatic pairing!
So as it turns out, sixad itself creates /dev/input/eventX devices that are compatible with Steam; they just weren't being picked up because of the same permissions problem that prevented xboxdrv from working correctly. The same udev rule fixes both.

Keep in mind you need a Bluetooth radio in your PC to talk to the controller. A simple USB dongle will work nicely.

* Here's the secret. Create /etc/udev/rules.d/90-joystick-perms.rules with this line:

ENV{ID_INPUT_JOYSTICK}=="1", MODE="0660", GROUP="joystick"

* Create the joystick group, add yourself to it, and reload udev:

sudo groupadd -r joystick
sudo usermod -a -G joystick <your_linux_username_here>
sudo udevadm control --reload-rules

* Log out and back in for the group change to take effect.
* Install sixad. (This SHOULD automatically add it to services and start it, but I'm not 100% sure...)
* PS3 controllers use a propreitary pairing method that requires a USB connection. Let's take care of that. Connect controller via USB. Open a terminal and run "sixpair". Done.
* Unplug the controller, and press the PS button. You'll know it worked when one red LED comes on and your PS3 is still off.
* Start Steam and map your controller!

Optional: For automatic pairing, put this in /etc/udev/rules.d/99-sixaxis-autopair.rules:

ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", RUN+="/usr/sbin/sixpair"

Optional2: You probably want to disable the accelerometers. You can do this by modifying /var/lib/sixad/profiles/default. See the manual here: http://qtsixa.sourceforge.net/manual.pdf

Just one caveat: If you turn the controller on while it's plugged in it won't work. Appears to be a limitation in sixad. You can turn it on, THEN plug it in to charge, and it will work then.

Also, PS3s are smart enough to reset already-active controllers when pairing. sixad... isn't. Make sure you turn controllers off before switching systems.

So, this gets everything going in Steam... individual games may have their own difficulties. I'll post more posts when I find solutions to problems I find.
Showing 1-10 of 10 comments
< >
intok Aug 26, 2013 @ 1:12am 
Do these controllers need to be paired to a PS3 to be activated in the first place or can you just grab them and set them up with anything you like right off the bat?

I've always preferred the Playstation controllers over all others for just about every game type, even though I don't want to give Sony any more of my money I could make an exception for their controller since my experience with 3rd party game controllers was always terrible no matter what console they where for. The only exception was the Gran Tourismo 3 steering wheel for the PS2 from Logitech which the steering wheel itself was made pretty solid, though the connections for the peddles where crappy as they where some form of miniature phone line jack style controller that ended up breaking so I ended up soldering the connection in place and the peddles and their base both looked and felt like they where made to a far lower standard then the steering wheel.

That wheel worked great on Mac and Windows as well though, with the built in playstation controls in the wheel I could use it to play emulators quite well, though it wasn't the ideal position to use the buttons and D-pad.
kDP Aug 27, 2013 @ 6:52am 
do you think this can work for dualshock 2 , i have a adapter :-)
Badass Bonerfart Aug 28, 2013 @ 4:43pm 
@intok No, you don't need a PS3 at all; just the controller, a compatible USB cable (which IIRC it comes with), and a bluetooth radio that works with sixad (nearly all do).

@kDP Yeah, no dice. You could probably cook something up with xboxdrv --evdev to get DS2s working with your USB translator, like you would with normal HID controllers.
intok Aug 28, 2013 @ 4:56pm 
Originally posted by roothorick <FVPVan>:
@intok No, you don't need a PS3 at all; just the controller, a compatible USB cable (which IIRC it comes with), and a bluetooth radio that works with sixad (nearly all do).

Any recomendations on a good one as far as range, speed and reliability? Looking around it seems Bluetooth is something that rarely if ever gets reviewed unlike wireless routers.
Badass Bonerfart Sep 27, 2013 @ 11:03am 
@intok I use a Cirago BTA3210, but really, any simple just-a-bluetooth-dongle that is sold alone (as opposed to bundled with a keyboard/mouse) has a 95+% chance of working flawlessly.
Last edited by Badass Bonerfart; Sep 27, 2013 @ 11:12am
Jamie F Sep 27, 2013 @ 11:48am 
Going to have to try this as i have a machine that has built in BT 4.0
kickass Feb 11 @ 1:39pm 
Confirming that this doesn't work effectively. The lack of xbox 360 controller emulation mean that most games don't recognise the joystick and the main interface doesn't even appear to recognise the buttons from /dev/input/js0 (although jstest-gtk shows it working). This works fine via USB (Ubuntu 13.10).
Unfortunately it looks like both sixad and xboxdrv are defunct projects with no recent activity :(
Badass Bonerfart Feb 11 @ 5:57pm 
Originally posted by kickass:
Confirming that this doesn't work effectively. The lack of xbox 360 controller emulation mean that most games don't recognise the joystick and the main interface doesn't even appear to recognise the buttons from /dev/input/js0 (although jstest-gtk shows it working). This works fine via USB (Ubuntu 13.10).
Unfortunately it looks like both sixad and xboxdrv are defunct projects with no recent activity :(

The problem isn't with sixad/xboxdrv, it's a bigger picture, infrastructure issue. Linux doesn't have a modern joystick API. the /dev/js* system is hacky and ancient, and /dev/input/event* isn't really meant to be used directly by applications. So you wind up in this situation where ALL games are either hardcoded to how one specific controller or driver behaves, or otherwise have relatively primitive joystick support because that's literally all you can do. We need something more standardized to gain wide acceptance.
Andrwmorph Jun 15 @ 2:15pm 
I have a solution that seems to be working pretty well with xboxdrv and sixad.

Replace /dev/input/event5 with the device that the Sixaxis creates. I found all the correct button and axis mappings and manually set them all.

sudo xboxdrv --evdev /dev/input/event5 -d --type xbox360-wireless --silent --evdev-keymap KEY_#300=y,KEY_#302=a,KEY_#301=b,BTN_DEAD=x,BTN_TOP=start,BTN_TRIGGER=back,BTN_A=guide,BTN_BASE6=rb,BTN_BASE5=lb,BTN_TOP2=du,BTN_BASE2=dl,BTN_BASE=dd,BTN_PINKIE=dr,BTN_THUMB=tl,BTN_THUMB2=tr --evdev-absmap ABS_#13=rt,ABS_#12=lt,ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RX=y2 --mimic-xpad-wireless --axismap -Y1=Y1,-Y2=Y2 --calibration RT=0:127:255,LT=0:127:255
Last edited by Andrwmorph; Jun 20 @ 8:29pm
kickass Jun 22 @ 3:14pm 
TL;DR - buy a new bt 4 low energy USB dongle (CSR chipset works) and set sixad to run on startup.

By the way, I managed to get it working by moving to a newer BT adapter, if you're bluetooth 2.1 EDR adapter isn't working then try getting a CSR bluetooth 4.0 adapter, that worked for me. Annoying in that the sixaxis would pair ok with the 2.1 adapter but then utterly failed to work.
If you install sixad you can pair on the command line with the adapter attached via USB, then just get the sixad service to run on startup and it pretty much "just works". Only problem is that the adapter is gonna appear as an XBOX adapter which means the on-screen prompts of "Press A" are pretty confusing.
There's also the games that have decided to hard-code their joystick mapping and have broken input for anyone that doesn't own the same joystick the dev team do, but that's getting rarer and rarer thanks to SteamOS.
Last edited by kickass; Jun 22 @ 3:15pm
Showing 1-10 of 10 comments
< >
Per page: 15 30 50