5

I'm trying to connect an Xbox One controller to my Ubuntu machine. What happens when I try to pair it over Bluetooth this:

  1. I open the Bluetooth devices panel in Ubuntu
  2. I hold the button on top of the controller until the light starts flashing rapidly
  3. I pair with the controller in Ubuntu

The problem is, even though it shows as connected in Ubuntu, the light on the controller doesn't stop flashing and it's not recognized in HTML5 games.

Can anyone advise?

Edit: I'm on Ubuntu 20.04.3 LTS

saricDen
  • 213
  • 1
  • 4
  • 11

4 Answers4

0
  1. Install XBox driver: sudo apt install xboxdrv

  2. Enable driver's services: sudo systemctl enable xboxdrv.service && sudo systemctl start xboxdrv.service

ChanganAuto
  • 1
  • 8
  • 15
  • 23
0

I was having a similar problem and found a resource that suggested disabling ERTM, which will require super-user permissions.

After following these steps, I was able to get the controller to remain connected.

I didn't test it deeply with any of the games on my system though. (One game, Delver, didn't work too well, but I'm not sure if that was the game or the input.)

This command:

echo 1 > /sys/module/bluetooth/parameters/disable_ertm

I found I couldn't run it it using sudo by itself, so I had to run this to allow me to run it with elevated privileges.

sudo -s

This is where I found the initial info re: ERTM https://wiki.debian.org/Gamepad

And another resource that gave me the sudo advice! https://www.addictivetips.com/ubuntu-linux-tips/xbox-one-controllers-over-bluetooth-linux/

(I'm still new enough at the terminal that this is how I learned about this sudo functionality.)

0

I followed these steps of @ChanganAuto and Help with Xbox One Controller and Bluetooth. For some reason, it still wasn't working for me.

I'm dual booting windows. So I tested on windows installation to see if the controller could connect on windows os (also can be done by testing on virtual box vm). Xbox controller connected in that environment over bluetooth. And after doing that, when I tried it again on linux, then it worked for me. Not sure why, but maybe it's unique to those who are dual booting.

cwx
  • 1
0

After no solution from the internet, I worked days after days tinkering with bluetooth profiles and finally solved it. I am here to share my solution: First of all, if you're using first party controller, use an external USB bluetooth which should connect without any tinkering. Then move to the solution bellow (this will not only work for xbox, but also third party generic bluetooth gamepads, chinese bluetooth gamepads, EasySMX gamepads with Nintendo Switch Controller mode and some bluetooth keyboards) Edit /etc/bluetooth/input.conf (if not available, create one) and edit the options to match the following config:

# Configuration file for the input service

This section contains options which are not specific to any

particular interface

[General]

Set idle timeout (in minutes) before the connection will

be disconnect (defaults to 0 for no timeout)

#IdleTimeout=30

Enable HID protocol handling in userspace input profile

Defaults to false (HIDP handled in HIDP kernel module)

UserspaceHID=true

Limit HID connections to bonded devices

The HID Profile does not specify that devices must be bonded, however some

platforms may want to make sure that input connections only come from bonded

device connections. Several older mice have been known for not supporting

pairing/encryption.

Defaults to true for security.

ClassicBondedOnly=false

LE upgrade security

Enables upgrades of security automatically if required.

Defaults to true to maximize device compatibility.

LEAutoSecurity=false

Now, your device will connect even if the pairing key is not exchanged or the bluetooth adapter fails to exchange the keys.