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

Где найти?

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

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

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

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

  • Используя системную утилиту lsusb, мы можем получить нужную информацию для последующего определения необходимого файла в архиве драйвера.
    Предположим, что по запросу <lsusb>, мы узнали, что <VID> - 0A5C и <PID> - 21D7.
    Полный вывод по нашему/вашему адаптеру будет содержать примерно такую строку:
    0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0

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

Некоторые устройства не раcпознаются как Broadcom BT в запросе lsusb.

Если Вы не уверены которым из увиденных устройств является Ваш адаптер BT, используйте команду <usb-devices>, тем самым можно получить более детальную информацию.
По выводу этой команды можно узнать ID продукта и вендора.
Итак, мы увидим строку, заканчивающуюся записью <RAMUSB21D7>.
В таком случае, мы можем произвести поиск по файлу .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-шки Вашего адаптера из вывода команды <lsusb>

~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM43142A0-0a5c-21d7.hcd
Для ядер 4.2+ название прошивки должно быть заменено на BCM.hcd

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

~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM.hcd
Для ядер 4.8+ имя файла прошивки должно иметь следующий вид BCM-<VID>-<PID>.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

Для ядер 4.8+ - так:

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

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

dmesg | grep -i blue

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

Просто рестарт не подходит!!

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

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

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

Ссылки