Bug 499217

Summary: Unable to pair Bluetooth controller from pair dialogue (bluedevil-wizard)
Product: [Plasma] plasmashell Reporter: sirlan tomma <sirl>
Component: Bluetooth widgetAssignee: Plasma Bugs List <plasma-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: normal CC: firebringer11, kde, kdedev, nate, nicolas.fella, olib141, skumpusch, spaha92
Priority: NOR    
Version First Reported In: 6.2.5   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description sirlan tomma 2025-01-28 00:31:58 UTC
SUMMARY

When trying to use the Bluetooth pairing dialogue (bluedevil-wizard) to pair a DualSense controller, it fails to pair the device, leaving it in a state that is unable to connect. Same issue doesn't happen when 'manually' using `bluetoothctl` 

STEPS TO REPRODUCE
1. From either the widget or the System settings enable Bluetooth
2. Select to pair a new device
3. Turn on the controller in pairing mode (in my case PS button + three lines button)
4. Select the controller from the list and click to pair

OBSERVED RESULT

The controller will turn off mid-pairing, and the pairing window will show "The setup of DualSense Wireless Controller has failed". The controller will appear in the list of paired devices, but will be unable to be connected to (turning on the controller it will still be in a "awaiting for connection" mode, and trying to press the connect button in Plasma will result in a silent failure)

EXPECTED RESULT

Properly pair and connect the controller to the system and be able to automatically reconnect to it whenever turned off and on again and Bluetooth is enabled on the computer

SOFTWARE/OS VERSIONS

Operating System: CachyOS Linux
KDE Plasma Version: 6.2.5
KDE Frameworks Version: 6.10.0
Qt Version: 6.8.1
Kernel Version: 6.12.10-2-cachyos (64-bit)
Graphics Platform: Wayland
Processors: 12 × Intel® Core™ i7-10750H CPU @ 2.60GHz
Memory: 15.5 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics

ADDITIONAL INFORMATION

The device is only unable to pair when using the dialogue, using `bluetoothctl` in the terminal the pairing works fine and the device is able to automatically connect to the computer whenever turned off and on again

The steps to connect trough `bluetoothctl` being:
```
 $ bluetoothctl
[bluetooth]# Agent registered
[bluetooth]# scan on
[bluetooth]# SetDiscoveryFilter success
[bluetooth]# Discovery started
...
[bluetooth]# trust 58:10:31:65:E4:FC
[bluetooth]# [CHG] Device 58:10:31:65:E4:FC Trusted: yes
[bluetooth]# Changing 58:10:31:65:E4:FC trust succeeded
[bluetooth]# [CHG] Device 58:10:31:65:E4:FC Class: 0x00000508 (1288)
[bluetooth]# [CHG] Device 58:10:31:65:E4:FC Icon: input-gaming
[bluetooth]# pair 58:10:31:65:E4:FC
Attempting to pair with 58:10:31:65:E4:FC
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC Connected: yes
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC Bonded: yes
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC WakeAllowed: yes
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC ServicesResolved: yes
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC Paired: yes
[DualSense Wireless Controller]# Pairing successful
[DualSense Wireless Controller]#
```

(with the device being unpaired) When running `bluedevil-wizard` from the terminal and going trough the pairing attempt, I get the following lines:
```
$ bluedevil-wizard
kf.bluezqt: PendingCall Error: "No discovery started"
kf.bluezqt: PendingCall Error: "br-connection-create-socket"
```

Also, if I keep `bluetoothctl` opened in a terminal, but don't touch it (using only as a monitor for events) and use bluedevil-wizard for attempting to pair, the following appear:
```
[bluetooth]# Agent registered
[bluetooth]# [CHG] Controller 8C:C6:81:96:17:9C Discovering: yes
[bluetooth]# [NEW] Device 58:10:31:65:E4:FC DualSense Wireless Controller
[bluetooth]# [CHG] Device 58:10:31:65:E4:FC RSSI is nil
[bluetooth]# [CHG] Controller 8C:C6:81:96:17:9C Discovering: no
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC Connected: yes
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC Bonded: yes
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC WakeAllowed: yes
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC ServicesResolved: yes
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC Paired: yes
[DualSense Wireless Controller]# [CHG] Device 58:10:31:65:E4:FC ServicesResolved: no
[bluetooth]# [CHG] Device 58:10:31:65:E4:FC Connected: no
[bluetooth]# [CHG] Device 58:10:31:65:E4:FC Trusted: yes
```

When looking at logs from `journalctl` after attempting to pair from bluedevil-wizard, the following appears:
```
jan 27 21:13:41 woods systemd[971]: Started Add Bluetooth Device - Add Bluetooth Device.
...
jan 27 21:13:53 woods bluetoothd[727]: No matching connection for device
...
jan 27 21:13:58 woods bluetoothd[727]: profiles/input/device.c:control_connect_cb() connect to 58:10:31:65:E4:FC: Host is down (112)
jan 27 21:13:58 woods bluedevil-wizard[607123]: kf.bluezqt: PendingCall Error: "br-connection-create-socket"
```

While when pairing successfully with `bluetoothctl` the following logs appear:
```
jan 27 21:16:41 woods kernel: playstation 0005:054C:0CE6.000F: unknown main item tag 0x0
jan 27 21:16:41 woods kernel: playstation 0005:054C:0CE6.000F: hidraw1: BLUETOOTH HID v1.00 Gamepad [DualSense Wireless Controller] on 8c:c6:81:96:17:9c
jan 27 21:16:41 woods kernel: input: DualSense Wireless Controller as /devices/virtual/misc/uhid/0005:054C:0CE6.000F/input/input62
jan 27 21:16:41 woods kernel: input: DualSense Wireless Controller Motion Sensors as /devices/virtual/misc/uhid/0005:054C:0CE6.000F/input/input63
jan 27 21:16:41 woods kernel: input: DualSense Wireless Controller Touchpad as /devices/virtual/misc/uhid/0005:054C:0CE6.000F/input/input64
jan 27 21:16:41 woods kernel: playstation 0005:054C:0CE6.000F: Registered DualSense controller hw_version=0x00000513 fw_version=0x01070008
```

This issue might be related to https://bugs.kde.org/show_bug.cgi?id=484847 that was closed but am unsure for the lack of more logs and info there

The computer I'm using is a laptop (Legion 5i) with a built in wireless card with Bluetooth functionality
Comment 1 E.T. Anderson 2025-04-16 15:33:18 UTC
I am seeing the same behavior with a MX Ergo mouse. I was able to pair it with bluetoothctl but not with bluedevil-wizard.
I saw the same "No matching connection for device" message in the system log.

I am using OpenSUSE Tumbleweed, kernel 6.14.1-1-default. My bluedevil version is 6.3.4-1.1.
Comment 2 Sandro Kumpusch 2025-05-05 16:04:39 UTC
SUMMARY
When trying to use the Bluetooth pairing dialog (bluedevil-wizard) to pair a DualSense controller on Fedora 42 KDE, the pairing process fails, leaving the controller in an unusable state. Additionally, even when pairing manually using bluetoothctl, the controller does not reconnect automatically. Each time I want to use it, I have to manually remove and re-pair it via bluetoothctl, as reconnecting through the GUI does not work at all.

STEPS TO REPRODUCE

    From either the widget or the System Settings, enable Bluetooth

    Select to pair a new device

    Put the controller in pairing mode (PS button + three lines button)

    Select the controller from the list and click to pair

OBSERVED RESULT
The controller turns off mid-pairing, and the pairing window shows: "The setup of DualSense Wireless Controller has failed."
The controller appears in the list of paired devices but cannot be connected to. Turning on the controller leaves it in a "waiting for connection" state, and pressing the connect button in Plasma silently fails.
Even when paired successfully using bluetoothctl, the controller does not reconnect automatically. Instead, I must remove and re-pair it every time I want to use it. Reconnecting through the GUI does not work at all.

EXPECTED RESULT
The controller should pair and connect properly to the system and automatically reconnect when powered on again, assuming Bluetooth is enabled.
Comment 3 Rijad 2025-05-05 18:26:37 UTC
Same issue, immidiatelly disocnnects on fedora 42 kde, and i isntalled @gnome package, and it works there, even keeps working on kde if  I logout from gnoem and login into kde... its just issue when connecting, it immidiatelly disconnects.
RCA:
LOG:
> ACL Data RX: Handle 71 flags 0x02 dlen 12
L2CAP: Connection Request (0x02) ident 4 len 4
PSM: 17 (0x0011)
Source CID: 65
< ACL Data TX: Handle 71 flags 0x00 dlen 16
L2CAP: Connection Response (0x03) ident 4 len 8
Destination CID: 0
Source CID: 65
Result: Connection refused - PSM not supported (0x0002)
Status: No further information available (0x0000)
This log snippet shows:

The DualSense controller requesting PSM 17 (HID control channel)
The system refusing the connection with "PSM not supported"
The controller disconnecting because it can't establish the HID connection

"Controller tries to connect on PSM 17 (HID) but gets 'PSM not supported' error"
"Connection disconnects with 'Remote User Terminated Connection'"


How I solved it temporarary:

This fixes the issue where a DualSense controller connects briefly and then immediately disconnects while maintaining Bluetooth autostart functionality.
The issue is specific to KDE and related to missing HID (Human Interface Device) support.

Create the bluetooth service override:

sudo mkdir -p /etc/systemd/system/bluetooth.service.d/
sudo nano /etc/systemd/system/bluetooth.service.d/override.conf
Add:
[Service]
ExecStartPost=/bin/sh -c "sleep 3; rfkill unblock bluetooth; /usr/bin/bluetoothctl power on"
ExecStart=
ExecStart=/usr/libexec/bluetooth/bluetoothd --experimental -p input

Create the input configuration:

sudo nano /etc/bluetooth/input.conf
Add:
[General]
UserspaceHID = true
ClassicBondedOnly = false
IdleTimeout = 30

Create the udev rules:

sudo nano /etc/udev/rules.d/99-dualsense.rules
Add:
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", MODE="0666"
SUBSYSTEM=="input", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"

Set up kernel modules:

sudo modprobe hid-generic
sudo modprobe hid-sony
sudo modprobe uhid
echo "hid-generic" | sudo tee /etc/modules-load.d/hid.conf
echo "hid-sony" | sudo tee -a /etc/modules-load.d/hid.conf
echo "uhid" | sudo tee -a /etc/modules-load.d/hid.conf

Apply changes:

sudo udevadm control --reload-rules
sudo systemctl daemon-reload
sudo systemctl restart bluetooth

The solution combines:

Service Override: Ensures Bluetooth service starts with HID support and auto-enables Bluetooth
Input Configuration: Configures proper HID handling
Udev Rules: Sets correct permissions for DualSense hardware
Kernel Modules: Loads necessary drivers for DualSense support

It keeps controller always connected though, even at idle...
Comment 4 Sandro Kumpusch 2025-05-06 19:00:02 UTC
(In reply to Rijad from comment #3)
> Same issue, immidiatelly disocnnects on fedora 42 kde, and i isntalled
> @gnome package, and it works there, even keeps working on kde if  I logout
> from gnoem and login into kde... its just issue when connecting, it
> immidiatelly disconnects.
> RCA:
> LOG:
> > ACL Data RX: Handle 71 flags 0x02 dlen 12
> L2CAP: Connection Request (0x02) ident 4 len 4
> PSM: 17 (0x0011)
> Source CID: 65
> < ACL Data TX: Handle 71 flags 0x00 dlen 16
> L2CAP: Connection Response (0x03) ident 4 len 8
> Destination CID: 0
> Source CID: 65
> Result: Connection refused - PSM not supported (0x0002)
> Status: No further information available (0x0000)
> This log snippet shows:
> 
> The DualSense controller requesting PSM 17 (HID control channel)
> The system refusing the connection with "PSM not supported"
> The controller disconnecting because it can't establish the HID connection
> 
> "Controller tries to connect on PSM 17 (HID) but gets 'PSM not supported'
> error"
> "Connection disconnects with 'Remote User Terminated Connection'"
> 
> 
> How I solved it temporarary:
> 
> This fixes the issue where a DualSense controller connects briefly and then
> immediately disconnects while maintaining Bluetooth autostart functionality.
> The issue is specific to KDE and related to missing HID (Human Interface
> Device) support.
> 
> Create the bluetooth service override:
> 
> sudo mkdir -p /etc/systemd/system/bluetooth.service.d/
> sudo nano /etc/systemd/system/bluetooth.service.d/override.conf
> Add:
> [Service]
> ExecStartPost=/bin/sh -c "sleep 3; rfkill unblock bluetooth;
> /usr/bin/bluetoothctl power on"
> ExecStart=
> ExecStart=/usr/libexec/bluetooth/bluetoothd --experimental -p input
> 
> Create the input configuration:
> 
> sudo nano /etc/bluetooth/input.conf
> Add:
> [General]
> UserspaceHID = true
> ClassicBondedOnly = false
> IdleTimeout = 30
> 
> Create the udev rules:
> 
> sudo nano /etc/udev/rules.d/99-dualsense.rules
> Add:
> KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6",
> MODE="0666"
> SUBSYSTEM=="usb", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6",
> MODE="0666"
> SUBSYSTEM=="input", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6",
> MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
> 
> Set up kernel modules:
> 
> sudo modprobe hid-generic
> sudo modprobe hid-sony
> sudo modprobe uhid
> echo "hid-generic" | sudo tee /etc/modules-load.d/hid.conf
> echo "hid-sony" | sudo tee -a /etc/modules-load.d/hid.conf
> echo "uhid" | sudo tee -a /etc/modules-load.d/hid.conf
> 
> Apply changes:
> 
> sudo udevadm control --reload-rules
> sudo systemctl daemon-reload
> sudo systemctl restart bluetooth
> 
> The solution combines:
> 
> Service Override: Ensures Bluetooth service starts with HID support and
> auto-enables Bluetooth
> Input Configuration: Configures proper HID handling
> Udev Rules: Sets correct permissions for DualSense hardware
> Kernel Modules: Loads necessary drivers for DualSense support
> 
> It keeps controller always connected though, even at idle...

Hi i tried your solution but sadly no luck. But i have to say im fairly new to linux :D is there anything else you did besides what you listed in your temp fix? Do i have to remove those config files later on when there is a proper fix for this? 
Thanks in advace
Comment 5 Oliver Beard 2025-11-05 20:09:18 UTC

*** This bug has been marked as a duplicate of bug 495615 ***