- Broadcom Bluetooth
- Поиск и установка драйвера на адаптеры Broadcom BT
- Где найти?
- Поиск информации
- Конвертация
- Важно!!
- Благодарность Broadcom
- Saved searches
- Use saved searches to filter your results more quickly
- License
- winterheart/broadcom-bt-firmware
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- How to Install Broadcom Bluetooth Driver on Ubuntu 18.04
- GNU/Linux Ubuntu 18.04 Installing Broadcom Bluetooth Driver Guide
- Installing Broadcom Bluetooth Driver for Ubuntu 18.04
- Follow Us
- The GNU/Linux Free Software Phylosophy
- Steve Jobs’ Last Words
- Credits
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
Врезультате после перезагрузки, я получил работающий блютуз.
Замечены проблемы:
Иногда блютуз устройство не определяется при включении компьютера.
В 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 Правильное название всегда можно узнать выполнив
Если имя прошивки неверно, то появится ошибка ввода, сообщающая, что файл не найден. В таком случае нужно переименовать файл.
Выключите компьютер и включите снова.
Адаптер подхватит прошивку и соединение будет установлено.
Благодарность Broadcom
Конечно, данная инструкция выглядит немного сложноватой для начинающего linux-user’а, но во всех этих сложностях стоит винить только лишь юристов компании Broadcom.
Большинство производителей оборудования позволяют распространять прошивки в соответствии с лицензиями. А сейчас они запрещают «распространять» свои прошивки, поэтому никто не может легально поставлять уже сконвертированные прошивки для дистрибутивов, включая Ubuntu.
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.
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.
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
Steve Jobs’ Last Words
«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
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!