Plugable USB Bluetooth Adapter: Solving HFP/HSP and A2DP Profile Issues on Linux

EDITOR’S NOTE: While this firmware can still be loaded according to the instructions in this blog post, there is another problem affecting the HSP/HFP profiles in Linux distributions that use Bluez version 5.x, from which HSP/HFP support has been removed. There are various ways around this limitation, but a recent survey of the most recent versions of popular distros has not found one where HSP/HFP consistently works.

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.

Screenshot from 2014-06-23 17:34:49

The steps to install the firmware are as follows:

Older Kernel Versions (before 3.16)

  1. Open your favorite terminal
  2. Run the following command to download the firmware file:
    wget https://s3.amazonaws.com/plugable/bin/fw-0a5c_21e8.hcd
  3. Copy the firmware file to the /lib/firmware folder:
    sudo cp fw-0a5c_21e8.hcd /lib/firmware
  4. Reboot

Newer Kernel Versions (3.16 and later)

Recent kernel versions have moved the location in which the firmware file is installed.

    1. Open your favorite terminal
    2. Run the following command to download the firmware file:
      wget https://s3.amazonaws.com/plugable/bin/fw-0a5c_21e8.hcd

      Alternatively, if wget is not installed on the system curl can be used instead:

      curl https://s3.amazonaws.com/plugable/bin/fw-0a5c_21e8.hcd -o fw-0a5c_21e8.hcd
    3. Create the directory /lib/firmware/brcm
sudo mkdir /lib/firmware/brcm
  1. 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

    Note: With some kernel versions, you may have to rename the file to BCM20702A1-0a5c-21e8.hcd. Try the following if you see a message in dmesg that says: “Direct firmware load for brcm/BCM20702A1-0a5c-21e8.hcd failed with error -2”:

    sudo cp /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd /lib/firmware/brcm/BCM20702A1-0a5c-21e8.hcd

     

  2. 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.

Leave A Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.