How to Make Broadcom Bluetooth Work in Linux (Fedora, Ubuntu)

/img/broadcom-bluetooth/bluetooth-fedora.png

In my experience Broadcom bluetooth works out of the box on Linux (unlike Broadcom wifi). However, after some system updates it has ceased to function, which is quite an annoyance when your mouse works via bluetooth!

There is however a way to fix this issue and it basically involves resetting the correct driver.

Notes and Pre-requisites #

First I want to mention a few of points:

  1. to complete this tutorial you will need an internet connection
  2. this process has been tested on Fedora 26, 27 and 28, and I know it to be working for those systems. It should also be relevant on Ubuntu and its derivatives
  3. if (like me) you have a bluetooth mouse, get a usb mouse temporarily!

Let's get started #

Open a terminal and type the following command:

dmesg | egrep -i 'blue|firm'

The output will contain various information, but there will be a particular line that will detail the bluetooth driver that is missing. It will look something like this:

BCM20702A1-0b05-17cf

In your case the letters and numbers might be a little different but the format will be the same. Note this down because this is the name of the driver that you need.

Time to get the drivers #

There is a github repository that conveniently has all the Broadcom bluetooth firmware files available:

Direct link to download

Download the repository at the above link and then unzip the file.

You will now have a directory with bluetooth firmware files in it (within "broadcom-bt-firmware/brcm" of the unzipped file). Go through the files and find the file that matches the output you got above. Be careful because the files have very similar names.

Now copy the file to the following directory, and also change the filename to "BCM.hcd":

/lib/firmware/brcm

...or assuming you have the files in your Downloads folder run the following command (replace "filename" with the actual filename you have chosen that matches your Broadcom firmware):

sudo cp ~/Downloads/broadcom-bt-firmware-master/brcm/"filename".hcd /lib/firmware/brcm/

Now reboot...

Open a command line and run:

dmesg | egrep -i 'blue|firm'

This time there should be no error, but if there is then run the following:

sudo modprobe -r btusb && sudo modprobe btusb

Now your bluetooth should be up and running!

Credits #

Information in this article is predominantly taken from this source.

🙏🙏🙏

Since you've made it this far, sharing this article on your favorite social media network would be highly appreciated. For feedback, please ping me on Twitter.

...or if you want fuel my next article, you could always:

Buy Me a Coffee at ko-fi.com

Published