Это старая версия документа.


Данная статья посвящ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

Всегда можно проверить корректность имени прошивки, запустив dmesg

dmesg | grep -i blue

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

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

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

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

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

Ссылки