Bug 1713896

Summary: Dualshock 4 via Bluetooth Connects and Immediately Disconnects
Product: [Fedora] Fedora Reporter: Antoine Saroufim <antoine.saroufim>
Component: bluezAssignee: Don Zickus <dzickus>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 30CC: alex.go4more, anothersname, bnocera, dwmw2, dylanjamesfenn, dzickus, jmoskovc, spacewar
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: bluez-5.50-8.fc30 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-18 18:13:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Antoine Saroufim 2019-05-25 14:40:51 UTC
Description of problem:

When connecting an already-paired & trusted Dualshock 4 controller, it connects and then immediately disconnects. If the controller is in pair mode, it doesn't connect unless it's manually paired via bluetootctl.  


Version-Release number of selected component (if applicable):
Bluez 5.50 

How reproducible:
All the time

Steps to Reproduce:
1. Connect controller via cable, let GNOME identify and pair with it
2. Disconnect cable
3. Pair via bluetooth

Actual results:

It connects and then immediately disconnects

Expected results:
 
For it to stay connected

Additional info:

On a fresh install that isn't updated yet, everything works fine. After the system is updated, the issue starts occurring. I've experienced this issue on Fedora 30 Workstation and Fedora 30 Silverblue. 

Btmon log while attempting to connect twice https://paste.fedoraproject.org/paste/oewOIn0oTtI7S10JEl3hOg

Bluetoothctl output: 

Agent registered
[CHG] Device DC:0C:2D:DF:78:78 Connected: yes
[CHG] Device DC:0C:2D:DF:78:78 Connected: no
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:1A:7D:DA:71:13 Discovering: yes
[NEW] Device B8:78:2E:16:00:2F B8-78-2E-16-00-2F
[CHG] Device DC:0C:2D:DF:78:78 Connected: yes
[CHG] Device DC:0C:2D:DF:78:78 Connected: no
[bluetooth]# connect DC:0C:2D:DF:78:78
Attempting to connect to DC:0C:2D:DF:78:78
Failed to connect: org.bluez.Error.Failed
[CHG] Device DC:0C:2D:DF:78:78 Connected: yes
[CHG] Device DC:0C:2D:DF:78:78 Connected: no

Comment 1 Dylan Fenn 2019-05-27 10:01:59 UTC
I can confirm similar behaviour with the DS3. I have both a DS4v2 and three DS3 controllers. They work fine over USB. But continuously disconnect and reconnet when attempting to use bluetooth. The DS3 only does this once. The DS3's continuously attempt. Here is a pastebin dump of bluetoothctl:

https://pastebin.com/YZKgqD6j

And here's a dump of 'journalctl -r -u bluetooth' with '/usr/lib/systemd/system/bluetooth.service' line 'ExecStart=/usr/libexec/bluetooth/bluetoothd -d':

https://pastebin.com/w3pVnR4h

Comment 2 Vik 2019-05-27 12:00:23 UTC
Can confirm the exact same issues with the gen 1 DS4.

On any attempt to reconnect: 

[bluetooth]# connect 40:1B:5F:39:74:9D
Attempting to connect to 40:1B:5F:39:74:9D
Failed to connect: org.bluez.Error.Failed
[CHG] Device 5A:7E:E8:F2:CF:55 ManufacturerData Key: 0x004c
[CHG] Device 5A:7E:E8:F2:CF:55 ManufacturerData Value:
  0c 0e 00 66 3f 98 7c e2 2a 36 ec 1b 2f b4 ea f7  ...f?.|.*6../...
  10 05 0b 1c 45 e6 01                             ....E..

Comment 3 Bastien Nocera 2019-06-04 12:22:01 UTC
gnome-bluetooth doesn't run in the background, so it is very very unlikely to ever be responsible for this sort of problems.

In this case, it's likely this problems with Bluetooth 2.0 (and earlier) devices:
https://lore.kernel.org/linux-bluetooth/20190522070540.48895-1-marcel@holtmann.org/T/

Comment 4 Bastien Nocera 2019-06-05 10:46:55 UTC
Could you please test with kernel 5.1.5 (or newer)?

Comment 5 Antoine Saroufim 2019-06-05 12:23:26 UTC
Issue still valid on kernel 5.1.5-300.fc30.x86_64 as provided by Fedora Silverblue

Comment 6 Bastien Nocera 2019-06-07 08:14:06 UTC
(In reply to Antoine Saroufim from comment #0)
> Description of problem:
> 
> When connecting an already-paired & trusted Dualshock 4 controller, it
> connects and then immediately disconnects. If the controller is in pair
> mode, it doesn't connect unless it's manually paired via bluetootctl.  

Note that "manually pairing" the device, using the PS+Share buttons will not
work as you expect. Only use the cable pairing if you want it to stick.

Please test with this bluez update, which should fix problems with PlayStation 4 controllers pairing:
https://bodhi.fedoraproject.org/updates/FEDORA-2019-5101717387

Comment 7 Dylan Fenn 2019-06-09 00:45:20 UTC
(In reply to Bastien Nocera from comment #6)
> (In reply to Antoine Saroufim from comment #0)
> > Description of problem:
> > 
> > When connecting an already-paired & trusted Dualshock 4 controller, it
> > connects and then immediately disconnects. If the controller is in pair
> > mode, it doesn't connect unless it's manually paired via bluetootctl.  
> 
> Note that "manually pairing" the device, using the PS+Share buttons will not
> work as you expect. Only use the cable pairing if you want it to stick.
> 
> Please test with this bluez update, which should fix problems with
> PlayStation 4 controllers pairing:
> https://bodhi.fedoraproject.org/updates/FEDORA-2019-5101717387

Hey Bastion, just tested your bluez update and it works great! Didn't even have to open bluetoothctl to pair.

Paired to my DS4 successfully just by putting it into pairing mode (PS+Share). NO WIRE NEEDED. So awesome. Also only did it through gnomes settings/bluetooth front end.

How long until this release makes it into fedora 30 stable repos? And how to I undo the change 'sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2019-5101717387' once this release is mainstream?

Thanks

Comment 8 Bastien Nocera 2019-06-11 09:57:43 UTC
(In reply to Dylan Fenn from comment #7)
> (In reply to Bastien Nocera from comment #6)
> > (In reply to Antoine Saroufim from comment #0)
> > > Description of problem:
> > > 
> > > When connecting an already-paired & trusted Dualshock 4 controller, it
> > > connects and then immediately disconnects. If the controller is in pair
> > > mode, it doesn't connect unless it's manually paired via bluetootctl.  
> > 
> > Note that "manually pairing" the device, using the PS+Share buttons will not
> > work as you expect. Only use the cable pairing if you want it to stick.
> > 
> > Please test with this bluez update, which should fix problems with
> > PlayStation 4 controllers pairing:
> > https://bodhi.fedoraproject.org/updates/FEDORA-2019-5101717387
> 
> Hey Bastion, just tested your bluez update and it works great! Didn't even
> have to open bluetoothctl to pair.
> 
> Paired to my DS4 successfully just by putting it into pairing mode
> (PS+Share). NO WIRE NEEDED. So awesome. Also only did it through gnomes
> settings/bluetooth front end.

Using PS+Share is not recommended. But as long as it works...

> How long until this release makes it into fedora 30 stable repos? And how to
> I undo the change 'sudo dnf upgrade --enablerepo=updates-testing
> --advisory=FEDORA-2019-5101717387' once this release is mainstream?

It's the same package, so there's no need to do anything. It'll appear faster
if you give it the thumbs up on the updates page :)

Comment 9 Fedora Update System 2019-06-11 09:58:13 UTC
FEDORA-2019-5101717387 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-5101717387

Comment 10 Anthony Name 2019-06-11 12:47:40 UTC
Bastion

Would your fix affect this behaviour?

https://bugzilla.redhat.com/show_bug.cgi?id=1671123

Comment 11 Bastien Nocera 2019-06-11 13:56:09 UTC
(In reply to Anthony Name from comment #10)
> Bastion
> 
> Would your fix affect this behaviour?
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1671123

No, not for this type of device. Make sure you use at least kernel 5.1.5, and be on the lookout for "updates-testing" kernel updates in coming days too.

Comment 12 Fedora Update System 2019-06-18 18:13:36 UTC
bluez-5.50-8.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.