Unable to get my Xbox controller working

Hello everyone,
I’m new to Bazzite and generaly immuable linux distro.

I’m actually trying Bazzite gaming distro, but I am unable to get my gamepad controller working…

It’s a Nacon controller, so not an official Xbox.
In my previous distro (EndeavourOS) I needed to install “Xone DKMS” to get it to work.

On bazzite I see this is preinstalled with the distro, but my controller is not working.

If I enter “lsusb” command, I get this :

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 058f:6364 Alcor Micro Corp. AU6477 Card Reader Controller
Bus 001 Device 004: ID 046d:c332 Logitech, Inc. G502 Proteus Spectrum Optical Mouse
Bus 001 Device 005: ID 1532:010d Razer USA, Ltd BlackWidow Ultimate 2012
Bus 001 Device 008: ID 3285:0608 Nacon Revolution X
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

So apparently, the controller is well detected on the list… But not detected by Steam or KDE in "controllers’ …

Is anybody can help me to resolve this ?

Many thanks =)

Small precision :
I’ve found over and there some people said to use one of this command :

ujust use-stock-gamepads

or

ujust configure-gamepads

But, none of them is recognized by the system… :-/

Still cannot use my gamepad by now.

Thanks,
best regards.

Hi there, im having the same problem here, were u able to fix it?

Hi there, were YOU able to fix it? :smiley:

My system dont see my Xbox controller, but i found a way to fix it, the problem mainly was in Privacy setting at: /etc/bluetooth/main.conf and BLE mode on my usb bluetooth adapter, as Xbox controllers use BLE mode to pair. Here is what helps, i find that fix with chatgpt and ask him to make a tuto:

Xbox Controller not detected over Bluetooth on Bazzite/Linux — fix for CSR/Barrot 0a12:0001

I ran into an issue on Bazzite KDE where an Xbox Wireless Controller worked perfectly over USB and also connected normally over Bluetooth in Windows, but Bazzite/Linux could not detect it at all.

Bluetooth adapter:



ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle

However, bluetoothctl show reported manufacturer 2279, which means this is actually one of the Barrot-based adapters that identifies itself using the old CSR USB ID.

The following errors appeared during scanning:



org.bluez.Error.InProgress

and with btmgmt:



Unable to start discovery. status 0x0d (Invalid Parameters)

What fixed it

In my case, the problem was related to Bluetooth Privacy.

Open:



sudo nano /etc/bluetooth/main.conf

Under the [General] section, set:



Privacy = off

Important: if you previously had:



Privacy = network

replace it with off.

Save the file and restart Bluetooth:



sudo systemctl restart bluetooth

Then reset the Bluetooth controller settings with:



sudo btmgmt power off
sudo btmgmt privacy off
sudo btmgmt le on
sudo btmgmt bredr on
sudo btmgmt power on

Check the current state:



sudo btmgmt info

Under current settings, the regular privacy flag should no longer be present.

ll-privacy may still remain — that is fine.

Test Xbox Controller discovery

Put the Xbox Controller into pairing mode so the Xbox button is flashing rapidly.

Run an LE-only scan:



sudo btmgmt find -l

After applying the fix, my controller immediately appeared:



name Xbox Wireless Controller
type LE Public

So BLE discovery was finally working correctly.

Pair the controller

Stop the low-level scan:



sudo btmgmt stop-find

Then start:



bluetoothctl

Inside bluetoothctl, run:



power on
agent on
default-agent
scan le

Once the Xbox Controller appears, note its MAC address, for example:



68:6C:E6:59:1C:43

Then run:



pair 68:6C:E6:59:1C:43
trust 68:6C:E6:59:1C:43
connect 68:6C:E6:59:1C:43

You can verify the connection with:



info 68:6C:E6:59:1C:43

A successful result should look similar to:



Paired: yes
Bonded: yes
Trusted: yes
Connected: yes

After that, the Xbox Controller should work normally over Bluetooth in Bazzite/Steam.

Short version

If Bazzite/Linux detects your adapter as:



0a12:0001 Cambridge Silicon Radio

but cannot find your Xbox Controller, try:



# /etc/bluetooth/main.conf

[General]
Privacy = off

Then run:



sudo systemctl restart bluetooth

sudo btmgmt power off
sudo btmgmt privacy off
sudo btmgmt le on
sudo btmgmt bredr on
sudo btmgmt power on

sudo btmgmt find -l

In my case, disabling Bluetooth Privacy immediately fixed BLE scanning, and the Xbox Wireless Controller became visible and connected successfully.

One more note: run btmgmt commands with sudo. Without it, you may get:



status 0x14 (Permission Denied)

Also, if the controller is detected with a very weak RSSI such as -90 to -100, keep it close to the Bluetooth dongle during the first pairing attempt.