0

I have a Broadcom 43142 combination wifi+bluetooth network adapter, and I'm trying to get it to play nice with Ubuntu 16.04. I am new to Linux, so struggling to understand some of the possible solutions on the internet. One resource that I have found indicates that I need to install the correct firmware from a list that they supply. In the ReadMe page for that github repository includes some terminal output where you can find out what firmware is required, but it doesn't say what command is used to achieve that output. The example output is as follows:

Bluetooth: hci1: BCM: chip id 63
Bluetooth: hci1: BCM20702A
Bluetooth: hci1: BCM20702A1 (001.002.014) build 0000
bluetooth hci1: Direct firmware load for brcm/BCM20702A1-0b05-17cb.hcd failed with error -2
Bluetooth: hci1: BCM: Patch brcm/BCM20702A1-0b05-17cb.hcd not found

From this, one can determine that the required firmware is brcm/BCM20702A1-0b05-17cb.hcd.

How can I find this information on my own system?

Thanks in advance.

More info: Some people may ask to see the output of some terminal commands. Here is what I have so far:

lspci:

00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Broadwell-U Integrated Graphics (rev 09)
00:03.0 Audio device: Intel Corporation Broadwell-U Audio Controller (rev 09)
00:14.0 USB controller: Intel Corporation Wildcat Point-LP USB xHCI Controller (rev 03)
00:16.0 Communication controller: Intel Corporation Wildcat Point-LP MEI Controller #1 (rev 03)
00:1b.0 Audio device: Intel Corporation Wildcat Point-LP High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #1 (rev e3)
00:1c.2 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #3 (rev e3)
00:1c.3 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #4 (rev e3)
00:1c.4 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #5 (rev e3)
00:1d.0 USB controller: Intel Corporation Wildcat Point-LP USB EHCI Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation Wildcat Point-LP LPC Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] (rev 03)
00:1f.3 SMBus: Intel Corporation Wildcat Point-LP SMBus Controller (rev 03)
06:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller (rev 07)
08:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 840M] (rev a2)\

lsusb:

Bus 001 Device 005: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 004: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
Bus 001 Device 003: ID 0c45:6a04 Microdia 
Bus 001 Device 002: ID 8087:8001 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

sudo service bluetooth status:

● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-01-15 19:42:53 SAST; 1h 39min ago
     Docs: man:bluetoothd(8)
 Main PID: 1027 (bluetoothd)
   Status: "Running"
   CGroup: /system.slice/bluetooth.service
           └─1027 /usr/lib/bluetooth/bluetoothd

Jan 15 19:42:53 Matt-Laptop bluetoothd[1027]: Not enough free handles to register service
Jan 15 19:42:53 Matt-Laptop bluetoothd[1027]: Sap driver initialization failed.
Jan 15 19:42:53 Matt-Laptop bluetoothd[1027]: sap-server: Operation not permitted (1)
Jan 15 19:43:03 Matt-Laptop bluetoothd[1027]: Endpoint registered: sender=:1.47 path=/MediaEndpoint/A2DPSource
Jan 15 19:43:03 Matt-Laptop bluetoothd[1027]: Endpoint registered: sender=:1.47 path=/MediaEndpoint/A2DPSink
Jan 15 19:43:52 Matt-Laptop bluetoothd[1027]: Endpoint registered: sender=:1.74 path=/MediaEndpoint/A2DPSource
Jan 15 19:43:52 Matt-Laptop bluetoothd[1027]: Endpoint registered: sender=:1.74 path=/MediaEndpoint/A2DPSink
Jan 15 19:43:52 Matt-Laptop bluetoothd[1027]: RFCOMM server failed for Headset Voice gateway: rfcomm_bind: Address already in use (98)
Jan 15 19:44:08 Matt-Laptop bluetoothd[1027]: Endpoint unregistered: sender=:1.47 path=/MediaEndpoint/A2DPSource
Jan 15 19:44:08 Matt-Laptop bluetoothd[1027]: Endpoint unregistered: sender=:1.47 path=/MediaEndpoint/A2DPSink

rfkill list:

0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
2: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
muru
  • 197,895
  • 55
  • 485
  • 740
MProx
  • 11
  • I got the github repo that I linked from that thread. I think the questions are different though. In that thread, they're asking "how can I fix my bluetooth", and some people suggested solutions. In mine, I'm asking "How do I actually implement the suggested solution, because the answer doesn't fully explain.". I just want to know what command(s) can be used to find out what driver my OS is expecting.

    In the github repo, they explain to look for the hcd file (e.g. brcm/BCM20702A1-0b05-17cb.hcd), but that will vary from system to system. I need to know which mine is expecting.

    – MProx Jan 16 '18 at 10:49
  • Ok, I think I see what you're saying. I can use the ID from the lsusb line (0a5c:21d7) and the chip number (BCM43142) to infer the driver file - BCM43142A0-0a5c-21d7.hcd. This file exists in the repo, so should solve my problem. I will try it out when I get home from work. Thanks. – MProx Jan 16 '18 at 10:58
  • 1
  • Could you please [edit] your post, when you want to clarify something or add information? It’s best to have everything relevant in one place. Additionally, comments may be deleted for various reasons. Thanks. – David Foerster Jan 16 '18 at 13:15
  • Sorry. My first two comments above were actually replying to someone who now seems to have deleted their comment. The other person also pointed out the possible duplication (and also to indicate to me the chip ID in the lsusb line), and my comment was to explain why I don't think this is a duplication.

    The solution doesn't seem to have worked, although without the terminal command in my original comment I cannot actually confirm that my assumed driver is correct. As such, my question still stands.

    – MProx Jan 16 '18 at 14:52
  • If you have a solution, please post an answer instead of editing the question. – muru Jan 18 '18 at 01:35

2 Answers2

1

As requested, here is the solution to the problem (copied from my edit in the original post)

The terminal command required to show the driver status for my bluetooth driver is as follows:

dmesg | grep -i bluetooth

Thanks for the help, all.

MProx
  • 11
0

This will produce a shorter output than MProx's answer

sudo dmesg | grep 'Firmware revision'
Tom Hale
  • 3,508