Bluetooth включен, но не может найти или найти другие устройства.
Выход sudo service bluetooth status
:
● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since ხუთ 2015-06-04 22:33:18 GET; 13min ago
Main PID: 26678 (bluetoothd)
CGroup: /system.slice/bluetooth.service
└─26678 /usr/sbin/bluetoothd -n
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPAG
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPHS
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSource
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSink
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPAG
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPHS
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSource
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSink
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Adapter /org/bluez/26678/hci0 has been enabled
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Adapter /org/bluez/26678/hci0 has been enabled
Выход lsusb
:
Bus 003 Device 005: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
Как я могу это исправить?
Ответы:
Вам необходимо установить прошивку.
Распространение прошивки Broadcom не разрешено лицензией Broadcom. Так что вам нужно получить это самостоятельно. Это немного сложно, но другого легального пути нет.
Загрузите драйвер Broadcom для Windows 8 или ЗДЕСЬ .
Если вашего устройства нет в списке этих драйверов, вам нужно где-то найти его более новую версию. Broadcom удалил последние версии драйверов со своего сайта, чтобы сделать его более сложным.
Некоторые производители ноутбуков имеют на своих сайтах драйверы Bluetooth, но некоторые из них не являются разархивируемыми. Так что это какой-то квест. Я мог бы загрузить последние версии драйверов Broadcom с их сайта, но их там больше нет.
Откройте этот файл менеджером архивов и найдите там
bcbtums-win8x86-brcm.inf
файл. Название файла может отличаться в некоторых драйверах. Он может бытьbcbtums.inf
расположен в каталоге Win32 или Win64. Неважно, 32 или 64 бит для загрузки.Найдите этот файл для VID_ 0A5C & PID_ 21D7 . Эти цифры из вашего
lsusb
вывода0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.
Комментарий: некоторые устройства не распознаются как Broadcom BT в
lsusb
. Если вы не уверены, какое устройство является вашим BT, запуститеusb-devices
команду, она даст более подробную информацию. Там вы можете найти идентификаторы продуктов и поставщиков.Вы увидите строку, оканчивающуюся на RAMUSB21D7
Поиск этого файла для RAMUSB21D7. Там вы найдете такой раздел:
Это то, что мы ищем. Название файла прошивки. BCM43142A0_001.001.011.0122.0126.hex
Теперь извлеките эту прошивку из того же файла cab.
Затем вам нужно конвертировать этот файл из шестнадцатеричного формата в hcd.
Скачать инструмент для этого
Вы получите папку hex2hcd в вашем домашнем каталоге.
Поместите файл прошивки в вашу домашнюю папку и запустите
Вы видите, что 0a5c-21d7 - это идентификатор вашего адаптера из lsusb .
Важно: Для ядер 4.2+ вы называете этот файл как
BCM.hcd
взамен.Для ядер 4.8+ имя файла должно быть
BCM-<VID>-<PID>.hcd
, вродеBCM-0a5c-21d7
.Для ядра 5.0 имя файла снова
BCM43142A0-0a5c-21d7.hcd
Теперь просто скопируйте
BCM43142A0-0a5c-21d7.hcd
или другой файл в соответствии с версией ядра в/lib/firmware/brcm
каталогДля ядер 4.2+
Для ядер 4.8+
Вы всегда можете проверить правильность имени файла, запустив
dmesg | grep -i blue
. Там будет сообщение об ошибке, если файл не найден.Если запрошенное имя файла не соответствует созданному вами файлу, переименуйте
hcd
файл.Выключите и снова включите компьютер. Не просто перезагрузка!
Ваш адаптер получит прошивку, и Bluetooth должен работать.
Все это выглядит сложно, но в этом виноваты адвокаты Broadcom . Большинство других производителей разрешают перераспределять прошивку при условии, что это делается вместе с лицензией.
Это позволяет разработчикам Linux включать прошивку в дистрибутивы.
Но не в случае с Broadcom. Вот почему это не делается простым способом.
Многие люди могут конвертировать все шестнадцатеричные файлы в hcd и делать их доступными. Или просто добавьте их в
linux-firmware
пакет Ubuntu.Но это не законно : - ((
источник
sudo modprobe -r btusb
) и перезагрузить его (sudo modprobe btusb
), чтобы blueooth снова заработал. bugzilla.kernel.org/show_bug.cgi?id=81821dmesg
чтобы узнать мой правильный файл. Пример вывода dmesg:[ 3.479417] bluetooth hci0: Direct firmware load for brcm/BCM-0a5c-6410.hcd failed with error -2 [ 3.479421] Bluetooth: hci0: BCM: Patch brcm/BCM-0a5c-6410.hcd not found
.hex
файлу, который вы можете скопировать в вашу систему Linux. После этого выполните шаги 5-8. Этот ответ, кстати, отличный.Вот проект, который призван немного автоматизировать процесс: https://github.com/winterheart/broadcom-bt-firmware
скопируйте BCM в нужное имя / каталог в зависимости от ядра (как описано выше).
На 4.8 мне не понадобилась перезагрузка, просто в терминале:
должен показать, если он загружен. Убедитесь, что идентификатор оборудования соответствует файлу. Его можно найти с помощью:
что показывает это на моем Lenovo (только эта строка):
Надеюсь, это поможет :)
источник
hcitool dev
все еще не показывали никаких устройств, и в системном журнале произошла ошибка. На сайте plugable.com/2014/06/23/… нашел другой драйвер, который работал.Это все, что вам нужно: https://github.com/winterheart/broadcom-bt-firmware
В этом хранилище вы можете найти дополнительную информацию и все необходимые драйверы беспроводных карт Broadcom .
Чтобы быть более конкретным, я даю вам инструкции, которые я написал для себя:
Это руководство предназначено для того, чтобы беспроводная / Bluetooth-сетевая сетевая карта Broadcom Corporation BCM43142 802.11b / g / n (версия 01) (идентификатор устройства: 0a5c: 216d) работала в системах Linux (я пробовал ее на Elementary OS 0.4.1 Loki, на основе на Ubuntu 16.04.3 LTS).
Он не может работать для других устройств, но он не должен сильно отличаться от этой процедуры для других устройств Broadcom. Необходимые драйверы Broadcom находятся в этой папке GitHub в формате .hcd.
Введите следующую команду, чтобы узнать, какое имя драйвера ищет ядро при загрузке дисков во время загрузки:
Попробуйте этот, если он ничего не находит:
Результат должен быть примерно таким:
Объяснение: в моем случае ядро ищет файл
BCM.hcd
в каталоге,/lib/firmware/brcm
где ожидаются драйверы Broadcom. Если ядро ищет другое имя драйвера, вы должны переименовать файл драйвера (BCM43142A0-0a5c-216c.hcd
в моем случае для BCM43142 (0a5c: 216d)) в нужное имя ядра.Переместите переименованный драйвер (BCM.hcd) в свой домашний каталог (/ home / YourUsername /) и выполните следующую команду, чтобы переместить его в папку, которую просматривает ядро во время загрузки:
Вы должны использовать соответствующий драйвер в зависимости от вашего устройства и переименовать его, если требуется для ядра.
Перезагрузите компьютер, и он должен работать! * (Вы можете войти
dmesg | grep -i 'bluetooth'
еще раз, чтобы увидеть, был ли загружен драйвер)источник