Como usar um microfone fone de ouvido bluetooth no Ubuntu?

Como usar um microfone fone de ouvido bluetooth no Ubuntu?

Eu tenho um fone de ouvido bluetooth (Sennheiser MM 550-X) conectado ao meu computador através de um dongle Bluetooth USB (Asus USB-BT400). Estou executando o Ubuntu 14.10. Gostaria de configurar o fone de ouvido como saída (fone de ouvido) e fonte de entrada (microfone).

Em primeiro lugar, o fone de ouvido é emparelhado com o computador: insira a descrição da imagem aqui

Nas configurações de som do Ubuntu, se eu configurar o fone de ouvido no modo "A2DP", posso enviar o som do computador para o fone de ouvido. Mas configurar a fonte de entrada como meu fone de ouvido muda o modo de saída para HSP/HFP e nada funciona mais (nem saída de som ou microfone)

Pela minha pesquisa na internet, entendo que apenas o modo HSP/HFP pode fazer o microfone funcionar. Além disso, o dongle usa um chipset Broadcom BCM20702A0 e encontrei alguns relatórios de bugs sobre ele, mas não tenho certeza se ainda há problemas ou não com este chipset.

Como fazer o microfone funcionar?

obrigado !

Editar: adicione saída de 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: atualize para a resposta Jeremy31. Meu fone de ouvido é 00:16:94:0F:23:C6

dmesg|cauda:

[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

Responder1

O problema está no driver btusb e no dongle asus USB-BT400. Este dongle precisa de um firmware. Para obter o firmware, baixe o driver mais recente do Windows aqui (seção Bluetooth): http://support.asus.com/download.aspx?SLanguage=en&p=1&s=45&m=MAXIMUS+VI+FORMULA&os=30&hashedid=Dbn0i1Jz1yusKO7u

Extraia o arquivo .zip. Existem muitos firmwares, então temos que encontrar o correto. Edite o arquivo bcbtums-win7x86-brcm.inf (por exemplo), localize a seção do seu dongle pesquisando o ID do produto usb no arquivo (sem distinção entre maiúsculas e minúsculas). A seção faz referência a um arquivo .hex, no meu caso "BCM20702A1_001.002.014.1315.1347.hex".

Baixe hex2hcd aqui:https://github.com/jessesung/hex2hcd Compile-o e crie um arquivo .hcd a partir do arquivo .hex identificado anteriormente. Agora temos o firmware.

Parece que o driver btusb não tenta carregar o firmware deste dongle, o que provavelmente é um bug (?). Instale linux-source-3.16.0 para obter as fontes. Em btusb.c faça esta pequena modificação:

@@ -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 */

Compile os módulos (tive que compilar o kernel antes para contornar um "erro de formato Exec" ao carregar o novo módulo). Faça backup do módulo original e substitua-o pelo novo btusb.ko (no meu caso estava em /lib/modules/3.16.0-33-generic/kernel/drivers/bluetooth/btusb.ko)

Coloque o arquivo .hcd em: /lib/firmware/brcm/BCM20702A0-0b05-17cb.hcd (adapte o nome, se necessário).

Agora podemos recarregar o driver btusb:

modprobe -r btusb; modprobe btusb

dmesg deve mostrar uma linha como:

[52.121571] Bluetooth: hci0: BCM: firmware hci_ver = 06 hci_rev = 1543 lmp_ver = 06 lmp_subver = 220e

Agora o perfil HSP/HFP está funcionando! Ou seja, o fone de ouvido pode ser usado na entrada e na saída.

Responder2

Para obter o firmware

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

Então veja se o dmesg mostra o firmware sendo carregado

dmesg | tail

Então você poderá experimentar seu fone de ouvido

Nova edição: já faz algum tempo que o firmware foi carregado parahttps://github.com/winterheart/broadcom-bt-firmware/tree/master/brcm Encontre seu firmware na lista, clique com o botão direito no nome e escolha copiar endereço/local do link, depois no terminal cd /lib/firmware/brcmdigite sudo wgete use ctrl + shift + v para colar o endereço do link

informação relacionada