Help with Xbox One Controller and Bluetooth

I recently got an Xbox One Controller and it works great. However, I can’t get it to work over Bluetooth. I have a Dell XPS 13 9343 model, and the Bluetooth appears to work, but I can’t get the controller to actually pair with my machine.

On a fresh install of Ubuntu 19.10, I’ve tried to disable ertm a couple different ways since I read online this was the solution. I’ve set the value manually in /sys/module/bluetooth/parameters/disable_ertm
and restarted the service, and I’ve tried adding options bluetooth disable_ertm=1
to /etc/modprobe.d/bluetooth.conf
. I’ve done both of these and rebooted my machine. Nothing seems to work.

It shows up in bluetoothctl as a device, but it won’t connect or pair to the device.

Is the Bluetooth device on my machine faulty? Trying to connect manually via bluetoothctl just gives me generic errors of “can’t connect” or “failure pairing.”

The controller I have is this one. It pairs fine with my Android phone, but I can’t get it to work on my machine

Asked By: jefftime

||

First, make sure you have the Bluetooth-enabled version of the Xbox One controller. Inside the battery compartment there should be a label with a model number on it, the Bluetooth-enabled model says “MODEL 1708”.

It sounds like you’ve already tried setting disable_ertm. That’s always worked for me, here’s what I do:

> sudo su  
# echo 1 > /sys/module/bluetooth/parameters/disable_ertm  
# exit
> cat /sys/module/bluetooth/parameters/disable_ertm
Y

Restarting the Bluetooth service (sudo systemctl restart bluetooth) isn’t necessary but shouldn’t hurt. Rebooting will reset disable_ertm to N.

To connect, turn on the gamepad by pressing and holding the Xbox button until it lights up. Then, press and hold the Sync button (it’s near the micro USB port) until the Xbox button starts blinking rapidly.

In Ubuntu, open the Bluetooth Devices list and click Search to start searching for devices. The device should show up as “Xbox Wireless Controller”. Right-click and select “Human Interface Device Service (HID)” under “Connect”. This sometimes fails, you’ll see the signal strength info pop up and then disappear. If this happens, try selecting “Human Interface Device Service (HID)” again, it generally succeeds on the second try.

If the Xbox button stops blinking before you can connect, remove the device from Bluetooth Devices and try again.

Answered By: nondebug

I ended up solving this issue by buying a USB Bluetooth dongle. I don’t know if my onboard Bluetooth is faulty, or if the Broadcom device is that incompatible with Linux, but getting a USB Bluetooth dongle solved my problem

Answered By: jefftime

I followed these steps and 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.

Answered By: cwx