DevBug blog

О Linux, Java, разработке ПО и не только

Linux: чиним bluetooth

Данная статья описывает подробную инструкцию о том, как починить Bluetooth в линуксе на примере ноутбука Lenovo V580c с чипсетом BCM43142. Данный способ проверялся на Ubuntu 17.10 и Manjaro 2017.

Определяем чипсет и ID устройства

Для начала нам нужно определить какой чипсет установлен в нашем ноутбуке. Для этого в терминале вводим команду:

lsusb | grep Bluetooth

Вывод в консоли должен быть примерно таким:

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

нам понадобятся BCM43142A0 и ID 105b:e065

Определяем причину по которой не работает Bluetooth

Для определения причины, по которой не работает Bluetooth, в терминале вводим команду:

dmesg | egrep -i 'blue|firm'

В моем случае вывод данной команды был примерно таким:

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

Скачиваем прошивку для нашего чипсета

На гитхабе есть очень полезный репозиторий с различными прошивками для Broadcom чипсетов: https://github.com/winterheart/broadcom-bt-firmwareДанный репозиторий содержит прошивки для таких чипсетов, как BCM20702, BCM20703, BCM43142.Скачать репозиторий можно по данной ссылке: https://codeload.github.com/winterheart/broadcom-bt-firmware/zip/master либо используя гит:

git clone https://github.com/winterheart/broadcom-bt-firmware.git

Из всех файлов данного репозитория нам нужен BCM43142A0-105b-e065.hcd, который находится в папке broadcom-bt-firmware/brc. Данный файл нам нужно скопировать в /lib/firmware/brcm с именем BCM.hcd:

cd broadcom-bt-firmwaresudo cp brcm/BCM43142A0-105b-e065.hcd /lib/firmware/brcm/BCM.hcd

После копирования данного файла, ноутбук нужно выключить и заново включить. Именно выключить, а не перезагрузить: в некоторых источниках встречал информацию о том, что во время обычной перезагрузки устройство Bluetooth может оставаться занятым и прошивка может не подгрузится. Проверяем систему на наличие ошибок Bluetooth:

dmesg | egrep -i 'blue|firm'

Если в выводе команды присутствует ошибка вида:

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

то в терминале необходимо ввести команду:

sudo modprobe -r btusb && sudo modprobe btusb

После этого Bluetooth должен заработать. Не забываем включить его, если он был выключен до этого. Сделать это можно в настройках системы (в Gnome 3: Settings -> Bluetooth).По умолчанию в Gnome звук через Bluetooth будет передаваться в плохом качестве. Для изменения качества звука переходим в Settings -> Sound и меняем профиль на High Fidelity Playback (A2DP):

bluetooth

Дополнительные пакеты

В некоторых случаях для корректной работы Bluetooth могут понадобиться следующие пакеты:

  • bluez
  • bluez-tools (bluez-utils for Arch-подобных дистрибутивов)
  • blueman
comments powered by Disqus