How do I get an Xbox One controller to work with 16.04 (not Steam)

Solution 1:

OP's solution to their own problem:

First, I read that with kernels later than 4.1* (I checked and I have 4.4*), xboxdrv no longer works with, specifically, the xbox one controller.

It seems xpad got love from Steam so it's not as outdated as it used to be. I don't know what it loses to xboxdev but I just want the controller to work.

My controller is the newer firmware version called Covert Forces Edition. Because of its new firmware it needs a patch which I found here.

sudo apt-get install git
sudo apt-get install dkms
sudo git clone https://github.com/paroj/xpad.git /usr/src/xpad-0.4
sudo dkms install -m xpad -v 0.4

All seemed fine. But I hit lsmod and xpad still wasn't loaded. To load it I entered:

sudo modprobe xpad

This gave me a new error that it could not insert because the required key is not available. This is solved by turning off secure boot in your BIOS.

I put sudo modprobe xpad in again and there were no confirmations but no complaints. I looked under lsmod and lo and behold, at the top of the list was xpad! I'm guessing it's the mod version because now under the joystick menu in settings it comes up as a 5th controller and the damn thing responds. The "X" is lit up and buttons work.

Solution 2:

  1. install sysfsutils - sudo apt install sysfsutils
  2. open the configuration file with gksu gedit /etc/sysfs.conf
  3. Add this line in sysfs.conf –> module/bluetooth/parameters/disable_ertm = 1
  4. Save and restart.