(Outdated) Solving HFP/HSP and A2DP Profile Issues on Linux

Last Update: October 28th, 2020
Article ID: 696086

These steps are here for archival purposes only. Firmware errors on Linux regarding the Bluetooth adapter have no impact on Bluetooth functionality in modern Linux distros. Please go here for current fixes regarding Bluetooth audio on Linux.

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:

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
  4. 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
  5. 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.