Broadcom bluetooth driver linux

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Repository for various Broadcom Bluetooth firmware

License

winterheart/broadcom-bt-firmware

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Broadcom Bluetooth firmware for Linux kernel

This package intentended to provide firmware of Broadcom WIDCOMM® Bluetooth devices (including BCM20702, BCM20703, BCM43142 chipsets and other) for Linux kernel. Since February 2017, Broadcom ships their drivers directly to Windows Update service. They can be downloaded here.

Recently several vulnerabilities have been discovered in the Bluetooth stack such as CVE-2018-5383, CVE-2019-9506 (KNOB), CVE-2020-10135 (BIAS) and more. Since Broadcom has stopped active support for its consumer devices, your system may be subject to security risks. You will have to use these devices at your own risk. As a repository maintainer, I cannot provide security fixes.

Check your Linux distribution repositories.

There are autogenerated DEB and RPM packages for RedHat and Debian based distributions.

Detection and manual installation

When you inserting Broadcom Bluetooth device you prefered Linux distribution may not load it properly.

You may list all Bluetooth devices like this:

dmesg | grep -i bluetooth # Shows all Bluetooth driver info dmesg | grep -i bluetooth | grep -i firmware # Shows Bluetooth firmware issues 

The output may look like this:

Bluetooth: hci1: BCM: chip id 63 Bluetooth: hci1: BCM20702A Bluetooth: hci1: BCM20702A1 (001.002.014) build 0000 bluetooth hci1: Direct firmware load for brcm/BCM20702A1-0b05-17cb.hcd failed with error -2 Bluetooth: hci1: BCM: Patch brcm/BCM20702A1-0b05-17cb.hcd not found 

As you can see, you need brcm/BCM20702A1-0b05-17cb.hcd firmware.

Читайте также:  Линукс узнать версию операционной системы

Place required .hcd file to /lib/firmware/brcm and reboot your computer. After reboot you will see that firmware successfully loaded:

Bluetooth: hci1: BCM: chip id 63 Bluetooth: hci1: BCM20702A Bluetooth: hci1: BCM20702A1 (001.002.014) build 0000 Bluetooth: hci1: BCM20702A1 (001.002.014) build 1467 Bluetooth: hci1: Broadcom Bluetooth Device 

Congratulations, now your bluetooth device successfully loaded. Now go to Bluez for futher configuration.

Incorrect names for devices

There may be incorrect naming between presented firmware name and name requested from Linux kernel. For example, system may request BCM4354A2-13d3-3485.hcd but actually this is BCM4356A2-13d3-3485.hcd . This is happens because incorrect naming in Linux kernel. Just rename file to name that need to kernel. Here quick naming convertion:

Original name Requested by Linux Notes
BCM4356A2 BCM4354A2 Fixed in Linux kernel 5.8

Notes about combined WiFi+Bluetooth devices

Some Bluetooth controller (for example, BCM4354 and BCM4356) are integrated to WiFi chipset (this can be BCM43XX 802.11ac Wireless Network Adapter or just simple generic Broadcom PCIE Wireless). These devices requires two kinds of firmware — first for WiFi, and second for Bluetooth. Without WiFi firmware Bluetooth will not initialize and will not work properly. Firmware for WiFi already included to kernel, but you may need to do additional work to place correct NVRAM.

Here example how it can looks (note about brcm/brcmfmac4356-pcie.txt loading — this is your customized NVRAM):

usbcore: registered new interface driver brcmfmac brcmfmac 0000:02:00.0: firmware: direct-loading firmware brcm/brcmfmac4356-pcie.bin brcmfmac 0000:02:00.0: firmware: direct-loading firmware brcm/brcmfmac4356-pcie.txt Bluetooth: hci0: BCM: chip id 101 Bluetooth: hci0: N360-11 Bluetooth: hci0: BCM4354A2 (001.003.015) build 0000 bluetooth hci0: firmware: direct-loading firmware brcm/BCM4354A2-13d3-3485.hcd 

Firmware files are licensed under Broadcom WIDCOMM Bluetooth Software License Agreement. Other parts of project are licensed under standard MIT license.

Источник

Broadcom Bluetooth

По мотивам этой темы решил создать отдельную т.к. блютуз устройства от Broadcom встречаются во многих моделях ноутбуков.

Важным условием работы блютуз от Broadcom, является пропатченный модуль ядра btusb на предмет поддержки Broadcom bluetooth и наличие прошивки(firmware) для вашего устройства. В ядрах с kernel.org я этого патча не обнаружил (может плохо искал). В Ubuntu этот патч имеется. В других дистрибутивах не смотрел.

Уникальную для каждого устройства прошивку можно найти в распакованных драйверах для Windows, в одном из файлов с расширением .hex (назовём его hex-firmware). Hex-firmware необходимо конвертировать в hcd-firmware с помощью утилиты hex2hcd.

Для поиска firmware в распакованных Windows-драйверах, разработал скрипт brcmbtefw. Загрузить можно отсюда.
Скрипт на основе результата lsusb, ищет hex-firmware соответствующий вашему устройству и конвертирует его в формат hcd с помощью утилиты hex2hcd.
Скрипту необходимо передать в качестве параметра имя inf-файла драйверов Broadcom bluetooth для Windows (XP, 7, 8).
Заметил, что на настоящее время, firmware x32 и x64 идентичны.

$ sudo cp hex2hcd /usr/local/bin

где вместо /path/file.inf укажите inf-файл драйверов Broadcom bluetooth для Windows.
В моём случае так:

$ ./brcmbtefw ~/.wine/dosdevices/c:/DRIVERS/WIN/COMBT/Win64/bcbtums-win8x64-brcm.inf

В результате скрипт создаст в домашней директории пользователя файл с расширением hcd (hcd-firmware) вида:
fw-vid_pid.hcd, где вместо vid и pid будут идентификатор производителя и идентификатор продукта вашего устройства полученного от lsusb.

$ sudo cp fw-105b_e065.hcd /lib/firmware

Врезультате после перезагрузки, я получил работающий блютуз.

Читайте также:  Linux hardware info commands

Замечены проблемы:
Иногда блютуз устройство не определяется при включении компьютера.
В dmesg появляются строки:

$ dmesg|grep -i blue . [ 10.363287] Bluetooth: hci0 command 0xfc2e tx timeout . [ 18.366106] Bluetooth: fail to load firmware 

Помогает уход-выход из ждущего или спящего режима. Думаю что это баг ядра.

P.s.: Все действия производились на Xubuntu 12.04.4.

$ uname -a Linux PCBL 3.11.0-19-generic #33~precise1-Ubuntu SMP Wed Mar 12 21:17:09 UTC 2014 i686 i686 i386 GNU/Linux 

Источник

Поиск и установка драйвера на адаптеры Broadcom BT

Данная статья посвящeна установке драйвера на «синезубый» адаптер Broadcom BT.
Сама лицензия Broadcom не позволяет заниматься распростронением драйвера для данного адаптера, поэтому мы соберём его сами.

Где найти?

Нам необходим сам драйвер, который можно скачать по нижеприведённым ссылкам:
первая ссылка
вторая ссылка

B случае, если у приведённых ссылок будут изменены адреса, придётся пользоваться поиском по сайту производителя.

Поиск информации

Oткройте архив в менеджере архивов и найдите файл bcbtums-win8x86-brcm.inf, oткройте его в текстовом редакторе.

Может быть напpимер bcbtums.inf, но все они расположены в директории Win32 или Win64, разрядность не важна.

Используя системную утилиту lsusb, мы можем получить нужную информацию для последующего определения необходимого файла в архиве драйвера.
Предположим, что по запросу , мы узнали, что — 0A5C и — 21D7.
Полный вывод по нашему/вашему адаптеру будет содержать примерно такую строку:

0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0

Запись в файле bcbtums-win8x86-brcm.inf будет иметь формат VID_0A5C&PID_21D7, её-то и нужно вбить в строке поиска по файлу .inf

Если Вы не уверены которым из увиденных устройств является Ваш адаптер BT, используйте команду , тем самым можно получить более детальную информацию.
По выводу этой команды можно узнать ID продукта и вендора.
Итак, мы увидим строку, заканчивающуюся записью .
В таком случае, мы можем произвести поиск по файлу .inf, имея эту информацию.
Секция файла .inf, которая нас интересует, имеет следующие записи:

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

Bingo!!
BCM43142A0_001.001.011.0122.0126.hex — это наше искомое!
Распакуйте из архива именно этот файл.

Конвертация

Далее, нам нужно переконвертировать из формата hex в формат hcd, для этого нам понадобится конвертор hex2hcd.
Скачиваем и устанавливаем:

git clone git://github.com/jessesung/hex2hcd.git cd hex2hcd make

После чего у Вас появится каталог hex2hcd в домашней директории.

Как видите, в названии файла обязательно должны присутствовать ID-шки Вашего адаптера из вывода команды

~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM43142A0-0a5c-21d7.hcd

T.е., команда конвертации будет выглядеть так:

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

Для ядер 4.8+ имя файла прошивки должно иметь следующий вид BCM—.hcd, т.е., в нашем случае это
BCM-0a5c-21d7.hcd

Теперь просто скопируйте сконвертированный файл прошивки с названием в соответствии с версией Вашего ядра в директорию /lib/firmware/brcm.
Eсли имя файла прошивки — BCM43142A0-0a5c-21d7.hcd, то:

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

Важно!!

Для ядер 4.2+ это будет выглядеть как:

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

Для последующих ядер название может опять измениться. Для ядра 5.0 название файла может быть опять BCM43142A0-0a5c-21d7.hcd Правильное название всегда можно узнать выполнив

Читайте также:  Linux nintendo pro controller

Если имя прошивки неверно, то появится ошибка ввода, сообщающая, что файл не найден. В таком случае нужно переименовать файл.
Выключите компьютер и включите снова.

Адаптер подхватит прошивку и соединение будет установлено.

Благодарность Broadcom

Конечно, данная инструкция выглядит немного сложноватой для начинающего linux-user’а, но во всех этих сложностях стоит винить только лишь юристов компании Broadcom.
Большинство производителей оборудования позволяют распространять прошивки в соответствии с лицензиями. А сейчас они запрещают «распространять» свои прошивки, поэтому никто не может легально поставлять уже сконвертированные прошивки для дистрибутивов, включая Ubuntu.

Источник

How to Install Broadcom Bluetooth Driver on Ubuntu 18.04

GNU/Linux Ubuntu 18.04 Installing Broadcom Bluetooth Driver Guide

Hi! The linked Tutorial shows you Step-by-Step How to Install Broadcom Wi-fi/Bluetooth Driver for Ubuntu 18.04 Bionic LTS GNU/Linux.

And to Setup Broadcom Bluetooth Interface on Ubuntu 18.04 it’s enough to Install the Broadcom Wireless Driver.

Step-by-step Broadcom Bluetooth Driver Ubuntu 18.04 GNU/Linux Installation Guide - Featured

Installing Broadcom Bluetooth Driver for Ubuntu 18.04

Showing Ads here is the best solution I found for not embarassing somebody about participating in a #%$Foundation^.

«When the Last Tree has been cut down, the Last Fish caught, the Last River poisoned, only then will we realize that One Cannot Eat Money.»

«No usable Computer exists today with completely Open Software and Hardware (as much as some companies want to Market themselves as such).»

Follow Us

The GNU/Linux Free Software Phylosophy

GNU/Linux Logo

Steve Jobs’ Last Words

Steve Jobs Last Words in the Darkness

«Being a Winner in a Free Computing OS Mission means to adopt a Commercial like Strategy. Transcending Duality in Oneness and so dispensing both Free and Non Free Software. Cause evangelizing Freedom in a Non Free World is like keeping a Trojan Horse. Hallelujah!»

«Using the Money just for buying Stuff and Not Supporting the Free Gift Philosophy is a sign of a Selfish and Narrow Mind.»

What can Save the World from a Blind and Quick Self-destruction.
The Immediate and Humble Mass Conversion to the Spiritual Way!
Because Earth & Nature has been Ravaged without Pity by the Wild and Selfish mass Competition to Win and Shown that U’re someone Better because you got a Lot of fla$hY Power$$$.

«Taking care if somebody is liking, following, or buying is just a serious hidrance on the priceless Way of Creative Freedom.»

Credits

Ganesha

Everlasting Glory to God, Jesus Christ, The Holy Spirit, Ganesha, Shiva, Vishnu, Krisna, Laozi, Buddha, Bodhidharma, Ma Gcig, Hakuin, Ikkyu, Nagarjuna, Tilopa, Naropa, Milarepa, Suhrawardi, St Dismas, St Francesco, St Teresa, St John, St Filippo, Eckehart. All The Holy Divinities, Avatars, Saints, Mystics, and True Spiritual Masters. Because they are in the Eternal Light of Truth & Delight Enlightening a World of Darkness, Nescience, Blindness, Uneasiness and Falsehood!

Источник

Оцените статью
Adblock
detector