Bug 964031

Summary: A2DP profile cannot be selected
Product: [Fedora] Fedora Reporter: Mace Moneta <moneta.mace>
Component: bluezAssignee: Lennart Poettering <lpoetter>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 19CC: aron, bkelly, bnocera, brendan.jones.it, dimitris.on.linux, dwmw2, jmontleo, jprvita, lkundrak, lpoetter, marcel, m.oliver, moneta.mace, naehring, rdieter, vrutkovs
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: bluez-4.101-8.fc19 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-06-26 17:23:50 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 Mace Moneta 2013-05-17 05:56:53 UTC
Description of problem:
On Fedora 19, Bluetooth headset (iKross IKBT18) can only use HSP/HFP (telephony). Attempting to use the A2DP profile disables audio on the Bluetooth headset.

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

phonon-4.6.0-7.fc19
pulseaudio-3.0-8.fc19
pulseaudio-libs-3.0-8.fc19
pulseaudio-libs-glib2-3.0-8.fc19
pulseaudio-module-bluetooth-3.0-8.fc19
pulseaudio-module-x11-3.0-8.fc19
pulseaudio-utils-3.0-8.fc19

How reproducible:
Always

Steps to Reproduce:
1. Right-click on volume control in KDE
2. Select Audio Setup
3. Click on Audio Hardware Setup
4. Sound card: Select Bluetooth headset
5. Profile: Select A2DP
  
Actual results:
Profile switches to Off.  No audio output.

Expected results:
A2DP profile selected

Additional info:

I removed the .pulse and .config/pulse directories on the login and rebooted prior to testing.

I downgraded to the F18 packages:

phonon-4.6.0-5.fc18.x86_64.rpm
pulseaudio-2.1-7.fc18.x86_64.rpm
pulseaudio-libs-2.1-7.fc18.x86_64.rpm
pulseaudio-libs-glib2-2.1-7.fc18.x86_64.rpm
pulseaudio-module-bluetooth-2.1-7.fc18.x86_64.rpm
pulseaudio-module-x11-2.1-7.fc18.x86_64.rpm
pulseaudio-utils-2.1-7.fc18.x86_64.rpm

A2DP works as expected with these packages.

Comment 1 Aron Griffis 2013-05-23 19:11:36 UTC
I've been researching a similar sequence which I think is the same underlying issue. The short version seems to be:
* PA needs the bluez socket interface enabled, see https://bugzilla.redhat.com/show_bug.cgi?id=874015
* Recent versions of bluez have known issues in the deprecated socket interface, esp. with dbus

I'm sorry that description isn't more precise, and might even be slightly inaccurate. I'm summarizing from other discussions around the web. In any case, the point is that Enable=Socket in /etc/bluetooth/audio.conf is required by PA but no longer works properly in bluez. Furthermore the bluez authors say the socket interface is deprecated and don't plan to fix it, so it seems like PA needs to change.

I see the following in /var/log/messages...
With Enable=Socket: [pulseaudio] module-bluetooth-device.c: Profile has no transport
With Disable=Socket: bluetoothd[12222]: Unable to select SEP

Here are some related links:
* https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1181106
* http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-November/015464.html

Comment 2 m.oliver 2013-05-24 08:10:13 UTC
I am seeing the same on F19 prerelease.  The symptom is slightly different: Each time I try to select A2DP in Audio Settings (using Cinnamon, not tested on Gnome 3), the selection in "Choose a device for sound output" will switch to Built-in Audio and another HSP/HFP device will show up in the selection list, which simply grows longer and longer.

Comment 3 Mace Moneta 2013-05-25 01:31:15 UTC
I changed the component to bluez.  I updated the packages listed in the initial report to Fedora 19 current.  I then changed /etc/bluetooth/audio.conf, replacing 'Enable=Socket' with 'Disable=Socket'. Rebooted, and I can now select the a2dp profile.  I also needed to prefer the bluetooth device as the audio output.  Rebooted and everything works.

As a result, the problem is that the audio.conf shipped by the bluez package is not correct for the current software levels.  I verified that bluez-4.101-6.fc19.x86_64.rpm contains an /etc/bluetooth/audio.conf which incorrectly specifies 'Enable=Socket'.

Comment 4 m.oliver 2013-05-25 12:48:02 UTC
Fix in #3 confirmed working.

Sound settings still creates several new entries in profiles selection when changing the profile mode.  Probably a separate bug with sound settings, only cosmetic, though.

Comment 5 Aron Griffis 2013-05-28 14:29:36 UTC
I retested with F19 current packages. Unfortunately, as I reported in comment 1, it doesn't work for me to set Disable=socket in /etc/bluetooth/audio.conf, because then I can no longer connect to the bluetooth device. It seems like  Disable=Socket is the right fix for this bug, but it also causes a regression for some devices.

With Enable=Socket I can pair and connect, but can't select the device (at all, nevermind A2DP) in sound settings:

May 28 10:17:35 gargan bluetoothd[669]: bluetoothd[669]: Discovery session 0x7fc957ce99c0 with :1.87 activated
May 28 10:17:35 gargan bluetoothd[669]: Discovery session 0x7fc957ce99c0 with :1.87 activated
May 28 10:17:39 gargan bluetoothd[669]: bluetoothd[669]: Unknown command complete for opcode 37
May 28 10:17:39 gargan bluetoothd[669]: Unknown command complete for opcode 37
May 28 10:17:41 gargan bluetoothd[669]: bluetoothd[669]: Stopping discovery
May 28 10:17:41 gargan bluetoothd[669]: Stopping discovery
May 28 10:17:45 gargan dbus-daemon[691]: dbus[691]: [system] Rejected send message, 3 matched rules; type="method_return", sender=":1.87" (uid=10208 pid=2634 comm="bluetooth-wizard ") interface="(unset)" member="(unset)" error name="(unset)" requested_reply="0" destination=":1.0" (uid=0 pid=669 comm="/usr/sbin/bluetoothd -n ")
May 28 10:17:45 gargan dbus[691]: [system] Rejected send message, 3 matched rules; type="method_return", sender=":1.87" (uid=10208 pid=2634 comm="bluetooth-wizard ") interface="(unset)" member="(unset)" error name="(unset)" requested_reply="0" destination=":1.0" (uid=0 pid=669 comm="/usr/sbin/bluetoothd -n ")
May 28 10:17:46 gargan kernel: [  145.125339] input: 00:10:61:00:18:71 as /devices/virtual/input/input17
May 28 10:17:47 gargan bluetoothd[669]: bluetoothd[669]: Endpoint registered: sender=:1.88 path=/MediaEndpoint/HFPAG
May 28 10:17:47 gargan bluetoothd[669]: bluetoothd[669]: Endpoint registered: sender=:1.88 path=/MediaEndpoint/HFPHS
May 28 10:17:47 gargan bluetoothd[669]: bluetoothd[669]: Endpoint registered: sender=:1.88 path=/MediaEndpoint/A2DPSource
May 28 10:17:47 gargan bluetoothd[669]: bluetoothd[669]: Endpoint registered: sender=:1.88 path=/MediaEndpoint/A2DPSink
May 28 10:17:47 gargan bluetoothd[669]: Endpoint registered: sender=:1.88 path=/MediaEndpoint/HFPAG
May 28 10:17:47 gargan bluetoothd[669]: Endpoint registered: sender=:1.88 path=/MediaEndpoint/HFPHS
May 28 10:17:47 gargan bluetoothd[669]: Endpoint registered: sender=:1.88 path=/MediaEndpoint/A2DPSource
May 28 10:17:47 gargan bluetoothd[669]: Endpoint registered: sender=:1.88 path=/MediaEndpoint/A2DPSink
May 28 10:17:47 gargan pulseaudio[1865]: [pulseaudio] module-bluetooth-device.c: Profile has no transport

With Disable=Socket I can pair but not connect at all:

May 28 10:22:08 gargan bluetoothd[678]: bluetoothd[678]: Discovery session 0x7fb1dc95d7b0 with :1.88 activated
May 28 10:22:08 gargan bluetoothd[678]: Discovery session 0x7fb1dc95d7b0 with :1.88 activated
May 28 10:22:12 gargan bluetoothd[678]: bluetoothd[678]: Unknown command complete for opcode 37
May 28 10:22:12 gargan bluetoothd[678]: Unknown command complete for opcode 37
May 28 10:22:14 gargan bluetoothd[678]: bluetoothd[678]: Stopping discovery
May 28 10:22:14 gargan bluetoothd[678]: Stopping discovery
May 28 10:22:18 gargan dbus-daemon[701]: dbus[701]: [system] Rejected send message, 3 matched rules; type="method_return", sender=":1.88" (uid=10208 pid=2553 comm="bluetooth-wizard ") interface="(unset)" member="(unset)" error name="(unset)" requested_reply="0" destination=":1.0" (uid=0 pid=678 comm="/usr/sbin/bluetoothd -n ")
May 28 10:22:18 gargan dbus[701]: [system] Rejected send message, 3 matched rules; type="method_return", sender=":1.88" (uid=10208 pid=2553 comm="bluetooth-wizard ") interface="(unset)" member="(unset)" error name="(unset)" requested_reply="0" destination=":1.0" (uid=0 pid=678 comm="/usr/sbin/bluetoothd -n ")
May 28 10:22:20 gargan bluetoothd[678]: bluetoothd[678]: Unable to select SEP
May 28 10:22:20 gargan bluetoothd[678]: Unable to select SEP
May 28 10:22:20 gargan kernel: [   67.517457] input: 00:10:61:00:18:71 as /devices/virtual/input/input17
May 28 10:22:21 gargan acpid: input device has been disconnected, fd 21
May 28 10:22:22 gargan bluetoothd[678]: bluetoothd[678]: Unable to select SEP
May 28 10:22:22 gargan bluetoothd[678]: Unable to select SEP
May 28 10:22:22 gargan kernel: [   69.721201] input: 00:10:61:00:18:71 as /devices/virtual/input/input18
May 28 10:22:23 gargan acpid: input device has been disconnected, fd 21

In F18, I could pair, connect, select the device, and then select A2DP.

Comment 6 Mace Moneta 2013-05-29 00:11:53 UTC
It sounds like a separate issue, which may be chipset related.  Per lsusb, I'm using:

0a5c:2101 Broadcom Corp. BCM2045 Bluetooth

If you are experiencing a regression with a specific Bluetooth device, that should probably be opened as a separate bug.

Comment 7 Vadim Rutkovsky 2013-05-31 10:34:54 UTC
Confirming that:
   Disable=Socket
in /etc/bluetooth/audio.conf solved the problem for me

Comment 8 Aron Griffis 2013-06-01 12:20:04 UTC
Mace, thanks, I'll open a separate bug.  The reason I've been posting here is that the Disable=Socket fix proposed makes things worse for me, but it seems tangential to the problem being fixed here.

Comment 9 Jason Montleon 2013-06-02 17:23:18 UTC
Aron, have you opened a bug for the other issue you are having with receiving the "Unable to select SEP" message when setting Disable=Socket? 

I have an H800 Headset that I don't usually use via bluetooth, but rather with the USB adapter it came with. I did use it to test without and with the Disable=Socket fix and it now works properly, whereas before it did not.

However, my original problem was with a JBL Micro Wireless speaker that I do use via Bluetooth and it does have the same problem you report when setting Disable=Socket.

Comment 10 Aron Griffis 2013-06-02 17:31:59 UTC
Jason, I haven't opened it yet, please feel free to do so. I'm just catching up from a couple days away. We're probably seeing the same issue. My device is a HomeSpot BTADP-233 NFC-enabled Bluetooth Audio Receiver, which is essentially line-out to an amplifier.  http://amzn.com/B009OBCAW2

Comment 11 Aron Griffis 2013-06-02 17:36:39 UTC
Jason, I also have an H800 headset, and I similarly use it most of the time with the dedicated USB adapter. Part of the reason I started messing around with this is that I experimented with the bluetooth interface and couldn't select the A2DP profile after upgrading to F19. I'm glad to hear that problem is fixed Disable=Socket, and also glad I'm not the only one seeing the other problem!

Comment 12 Jason Montleon 2013-06-02 18:29:19 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=969856 for the 'Unable to select SEP' issue.

Comment 13 Boyd 2013-06-05 05:39:54 UTC
(In reply to Aron Griffis from comment #8)
> Mace, thanks, I'll open a separate bug.  The reason I've been posting here
> is that the Disable=Socket fix proposed makes things worse for me, but it
> seems tangential to the problem being fixed here.

Also using Fedora 19 and Jambox with this issue.  (Same symptoms as described in comment #2)  I set Disable=Socket, and I was then able to switch the profile to a2dp.  However I then had 8 new s2dp devices in the list.  At least I am getting quality sound.

Comment 14 Andre Naehring 2013-06-24 11:47:34 UTC
Disabling socket in config file (#3) works.

Comment 15 Fedora Update System 2013-06-25 13:26:44 UTC
bluez-4.101-7.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/bluez-4.101-7.fc19

Comment 16 Mace Moneta 2013-06-25 14:11:11 UTC
I updated to the new version, and replaced the audio.conf with the audio.conf.rpmnew, rebooted.

I get:

pulseaudio[1384]: [pulseaudio] module-bluetooth-device.c: Profile has no transport

when I try to select the A2DP profile.  Switching back to my old audio.conf with Disable=Socket corrects the problem.  Giving the package update negative karma.

Comment 17 Fedora Update System 2013-06-26 17:05:50 UTC
Package bluez-4.101-8.fc19:
* should fix your issue,
* was pushed to the Fedora 19 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing bluez-4.101-8.fc19'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-11702/bluez-4.101-8.fc19
then log in and leave karma (feedback).

Comment 18 Mace Moneta 2013-06-26 17:23:50 UTC
Confirming that bluez-4.101-8.fc19 corrects the issue. Closing.

Comment 19 Fedora Update System 2013-07-05 02:04:17 UTC
bluez-4.101-8.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.