Comment 90 for bug 1438510

Revision history for this message
In , Elias E. del Real (pixelshader) wrote :

I have a Sony MDR-ZX220BT bluetooth headset that encounters this problem.
I'm using Ubuntu 16.10, bluez "5.41-0ubuntu3", and pulseaudio "1:9.0-2ubuntu2.1".

From
https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/1438510
https://bugs.launchpad.net/ubuntu/+source/indicator-sound/+bug/1577197
it looks like the sequence that works is:

1. Select the "off" profile in pulseaudio.
2.1 Disconnect the bluetooth earphones.
2.2 Reconnect the bluetooth earphones.
3. Select the "a2dp_sink" profile in pulseaudio.

Or for commands:
1. pactl set-card-profile bluez_card.00_18_09_62_4B_98 off
2. bluetoothctl
2.1 disconnect 00:18:09:62:4B:98
2.2 connect 00:18:09:62:4B:98
3. pactl set-card-profile bluez_card.00_18_09_62_4B_98 a2dp_sink

Bluetooth users are resorting to a scripted version of the above as a workaround:
https://gist.github.com/pylover/d68be364adac5f946887b85e6ed6e7ae#file-a2dp-py

What I'm seeing in /var/log/syslog if I select "a2dp_sink" as the profile, then disconnect, and reconnect:

Nov 25 00:47:50 fireflower pulseaudio[2178]: [pulseaudio] module-bluez5-device.c: Default profile not connected, selecting off profile
Nov 25 00:47:50 fireflower bluetoothd[970]: /org/bluez/hci0/dev_00_18_09_62_4B_98/fd17: fd(24) ready
Nov 25 00:47:50 fireflower pulseaudio[2178]: [pulseaudio] bluez5-util.c: Transport TryAcquire() failed for transport /org/bluez/hci0/dev_00_18_09_62_4B_98/fd17 (Operation Not Authorized)
Nov 25 00:47:50 fireflower kernel: [ 7852.918655] input: 00:18:09:62:4B:98 as /devices/virtual/input/input37

The message from bluetoothd "fd(24) ready" showing up then makes me wonder if this is a race between pulseaudio and the bluetooth connection?

If I then run:

pactl set-card-profile bluez_card.00_18_09_62_4B_98 a2dp_sink

I get nothing new in /var/log/syslog .

If I run:

pactl set-card-profile bluez_card.00_18_09_62_4B_98 off

I get nothing new in /var/log/syslog .

If I again run:

pactl set-card-profile bluez_card.00_18_09_62_4B_98 a2dp_sink

I get this output:

Failure: Input/Output error

and /var/log/syslog logs:

Nov 25 00:52:26 fireflower pulseaudio[2178]: [pulseaudio] bluez5-util.c: Transport Acquire() failed for transport /org/bluez/hci0/dev_00_18_09_62_4B_98/fd17 (Operation Not Authorized)

If I run

pactl list cards | tail -n 26

I see:

Card #18
 Name: bluez_card.00_18_09_62_4B_98
 Driver: module-bluez5-device.c
 Owner Module: 43
 Properties:
  device.description = "MDR-ZX220BT"
  device.string = "00:18:09:62:4B:98"
  device.api = "bluez"
  device.class = "sound"
  device.bus = "bluetooth"
  device.form_factor = "headset"
  bluez.path = "/org/bluez/hci0/dev_00_18_09_62_4B_98"
  bluez.class = "0x240404"
  bluez.alias = "MDR-ZX220BT"
  device.icon_name = "audio-headset-bluetooth"
  device.intended_roles = "phone"
 Profiles:
  headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 20, available: yes)
  a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 10, available: yes)
  off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
 Active Profile: off
 Ports:
  headset-output: Headset (priority: 0, latency offset: 0 usec, available)
   Part of profile(s): headset_head_unit, a2dp_sink
  headset-input: Headset (priority: 0, latency offset: 0 usec)
   Part of profile(s): headset_head_unit

If I disconnect and connect the device via bluetoothctl, /var/log/syslog logs:

Nov 25 00:55:38 fireflower acpid: input device has been disconnected, fd 15

and

Nov 25 00:57:02 fireflower kernel: [ 8404.425497] input: 00:18:09:62:4B:98 as /devices/virtual/input/input38

If in the "Sound" GUI (System Settings > Sound), I go to the Output tab, and select the headset, /var/log/syslog logs:

Nov 25 00:57:37 fireflower pulseaudio[2178]: [pulseaudio] backend-native.c: connect(): Function not implemented

If in the pulseaudio "Volume Control" UI I go to the Configuration tab, it shows the profile is "Off".

If there, I select "High Fidelity Playback (A2DP Sink), /var/log/syslog logs:

Nov 25 01:00:55 fireflower bluetoothd[970]: /org/bluez/hci0/dev_00_18_09_62_4B_98/fd18: fd(24) ready