Broadcom hybrid wireless devices (WIP)
This page describes how to add firmware from a windows driver for Broadcom hybrid bluetooth devices found on Broadcom Wifi/BT Hybrid cards on Debian systems.
You will need to identify both your Hardware ID and the name of the missing Firmware file.
Your bluetooth adapter, while on the same card as your wifi will have a seperate hardware ID.
Your Bluetooth card will likely be on the USB bus, for example:
Bus 003 Device 016: ID 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]
Bus 004 Device 006: ID 0a5c:21e3 Broadcom Corp. HP Portable Valentine
See this wiki entry for more information on identifying USB devices.
You will need this identifier such as 0a5c:21e6, shown above.
Missing Firmware Filename
You can typically find the name of the missing firmware file by reading the kernel error message with one of the following commands:
pkexec dmesg | grep -i bluetooth
pkexec dmesg | grep firmware
and you will see an error message with the filename, for example:
bluetooth hci0: firmware: failed to load brcm/BCM20702A1-0a5c-21e6.hcd (-2) bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e6.hcd failed with error -2 Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0a5c-21e6.hcd not found
You will need this filename such as brcm/BCM20702A1-0a5c-21e6.hcd.
The complicated part of this is obtaining the firmware from a windows driver package and converting it, you will first need a driver package for your card from your computer or hardware manufacturer which will likely come in the form of a windows executable file. You can obtain this by visiting the manufacturer's website and looking up your model number.
For example purposes I am writing this wiki page after assisting a user with a HP Pavilion g6-1c60ca Notebook PC, and I went to ?https://support.hp.com/us-en/drivers/laptops and typed in that model number in the search box and hit submit, and due to the fact that it auto detected I was on linux, it said no drivers found. I had to then click on a Choose a Different OS link, and select Windows 7 at which point it listed various driver categories, I expanded the Driver-Network category and selected Broadcom Bluetooth Software which then downloaded https://whp-aus2.cold.extweb.hp.com/pub/softpaq/sp54001-54500/sp54245.exe
You can open the file regardless if its an exe or zip file with engrampa or file-roller, KDE's ark will open zip files but as of this writing, in Debian 10 Buster, ark does not seem to be able to open exe files.
You can then extract the files to a directory for example purposes I'll just call it /home/user/sp54245/
Finding the appropriate firmware file
In order to find the appropriate firmware file for your device you will need to locate the .inf files in the driver package and search them for your hardware id. You can recursively search all .inf files