Development notes

Thoughts, notes and ideas about development

Linux: how to make Bluetooth working

2017-11-06 2 min read Linux Alexey Bogdanov

This post describes step by step solution of how to make Bluetooth working on Lenovo V580c in linux distributions: Ubuntu 17.10 and Manjero 2017. My Lenovo laptop uses BCM43142 chipset.

Find bluetoth chipset and device ID

First of all we need to make sure that we have appropriate Chipset. Open terminal and enter the following command:

lsusb | grep Bluetooth

The output will look like:

Bus 001 Device 004: ID 105b:e065 Foxconn International, Inc. BCM43142A0 Bluetooth module

We need ID 105b:e065 and BCM43142A0 from the output. Just rememeber or write it down somewhere. We’ll need it in a few seconds later.

Find the reason why bluetooth not working

Now we need to figure out the reason why bluetooth is not working. In my case it was the following error:

bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2

The following error can be found in the output of the following command:

dmesg | egrep -i 'blue|firm'

Download firmware for our chipset:

There’s very helpful repository on Github for various Broadcom Bluetooth firmware: https://github.com/winterheart/broadcom-bt-firmware This repository provides firmware of Broadcom WIDCOMM® Bluetooth devices (including BCM20702, BCM20703, BCM43142 chipsets and other. Also it contains some other usefull details.

We need download this repository (or we can clone it using git).

After repository is downloaded, we need to go to broadcom-bt-firmware/brcm folder and find the file BCM43142A0-105b-e065.hcd and copy it to /lib/firmware/brcm with name BCM.hcd.

Now turn the lap top off and the turn it on.

Verify the output of the command dmesg | egrep -i 'blue|firm' again. The output should not display the error anymore.

In case when output look like

13.496037] Bluetooth: hci0: BCM: Reading local version info failed (-110)

then we need run the following:

sudo modprobe -r btusb && sudo modprobe btusb

After that our bluetooth should be ready and we can connect devices now. Open Settings -> Bluetooth and turn bluetooth if it was disabled before. Available devices should be displayed.

By default bluetooth will play sound in very poor quality. Sound quality can be changed in sound settings (Settings -> Sound):

bluetooth

Additional packages

In some cases additional packages can (should) be installed:

  • bluez
  • bluez-tools (bluez-utils for Arch-based linux)
  • blueman
comments powered by Disqus