Como usar um microfone de fone de ouvido bluetooth no Ubuntu?

4

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

Antes de tudo, o fone de ouvido é emparelhado com o computador:

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 da saída para HSP / HFP e nada funciona mais (nem saída de som ou microfone)

Da minha pesquisa na internet, entendo que somente o modo HSP / HFP pode fazer o microfone funcionar. Além disso, o dongle usa um chipset Broadcom BCM20702A0 e eu encontrei alguns relatórios de bugs sobre isso, 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

Editar2: atualize para a resposta do Jeremy31. Meu fone de ouvido é 00: 16: 94: 0F: 23: C6

dmesg | tail:

[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
    
por user368507 04.04.2015 / 01:17

2 respostas

1

O problema é com o driver btusb e o asus dongle USB-BT400. Este dongle precisa de um firmware. Para obter o firmware, baixe o driver mais recente do Windows aqui (seção Bluetooth): link

Extraia o arquivo .zip. Há muitos firmwares, então temos que encontrar o caminho certo. 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".

Faça o download do hex2hcd aqui: link Compile e crie um arquivo .hcd a partir do arquivo .hex identificado anteriormente. Agora nós temos o firmware.

Parece que o driver btusb não tenta carregar o firmware desse dongle, o que provavelmente é um bug (?). Instale o 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 (eu tive que compilar o kernel antes de contornar um "erro de formato Exec" ao carregar o novo módulo). Faça o backup do módulo original e sobrescreva-o com o novo btusb.ko (no meu caso ele 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

O 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! O que significa que o fone de ouvido pode ser usado em entrada e saída.

    
por user368507 04.04.2015 / 21:25
1

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 firmware sendo carregado

dmesg | tail

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

    
por Jeremy31 04.04.2015 / 11:00