Bluetooth not working on ubuntu 14.04 with dell inspiron 15-3521
Similar steps as from Diabolik2. New information is where and how to get the hex file.
Sources:
- https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1065400/comments/11
- https://askubuntu.com/a/534632/336592.
To have a complete solution I write all my steps from the beginning:
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
- I have extracted the last .hex file by chance. Fortunately it worked. STEPS: In nautilus right-click on the downloaded .cab file > chose Open with Archive Manager > select last .hex file in the archive list > right click > Extract...
- download and compile hex2hcd
$ git clone git://github.com/jessesung/hex2hcd.git $ cd hex2hcd $ make
- convert the .hex to .hcd
$ ./hex2hcd /path/to/extracted.hex /where/you/want/your_new.hcd
Copy the hcd file to /lib/firmware as lib/firmware/fw-0a5c_21d7.hcd.
In the filename use the ID which you have previously found out.
I have solved the issue with the solution from this post:
In summary, I have done this steps: List your id:
lsusb
My id is: 0a5c:21d7
Get the file .hex :
In your windows partition (presuming that you dual boot with Windows), get the file BCMxxxx.hex in C:\windows\system32\drivers
.
If there are two or more files .hex, view which one is in use with windows device manager.
Copy this file in your home directory
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 fw-0a5c_21d7.hcd (Replace 0a5c_21d7 with your id)
sudo cp fw* /lib/firmware
Reload modules with these commands:
sudo modprobe -r btusb
sudo modprobe btusb
Restart your computer.
Open terminal and write:
dmesg | grep firmware
if all right you can view the message:
[ xxxxxxxxxx] Bluetooth: firmware loaded
This is all.
Good luck Diabolik2
Answers saying that I have to install Windows to get a firmware for Linux ... sound wrong, isn't it?
But the previous answers were gold. I have Bluetooth working after long time in my Dell with Ubuntu 12.04 386. Here my completions to the previous answers (especially sb):
The sb's cab is good and had the hex files for several chips on this family.
cabextract is a tool to extract a .cab archive. just:
sudo apt-get install cabextract
and extract it by:
cabextract 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab
Be aware that there is not a directory inside the cab, but just files, so you'll get a lot of hex files. It is good to mkdir a specific directory and extract the cab in there.
- How to get the right hex file.
So I have the id of the chip: 0a5c:21d7 and a bunch of the hex file. 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
The rest is the same as above. Get the tool trough git, build it, convert the hex file to hcd, discard/reload the btusb.
Note: Be aware the hcd file should start with fw-...... and not fw_...... I made this mistake. :)