У меня есть bluetooth-гарнитура (Sennheiser MM 550-X), подключенная к моему компьютеру через USB-адаптер bluetooth (Asus USB-BT400). Я использую Ubuntu 14.10. Я хотел бы настроить гарнитуру и как выход (наушники), и как вход (микрофон).
Прежде всего, гарнитура сопрягается с компьютером:
В настройках звука Ubuntu, если я настраиваю гарнитуру в режиме "A2DP", я могу отправить звук с компьютера на гарнитуру. Но настройка источника ввода как гарнитуры переключает режим вывода на HSP/HFP и больше ничего не работает (ни вывод звука, ни микрофон)
Из моих исследований в интернете я понял, что только режим HSP/HFP может заставить микрофон работать. Более того, донгл использует чипсет Broadcom BCM20702A0, и я нашел несколько отчетов об ошибках, связанных с ним, но я не уверен, есть ли еще проблемы с этим чипсетом или нет.
Как заставить микрофон работать?
Спасибо !
Редактировать: добавить вывод lsusb:
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 0d3d:0040 Tangtop Technology Co., Ltd
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0b05:17cb ASUSTek Computer, Inc.
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Edit2: обновление ответа Jeremy31. Моя гарнитура 00:16:94:0F:23:C6
dmesg|хвост:
[35677.706802] usbcore: deregistering interface driver btusb
[35677.709252] Bluetooth: hci0 urb ffff8800d5ec6840 failed to resubmit (2)
[35690.999061] usbcore: registered new interface driver btusb
решение1
Проблема с драйвером btusb и asus dongle USB-BT400. Для этого dongle нужна прошивка. Чтобы получить прошивку, скачайте последнюю версию драйвера windows здесь (раздел Bluetooth): http://support.asus.com/download.aspx?SLanguage=en&p=1&s=45&m=MAXIMUS+VI+FORMULA&os=30&hashedid=Dbn0i1Jz1yusKO7u
Извлеките файл .zip. Существует много прошивок, поэтому нам нужно найти нужную. Отредактируйте файл bcbtums-win7x86-brcm.inf (например), найдите раздел для вашего донгла, выполнив поиск идентификатора вашего продукта usb в файле (без учета регистра). Раздел ссылается на файл .hex, в моем случае "BCM20702A1_001.002.014.1315.1347.hex".
Загрузите hex2hcd здесь:https://github.com/jessesung/hex2hcd Скомпилируйте его и создайте файл .hcd из ранее идентифицированного файла .hex. Теперь у нас есть прошивка.
Похоже, что драйвер btusb не пытается загрузить прошивку для этого донгла, что, вероятно, является ошибкой (?). Установите linux-source-3.16.0, чтобы получить исходники. В btusb.c сделайте следующее небольшое изменение:
@@ -106,7 +106,7 @@ static const struct usb_device_id btusb_table[] = {
{ USB_DEVICE(0x0489, 0xe042) },
{ USB_DEVICE(0x04ca, 0x2003) },
{ USB_DEVICE(0x0b05, 0x17b5) },
- { USB_DEVICE(0x0b05, 0x17cb) },
+ { USB_DEVICE(0x0b05, 0x17cb), .driver_info = BTUSB_BCM_PATCHRAM },
{ USB_DEVICE(0x413c, 0x8197) },
/* Foxconn - Hon Hai */
Скомпилируйте модули (мне пришлось скомпилировать ядро перед этим, чтобы обойти «Ошибку формата Exec» при загрузке нового модуля). Сделайте резервную копию оригинального модуля и перезапишите его новым btusb.ko (в моем случае он был в /lib/modules/3.16.0-33-generic/kernel/drivers/bluetooth/btusb.ko)
Поместите файл .hcd в: /lib/firmware/brcm/BCM20702A0-0b05-17cb.hcd (при необходимости измените имя).
Теперь мы можем перезагрузить драйвер btusb:
modprobe -r btusb; модпробе btusb
dmesg должен показать строку вроде:
[ 52.121571] Bluetooth: hci0: BCM: прошивка hci_ver=06 hci_rev=1543 lmp_ver=06 lmp_subver=220e
Теперь профиль HSP/HFP работает! Это значит, что гарнитуру можно использовать как для ввода, так и для вывода.
решение2
Чтобы получить прошивку
wget https://www.dropbox.com/s/hjd2uvnkki5i0f8/fw-0b05_17cb.hcd
sudo cp fw-0b05_17cb.hcd /lib/firmware/
sudo cp fw-0b05_17cb.hcd /lib/firmware/brcm/BCM20702A0-0b05-17cb.hcd
sudo modprobe -r btusb
sudo modprobe btusb
pactl load-module module-bluetooth-discover
Затем посмотрите, показывает ли dmesg загрузку прошивки.
dmesg | tail
Тогда вы сможете попробовать свою гарнитуру.
Новое редактирование: Некоторое время назад прошивка была загружена наhttps://github.com/winterheart/broadcom-bt-firmware/tree/master/brcm
Найдите свою прошивку в списке, щелкните правой кнопкой мыши по названию и выберите «Копировать адрес/расположение ссылки», затем в терминале cd /lib/firmware/brcm
введите sudo wget
и используйте Ctrl + Shift + V, чтобы вставить адрес ссылки.