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.