Bluetooth not working on ubuntu 14.04 with dell inspiron 15-3521

31,855

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:

To have a complete solution I write all my steps from the beginning:

  1. 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.

  2. Get a hex file for your device:

  3. 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):

  1. The sb's cab is good and had the hex files for several chips on this family.

  2. 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.

  1. 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

Share:
31,855

Related videos on Youtube

Momo
Author by

Momo

Updated on September 18, 2022

Comments

  • Momo
    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
      P.-H. Lin over 9 years
      It seems that it's not connect to you PCI bus, can you update your question with lsusb output by editing it?
    • P.-H. Lin
      P.-H. Lin over 9 years
      Not that one, it's the wireless card.
    • Momo
      Momo over 9 years
      The bluetooth is appear in lsusb
    • Momo
      Momo over 9 years
      What can i do now?
    • warsong
      warsong over 7 years
  • αғsнιη
    αғsнιη over 9 years
    While 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
    david6 about 9 years
    Step 3. Should be copy hcd file to: /lib/firmware/brcm/
  • Wilf
    Wilf almost 9 years
    Note the post apparently has been updated with the steps here
  • Wilf
    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
    Martin Thornton about 8 years
    Welcome 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
    Qualphey almost 8 years
    Also 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 as BCM.hcd instead of fw-0a5c_21d7.hcd and copied it to /lib/firmware/brcm/. It worked like a charm. DELL inspiron 15 - 3543.
  • Qualphey
    Qualphey almost 8 years
    Oh and the hex file I have chosen using the method suggested in Florin C's answer. Using the inf file.
  • raviture
    raviture almost 8 years
    After 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
    morhook almost 8 years
    For 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)