Bluetooth не работает с драйвером BCM 43142 в ubuntu 16.04 [dубликат]

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

Как это исправить?

30
задан 21 February 2017 в 14:26

7 ответов

Вам необходимо установить прошивку.

Распространение прошивки Broadcom не разрешено лицензией Broadcom. Так что вам нужно получить это самостоятельно. Это немного сложный процесс, но нет другого законного способа.

Загрузите драйвер Broadcom Windows 8 или ИЗ ЗДЕСЬ.

Если устройство не указано в этих драйверах, вам нужно найти его более новую версию.

Некоторые производители ноутбуков имеют Bluetooth-драйверы на своих сайтах, но некоторые из них не могут быть недоступны. Так что это какой-то квест. Я мог бы скачать последние версии драйверов Broadcom со своего сайта, но его больше нет.

Загрузите драйвер Broadcom Windows 8 или ИЗ ЗДЕСЬ. Найти этот файл для VID_0A5C & PID_21D7. Эти цифры относятся к вашему выходу lsusb 0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.

legal Некоторые устройства не признаны Broadcom BT в lsusb. Если вы не знаете, какой из них является вашим устройством BT, запустите команду usb-devices, он предоставит более подробную информацию. Там вы можете найти идентификаторы продуктов и поставщиков.

Вы увидите строку, заканчивающуюся RAMUSB21D7

. Поиск этого файла для RAMUSB21D7. Вы найдете там раздел:

[RAMUSB21D7.CopyList] bcbtums.sys btwampfl.sys BCM43142A0_001.001.011.0122.0126.hex

Это то, что мы ищем. Имя файла прошивки. RAMUSB21D7

Искать этот файл для VID_0A5C & PID_21D7. Эти цифры относятся к вашему выходу lsusb 0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.

Поиск этого файла для VID_0A5C & PID_21D7. Эти цифры взяты из вашего выхода lsusb

git clone git://github.com/jessesung/hex2hcd.git cd hex2hcd make Вы получите папку 0A5C в своем домашнем каталоге. Поместите файл прошивки в домашнюю папку и запустите ~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM43142A0-0a5c-21d7.hcd . Вы видите, что 0a5c-21d7 является идентификатором вашего адаптера от lsusb.

Загрузите инструмент для этого

~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM.hcd

Важно: для ядер 4.2+ вы вызываете этот файл как BCM.hcd.

Найти этот файл для VID_0A5C & PID_21D7. Эти цифры взяты из вашего выхода lsusb

git clone git://github.com/jessesung/hex2hcd.git cd hex2hcd make Вы получите папку 0A5C в своем домашнем каталоге.

Для ядер 4.8+ имя файл должен быть BCM-<VID>-<PID>.hcd, например BCM-0a5c-21d7.

sudo cp ~/BCM.hcd /lib/firmware/brcm

Для ядер 4.2 +

sudo cp ~/BCM-0a5c-21d7.hcd /lib/firmware/brcm

Для ядер 4.8 +

Вы получите папку 0A5C в своем домашнем каталоге.

0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.

Важно : , если имя файла верное, запустив dmesg | grep -i blue. Появится сообщение об ошибке, если файл не найден.

Выключите и снова включите компьютер. Неправильно перезагрузитесь!

Ваш адаптер получит прошивку, и Bluetooth должен работать.

Все это выглядит сложным, но для этого виноваты адвокаты Broadcom.

Это позволяет разработчикам linux включать прошивку в дистрибутивы.

61
ответ дан 18 July 2018 в 03:56

Вам необходимо установить прошивку.

Распространение прошивки Broadcom не разрешено лицензией Broadcom. Так что вам нужно получить это самостоятельно. Это немного сложный процесс, но нет другого законного способа.

Загрузите драйвер Broadcom Windows 8 или ИЗ ЗДЕСЬ.

Если устройство не указано в этих драйверах, вам нужно найти его более новую версию.

Некоторые производители ноутбуков имеют Bluetooth-драйверы на своих сайтах, но некоторые из них не могут быть недоступны. Так что это какой-то квест. Я мог бы скачать последние версии драйверов Broadcom со своего сайта, но его больше нет.

Загрузите драйвер Broadcom Windows 8 или ИЗ ЗДЕСЬ. Найти этот файл для VID_0A5C & PID_21D7. Эти цифры относятся к вашему выходу lsusb 0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.

legal Некоторые устройства не признаны Broadcom BT в lsusb. Если вы не знаете, какой из них является вашим устройством BT, запустите команду usb-devices, он предоставит более подробную информацию. Там вы можете найти идентификаторы продуктов и поставщиков.

Вы увидите строку, заканчивающуюся RAMUSB21D7

. Поиск этого файла для RAMUSB21D7. Вы найдете там раздел:

[RAMUSB21D7.CopyList] bcbtums.sys btwampfl.sys BCM43142A0_001.001.011.0122.0126.hex

Это то, что мы ищем. Имя файла прошивки. RAMUSB21D7

Искать этот файл для VID_0A5C & PID_21D7. Эти цифры относятся к вашему выходу lsusb 0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.

Поиск этого файла для VID_0A5C & PID_21D7. Эти цифры взяты из вашего выхода lsusb

git clone git://github.com/jessesung/hex2hcd.git cd hex2hcd make Вы получите папку 0A5C в своем домашнем каталоге. Поместите файл прошивки в домашнюю папку и запустите ~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM43142A0-0a5c-21d7.hcd . Вы видите, что 0a5c-21d7 является идентификатором вашего адаптера от lsusb.

Загрузите инструмент для этого

~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM.hcd

Важно: для ядер 4.2+ вы вызываете этот файл как BCM.hcd.

Найти этот файл для VID_0A5C & PID_21D7. Эти цифры взяты из вашего выхода lsusb

git clone git://github.com/jessesung/hex2hcd.git cd hex2hcd make Вы получите папку 0A5C в своем домашнем каталоге.

Для ядер 4.8+ имя файл должен быть BCM-<VID>-<PID>.hcd, например BCM-0a5c-21d7.

sudo cp ~/BCM.hcd /lib/firmware/brcm

Для ядер 4.2 +

sudo cp ~/BCM-0a5c-21d7.hcd /lib/firmware/brcm

Для ядер 4.8 +

Вы получите папку 0A5C в своем домашнем каталоге.

0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.

Важно : , если имя файла верное, запустив dmesg | grep -i blue. Появится сообщение об ошибке, если файл не найден.

Выключите и снова включите компьютер. Неправильно перезагрузитесь!

Ваш адаптер получит прошивку, и Bluetooth должен работать.

Все это выглядит сложным, но для этого виноваты адвокаты Broadcom.

Это позволяет разработчикам linux включать прошивку в дистрибутивы.

61
ответ дан 24 July 2018 в 17:58

Это все, что вам нужно: https://github.com/winterheart/broadcom-bt-firmware

В этом репозитории вы можете найти дополнительную информацию и https://github.com /winterheart/broadcom-bt-firmware.

Чтобы быть более конкретным, я даю вам инструкции, которые я написал для себя:

Этот учебник предназначен для создания беспроводной / беспроводной сети Broadcom Corporation BCM43142 802.11b / g / n (rev 01) (идентификатор устройства: 0a5c: 216d), работающей в системах Linux (я попробовал это на элементарной ОС 0.4.1 Loki на базе Ubuntu 16.04.3 LTS).

Он не может работать для других устройств, но он не должен сильно отличаться от этой процедуры для других устройств Broadcom. Необходимые драйверы Broadcom находятся в этой папке репозитория GitHub в формате .hcd.

Введите следующую команду, чтобы узнать, какое имя драйвера является ядром, которое ищет при загрузке дисков при загрузке: dmesg | grep -i 'firmware load' Попробуйте это, если он ничего не находит: dmesg | grep -i 'bluetooth' Результат должен быть примерно таким: bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2 Объяснение: в моем случае ядро ​​ищет файл BCM.hcd в каталоге /lib/firmware/brcm, где ожидается драйвер Broadcom. Если ядро ​​ищет другое имя драйвера, вы должны переименовать файл драйвера (BCM43142A0-0a5c-216c.hcd в моем случае для BCM43142 (0a5c: 216d)) на требуемое имя ядром. Переместите переименованный драйвер (BCM.hcd) в домашний каталог (/ home / YourUsername /) и выполните следующую команду, чтобы переместить его в папку, в которой находится ядро ​​во время загрузки: sudo mv ~/BCM.hcd /lib/firmware/brcm Вы должны использовать соответствующий драйвер в зависимости от вашего устройства и переименовать его, если требуется для ядра. Перезагрузите компьютер и он должен работать! * (Вы можете снова ввести dmesg | grep -i 'bluetooth', чтобы узнать, был ли загружен драйвер)
1
ответ дан 18 July 2018 в 03:56

Вот проект, целью которого является автоматизация процесса: https://github.com/winterheart/broadcom-bt-firmware

скопируйте BCM в правый каталог / имя в зависимости от Ядро (как описано выше).

В 4.8 Мне не нужна перезагрузка, просто в терминале:

sudo modprobe -r btusb sudo modprobe btusb dmesg | grep -i blu

должен показать, загружен ли он. Убедитесь, что идентификатор оборудования соответствует файлу. Его можно найти с помощью:

lsusb

, который показывает это на моем Lenovo (только эта строка):

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

Надеюсь, что это поможет:)

11
ответ дан 18 July 2018 в 03:56

Это все, что вам нужно: https://github.com/winterheart/broadcom-bt-firmware

В этом репозитории вы можете найти дополнительную информацию и https://github.com /winterheart/broadcom-bt-firmware.

Чтобы быть более конкретным, я даю вам инструкции, которые я написал для себя:

Этот учебник предназначен для создания беспроводной / беспроводной сети Broadcom Corporation BCM43142 802.11b / g / n (rev 01) (идентификатор устройства: 0a5c: 216d), работающей в системах Linux (я попробовал это на элементарной ОС 0.4.1 Loki на базе Ubuntu 16.04.3 LTS).

Он не может работать для других устройств, но он не должен сильно отличаться от этой процедуры для других устройств Broadcom. Необходимые драйверы Broadcom находятся в этой папке репозитория GitHub в формате .hcd.

Введите следующую команду, чтобы узнать, какое имя драйвера является ядром, которое ищет при загрузке дисков при загрузке: dmesg | grep -i 'firmware load' Попробуйте это, если он ничего не находит: dmesg | grep -i 'bluetooth' Результат должен быть примерно таким: bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2 Объяснение: в моем случае ядро ​​ищет файл BCM.hcd в каталоге /lib/firmware/brcm, где ожидается драйвер Broadcom. Если ядро ​​ищет другое имя драйвера, вы должны переименовать файл драйвера (BCM43142A0-0a5c-216c.hcd в моем случае для BCM43142 (0a5c: 216d)) на требуемое имя ядром. Переместите переименованный драйвер (BCM.hcd) в домашний каталог (/ home / YourUsername /) и выполните следующую команду, чтобы переместить его в папку, в которой находится ядро ​​во время загрузки: sudo mv ~/BCM.hcd /lib/firmware/brcm Вы должны использовать соответствующий драйвер в зависимости от вашего устройства и переименовать его, если требуется для ядра. Перезагрузите компьютер и он должен работать! * (Вы можете снова ввести dmesg | grep -i 'bluetooth', чтобы узнать, был ли загружен драйвер)
1
ответ дан 24 July 2018 в 17:58

Вот проект, целью которого является автоматизация процесса: https://github.com/winterheart/broadcom-bt-firmware

скопируйте BCM в правый каталог / имя в зависимости от Ядро (как описано выше).

В 4.8 Мне не нужна перезагрузка, просто в терминале:

sudo modprobe -r btusb sudo modprobe btusb dmesg | grep -i blu

должен показать, загружен ли он. Убедитесь, что идентификатор оборудования соответствует файлу. Его можно найти с помощью:

lsusb

, который показывает это на моем Lenovo (только эта строка):

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

Надеюсь, что это поможет:)

11
ответ дан 24 July 2018 в 17:58
  • 1
    В моем случае (UtechSmart USB Bluetooth 4.0 Device ID: 0a5c: 21e8) загружены драйверы Winterheart, но hcitool dev все еще не отображали никаких устройств, и в syslog произошла ошибка. Найден еще один драйвер в plugable.com/2014/06/23/… , который действительно работал. – Greg Bray 3 December 2017 в 02:30

Это все, что вам нужно: https://github.com/winterheart/broadcom-bt-firmware

В этом репозитории вы можете найти дополнительную информацию и все драйверы беспроводной карты Broadcom необходимы .


Чтобы быть более конкретными, я даю вам инструкции, которые я написал для себя:

Это руководство предназначено для создания беспроводной / bluetooth network card Broadcom Corporation BCM43142 802.11b / g / n (rev 01) (ID устройства: 0a5c: 216d), работающий в системах Linux (я попробовал это на элементарной ОС 0.4.1 Loki на базе Ubuntu 16.04.3 LTS).

Он не может работать для других устройств, но он не должен сильно отличаться от этой процедуры для других устройств Broadcom. Необходимые драйверы Broadcom находятся в этой папке reposity GitHub в формате .hcd.

  1. Введите следующую команду, чтобы узнать, какое имя драйвера является ядром, которое ищет при загрузке дисков при загрузке:
    dmesg | grep -i 'firmware load'
    
    Попробуйте это, если он ничего не найдет:
    dmesg | grep -i 'bluetooth'
    
    Результат должен быть примерно таким:
    bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2
    
    Объяснение: в моем случае ядро ​​ищет файл BCM.hcd в каталоге /lib/firmware/brcm, где ожидаются драйверы Broadcom. Если ядро ​​ищет другое имя драйвера, вы должны переименовать файл драйвера (BCM43142A0-0a5c-216c.hcd в моем случае для BCM43142 (0a5c: 216d)) в нужное имя ядром.
  2. Переместить переименованную драйвер (BCM.hcd) в ваш домашний каталог (/ home / YourUsername /) и выполните следующую команду, чтобы переместить его в папку, в которой ядро ​​смотрит во время загрузки:
    sudo mv ~/BCM.hcd /lib/firmware/brcm
    
    Вы должны использовать соответствующий драйвер в зависимости от вашего устройство и переименуйте его, если он запрошен для ядра.
  3. Перезагрузите компьютер, и он должен работать! * (вы можете снова ввести dmesg | grep -i 'bluetooth', чтобы узнать, был ли загружен драйвер)
1
ответ дан 31 July 2018 в 21:01

Другие вопросы по тегам:

Похожие вопросы: