I had the same issue. I read some answers and this is the gist of it:
- Find ID of your device:
$ lsusb | grep Bluetooth
My output for example:
Bus 001 Device 003: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
from which 0a5c:21d7 should be remembered.
Get a hex file for your device:
After searching for bluetooth drivers in Google I have chosen this download:
http://drivers.softpedia.com/get/BLUETOOTH/Broadcom/Broadcom-43142-Bluetooth-40-Adapter-Driver-12007030-for-Windows-8.shtml#download
How to get the right hex file.
So I have the id of the chip: 0a5c:21d7 and a bunch of the hex files from the downloaded archive. How can I get the right one for me? The trick is to investigate the .inf file that instructs windows what to install. Searching for 21D7 (note the capital D instead of 'd') I get this:
%Dell1704.DeviceDesc%=RAMUSB21D7, USB\VID_0A5C&PID_21D7 ; BRCM Generic 43142A0 RAMUSB
The USB/VID&PID is what I get on lsusb: capital(0a5c:21d7). The RAMUSB21D7 is what I need to search next in the inf file (it is the device's description).
And this is my result:
;;;;;;;;;;;;;RAMUSB21D7;;;;;;;;;;;;;;;;;
[RAMUSB21D7.CopyList]
bcbtums.sys
btwampfl.sys
BCM43142A0_001.001.011.0122.0126.hex
And the hex file I shall use is BCM43142A0_001.001.011.0122.0126.hex Extract this into home directory.
- Type this:
dmesg | grep Bluetooth
Result according to your issue is:
[ 4967.683179] Bluetooth: hci0: BCM: patch
brcm/BCM43142A0-0a5c-21d7.hcd not found
It will tell the name and file its looking for. I your case it is:brcm/BCM43142A0-0a5c-21d7.hcd
- Convert the correct hex to hcd file.
Open terminal and type these commands:
sudo apt-get install git
git clone git://github.com/jessesung/hex2hcd.git
cd hex2hcd
make
./hex2hcd ../BCMxxxx.xxx.xxx.xx.hex BCM43142A0-0a5c-21d7.hcd (Correct
hex file and required hcd name here)
sudo cp BCM43142A0-0a5c-21d7.hcd /lib/firmware/brcm