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 могут понадобиться следующие пакеты:
- bluez
- bluez-tools (bluez-utils for Arch-подобных дистрибутивов)
- blueman