https://bugs.kde.org/show_bug.cgi?id=499217

Rijad <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #3 from Rijad <[email protected]> ---
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...

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to