Profiles that require duplex audio like Head Set (HSP) and Hands Free (HFP) do not work on machines with Broadcom BCM20702A0 Bluetooth chips

Bug #962082 reported by Ayan George
168
This bug affects 32 people
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Undecided
Unassigned
bluez (Ubuntu)
Fix Released
High
Unassigned
Nominated for Oneiric by Ayan George
Nominated for Precise by Ayan George
Nominated for Quantal by James M. Leddy
Nominated for Raring by James M. Leddy

Bug Description

This problem seems to occur on every device that uses the BCM20702A0 Bluetooth hardware.

How to reproduce:

(1) Pair a bluetooth headset with a machine equipped with a BCM20702A0.
(2) Activate the device. Usually there is a button on the headset you should press to notify the bluetooth stack that you're ready to use the device. This creates SCO link and the plumbs the audio components.
(3) Open the sound settings tool and select the bluetooth device under the "Input" and "Output" tabs. Under each tab you should see a table with an entry that has a headset icon on the left with the bluetooth device name to the right. This is the item to select.

Now, everything should be configured so that you can use your bluetooth device to hear and record audio. Test this by:

Testing Input:

(1) In the sound settings tool, select the "Input" tab.
(2) Make sure the "Input Volume" is not muted and the scale widget is not set to zero.
(3) Make sounds into the headset mic -- you should see the "Input Level" bar raise.

Testing Output:
In the same program:
(1) Select the "Hardware" tab.
(2) In the box labeled "Choose a device to configure", select your bluetooth device.
(3) A combobox should appear at the bottom of the window labeled "Settings for the selected device". Choose "Telephony Duplex (HSP/HFP)".
(4) Now click on the "Test Speakers" button to the right.
(5) Run speaker test. You should hear a sound.

CVE References

Revision history for this message
Ayan George (ayan) wrote :

Tried the solution recommended here:

  https://bbs.archlinux.org/viewtopic.php?id=133460

I could not get the python firmware updater to work so I used the attached program. No change.

Changed in bluez (Ubuntu):
status: New → In Progress
importance: Undecided → High
assignee: nobody → Ayan George (ayan)
Ayan George (ayan)
description: updated
Revision history for this message
Ayan George (ayan) wrote :

I attached the output of pulseaudio, bluetoothd, hcidump, and dbus-monitor with timestamps.

Here are the times that I performed the steps to reproduce the problem:

?????? - start each daemon
1332417566 - added bluetooth device
1332417622 - pressed 'activate' button
1332417647 - selected bt device and tested speakers

Revision history for this message
Ayan George (ayan) wrote :

In the bluetoothd.txt file, note the errors:

1332417651: bluetoothd[16480]: Badly formated or unrecognized command: AT+BIA=0,0,1,1,1,1,0,
1332417651: bluetoothd[16480]: Badly formated or unrecognized command: AT+CBC=88

Also note that hcidump does not display *any* data after playing. Not even all zeros.

Revision history for this message
Ayan George (ayan) wrote :

I installed the latest precise bluez build (4.98) -- this did not help.

Ayan George (ayan)
tags: added: blocks-hwcert-enablement
Ayan George (ayan)
description: updated
Revision history for this message
Todd Howe (tehowe) wrote :

By 'does not work', do you mean the audio is all choppy? I have a (via lsusb)

Bus 006 Device 002: ID 0a5c:2151 Broadcom Corp. Bluetooth

and all audio is unlistenable, though at least my earpiece will pair now.

Revision history for this message
James Ferguson (jamesf) wrote :

Todd - no, this bug is for a class of new Broadcom devices, where the audio does not work *at all*.

Changed in oem-priority:
assignee: nobody → James M. Leddy (jm-leddy)
importance: Undecided → High
status: New → In Progress
no longer affects: oem-priority
Ishaan Dalal (izx)
Changed in bluez (Ubuntu):
assignee: Ayan George (ayan) → nobody
Revision history for this message
Davide Basilio Bartolini (bartolinidb) wrote :

I also experience this issue; is there anyone working on it?

Revision history for this message
darthvader (sarmbruster) wrote :
Revision history for this message
Anthony Wong (anthonywong) wrote :

@bartolinidb
We are working on it. The root cause is you need to load a firmware to your bluetooth module to make HSP/ HFP functional, and currently a proper mechanism to do that is missing, we are dealing with the latter in bug 1065400.

Revision history for this message
Davide Basilio Bartolini (bartolinidb) wrote :

anthonywong@
Thanks, I reported the USB ID of my device in the other thread, since it was not reported.
Hope to see this fixed soon!

Changed in bluez (Ubuntu):
status: In Progress → Confirmed
Revision history for this message
James Anderson (d1verjim) wrote :

Forgive what seems like a silly question, but I have a Dell Precision M4700 with the BCM20702A0 Bluetooth adapter. From what I can gather of the linked bug, the ability to load the firmware now works, but I cannot find any clear instructions on how to load the latest firmware, nor where I can get the latest firmware. I've read about getting the hex files from the windows driver, but I can only find an exe file on the Dell site for Bluetooth sofware.

Can anyone help?

usb-devices output:
T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=413c ProdID=8197 Rev=01.12
S: Manufacturer=Broadcom Corp
S: Product=BCM20702A0
S: SerialNumber=74E54355AC17
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

Revision history for this message
James M. Leddy (jm-leddy) wrote :

Marking as fixed released based on bug 1065400. Please reopen if this is incorrect.

Changed in hwe-next:
status: New → Triaged
Changed in bluez (Ubuntu):
status: Confirmed → Triaged
Changed in hwe-next:
status: Triaged → Fix Released
Changed in bluez (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Anthony Wong (anthonywong) wrote :

Actually not completely fixed since the required firmware/patchram is not yet in Ubuntu.

Revision history for this message
Dave M G (martin-autotelic) wrote :

This says fix released, but I am still having no success getting audio to work with my Bluetooth headset. When can I expect to actually be able to use my headset? It's been about a year now for me that my Bluetooth device suddenly stopped working because of this bug.

Revision history for this message
goliy (musor-zdes) wrote :

I confirm the bug is still here, HSP\HFP profile doesn't work
Tested with 2 bluetooth headsets

syslog says:
Jan 3 06:14:25 fitz123-laptop bluetoothd[745]: /org/bluez/745/hci0/dev_48_C1_AC_E0_2C_CF/fd0: fd(26) ready
Jan 3 06:14:25 fitz123-laptop rtkit-daemon[2277]: Successfully made thread 3043 of process 2262 (n/a) owned by '1000' RT at priority 5.
Jan 3 06:14:25 fitz123-laptop rtkit-daemon[2277]: Supervising 4 threads of 1 processes of 1 users.
Jan 3 06:14:25 fitz123-laptop bluetoothd[745]: Badly formated or unrecognized command: AT+XEVENT=USER-AGENT,COM.PLANTRONICS,PLT_Legend,115,34.06,1069b78391dca242aa1fc92c3794e7f6
Jan 3 06:14:25 fitz123-laptop bluetoothd[745]: Badly formated or unrecognized command: AT+BIA=0,0,0,1,1,1,0

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.10
Release: 14.10
Codename: utopic

$ usb-devices
T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=413c ProdID=8197 Rev=01.12
S: Manufacturer=Broadcom Corp
S: Product=BCM20702A0
S: SerialNumber=A4DB3020F62F
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

$ dmesg | grep Bluetooth
[ 14.799529] Bluetooth: Core ver 2.19
[ 14.799549] Bluetooth: HCI device and connection manager initialized
[ 14.799556] Bluetooth: HCI socket layer initialized
[ 14.799559] Bluetooth: L2CAP socket layer initialized
[ 14.799568] Bluetooth: SCO socket layer initialized
[ 14.803087] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 14.803091] Bluetooth: BNEP filters: protocol multicast
[ 14.803099] Bluetooth: BNEP socket layer initialized
[ 14.815372] Bluetooth: RFCOMM TTY layer initialized
[ 14.815382] Bluetooth: RFCOMM socket layer initialized
[ 14.815387] Bluetooth: RFCOMM ver 1.11

Revision history for this message
Erotavlas (erotavlas) wrote :

Hi,
here http://plugable.com/2014/06/23/plugable-usb-bluetooth-adapter-solving-hfphsp-profile-issues-on-linux there is a solutions for properly reading the firmware module for Broadcom BCM20702A0 chip in the kernel for version 3.18+.
In my case it works well. Let me know if this solve the problem.

Revision history for this message
Tim Abell (tim-abell) wrote :

@erotavlas, thanks but that didn't work for me with an ASUS dongle with the same chip in it. :-(

tim@atom:~% lsusb | grep ASUS
Bus 003 Device 003: ID 0b05:17cb ASUSTek Computer, Inc.

http://www.ebuyer.com/623493-asus-usb-bt400-mini-bluetooth-4-0-usb-adapter-usb-bt400
"Asus USB-BT400 - Mini Bluetooth 4.0 USB Adapter"

I have the same problem of no sound in or out.

=======

Quoting the article in case it moves/vanishes:

-----

It has come to our attention that there are some issues on certain Linux systems with regards to using Headset Profile and Hands-Free Profile with our USB Bluetooth Adapters.

The issue stems from a lack of support for these profiles on the Broadcom BCM20702 chipset found inside our device, unless a proprietary firmware file is loaded into it to enable this functionality.

The steps to install the firmware are as follows:Screenshot from 2014-06-23 17:34:49

    Open your favorite terminal
    Run the following command to download the firmware file:

    wget https://s3.amazonaws.com/plugable/bin/fw-0a5c_21e8.hcd

    Copy the firmware file to the /lib/firmware folder:

    sudo cp fw-0a5c_21e8.hcd /lib/firmware

    Reboot

New kernel versions have moved the location in which the firmware file has to be installed. The instructions that follow are for kernels 3.18 and newer

    Open your favorite terminal
    Run the following command to download the firmware file:

    wget https://s3.amazonaws.com/plugable/bin/fw-0a5c_21e8.hcd

    Create the directory /lib/firmware/brcm

    sudo mkdir /lib/firmware/brcm

    Copy the firmware file to the /lib/firmware/brcm folder and rename the file to BCM20702A0-0a5c-21e8.hcd:

    sudo mv fw-0a5c_21e8.hcd /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd

    Reboot

That’s it! HFP and HSP profiles should now work without issue!

We have also heard of some reports that these steps can solve some issues with other profiles, like A2DP, but have been unable to reproduce the issues. It is possible that newer versions of BlueZ and the Linux kernel have fixed these issues, and that is why we are not seeing them any more.

UPDATE: These steps will also fix many incompatibility issues with certain A2DP devices, such as Bluetooth Headsets and Speakers. If you are having trouble pairing your Bluetooth Audio device to your Linux PC, this firmware file will likely fix your issue.

Revision history for this message
Tim Abell (tim-abell) wrote :

For the record I also have an identical issue with a much older D-Link DBT-122 dongle

tim@atom:~% lsusb | grep DBT
Bus 001 Device 009: ID 07d1:f101 D-Link System DBT-122 Bluetooth

http://www.dlink.com/uk/en/support/product/dbt-122-wireless-usb-bluetooth-adapter

This apparently is also a broadcom chip.

Snippet from kernel

tim@atom:~% udevadm monitor --property
...
UDEV [1757.217749] add /devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1 (usb)
ACTION=add
BUSNUM=001
DEVNAME=/dev/bus/usb/001/009
DEVNUM=009
DEVPATH=/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1
DEVTYPE=usb_device
ID_BUS=usb
ID_MODEL=D-Link_DBT-122
ID_MODEL_ENC=D-Link\x20DBT-122
ID_MODEL_FROM_DATABASE=DBT-122 Bluetooth
ID_MODEL_ID=f101
ID_REVISION=0100
ID_SERIAL=Broadcom_Corp_D-Link_DBT-122
ID_USB_INTERFACES=:e00101:ffffff:fe0100:
ID_VENDOR=Broadcom_Corp
ID_VENDOR_ENC=Broadcom\x20Corp
ID_VENDOR_FROM_DATABASE=D-Link System
ID_VENDOR_ID=07d1
MAJOR=189
MINOR=8
PRODUCT=7d1/f101/100
SEQNUM=2367
SUBSYSTEM=usb
TYPE=224/1/1
USEC_INITIALIZED=196931

Revision history for this message
Alirio Lancheros (halirio) wrote :

After going throughout a lot of foros, the solution given at http://plugable.com/2014/06/23/plugable-usb-bluetooth-adapter-solving-hfphsp-profile-issues-on-linux#comment-41932 solved my problem.

Revision history for this message
Mauro (mauromol) wrote :

@Tim Abell (comment #18): I also have D-Link DBT-122. AD2P works fine, while I have no audio in HSP/HFP mode in Xenial. I didn't try the mic, but I bet it doesn't work either.
On the net I see that the Mac recognize this adapter as a Broadcom BCM2035.
Did you find a solution? Is there any firmware for this to fix the proble? Any help from anyone would be appreciated.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

This bug is closed.

Please report any new issues by running:

  ubuntu-bug bluez

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.