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.