Bluetooth not working on ubuntu 14.04 with dell inspiron 15-3521
Solution 1
Unfortunately, your Bluetooth device:
Bus 001 Device 003: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
Is not supported by any version of stock Ubuntu, please refer to
Bug1129865
[Broadcom Combo BT/Wifi Card] 21D3 21D7 Bluetooth does not detect anything at all
(The reason is listed in comment #7)
And I will suggest you to subscribe to this bug:
Bug 1065400 Support for loading Broadcom bluetooth firmware
There might be a workaround in that thread, good luck!
Solution 2
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.
Solution 3
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. :)
Solution 4
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
Related videos on Youtube
Momo
Updated on September 18, 2022Comments
-
Momo over 1 year
I have a laptop Dell inspiron 15-3521 with Ubuntu 12.04 pre-installed, It was working good (I removed this Ubuntu). I installed Ubuntu 14.04 (fresh install).
(The driver installed is:
bcmwl-kernel-source 6.30.223.141+bdcom-0ubuntu2
)The WiFi network working good but Bluetooth is not working (My phone, other pc and laptop can't see it and my laptop can't see anything.)
Bluetooth device is enabled and turned on and visible.
lspci
result:00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09) 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) 00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04) 00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04) 00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04) 00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 (rev c4) 00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4) 00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04) 00:1f.0 ISA bridge: Intel Corporation HM76 Express Chipset LPC Controller (rev 04) 00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04) 00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04) 01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 05) 02:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)
lsusb
result:Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 005: ID 064e:8132 Suyin Corp. Bus 001 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller Bus 001 Device 003: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0 Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 002: ID 19d2:0031 ZTE WCDMA Technologies MSM MF110/MF627/MF636 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
-
P.-H. Lin over 9 yearsIt seems that it's not connect to you PCI bus, can you update your question with
lsusb
output by editing it? -
P.-H. Lin over 9 yearsNot that one, it's the wireless card.
-
Momo over 9 yearsThe bluetooth is appear in lsusb
-
Momo over 9 yearsWhat can i do now?
-
warsong over 7 yearsThis may help askubuntu.com/questions/845531/…
-
-
αғsнιη over 9 yearsWhile this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes.
-
david6 about 9 yearsStep 3. Should be copy hcd file to:
/lib/firmware/brcm/
-
Wilf almost 9 yearsNote the post apparently has been updated with the steps here
-
Wilf almost 9 years
I have extracted the last .hex file by chance. Fortunately it worked.
- people reading this please note that if it doesn't work it might break something, so you probably should only do this if Diabolik2's post does not work for u. -
Martin Thornton about 8 yearsWelcome to Ask Ubuntu! Please don't add comments as answers. Invest some time in the site and you will gain sufficient privileges to upvote answers you like such as this, or to add actual comments when seeking clarification of any issues.
-
Qualphey almost 8 yearsAlso it's very important to read what
dmesg | grep Bluetooth
says, as it will give you useful information. In my case it was saying that it failed to load file brcm/BCM.hcd, so I named the hcd file asBCM.hcd
instead offw-0a5c_21d7.hcd
and copied it to/lib/firmware/brcm/
. It worked like a charm. DELL inspiron 15 - 3543. -
Qualphey almost 8 yearsOh and the
hex
file I have chosen using the method suggested in Florin C's answer. Using theinf
file. -
raviture almost 8 yearsAfter extracting correct hex file and followed procedure. When I restarted my machine and fired command
dmesg | grep firmware
. I am getting output as[ 15.023826] bluetooth hci0: Direct firmware load for brcm/BCM43142A0-0a5c-21d7.hcd failed with error -2
-
morhook almost 8 yearsFor Ubuntu 16.04, the solution is to get the .hex file from windows as explained above, transform to
.hdc
also as explained, but you need to put a different name for the firmware file like:/lib/firmware/brcm/BCM-0a5c-6410.hcd
(depends on your lsusb bus:devnum ID)