web-dev-qa-db-fra.com

Comment utiliser un micro-casque Bluetooth dans Ubuntu?

Un casque Bluetooth (Sennheiser MM 550-X) est connecté à mon ordinateur via un dongle Bluetooth USB (Asus USB-BT400). J'utilise Ubuntu 14.10. Je souhaite configurer le casque en sortie (casque) et source d’entrée (le micro).

Tout d’abord, le micro-casque se couple avec l’ordinateur: enter image description here

Dans les paramètres audio d'Ubuntu, si je configure le casque en mode "A2DP", je peux envoyer le son de l'ordinateur au casque. Mais la configuration de la source d’entrée en tant que mon casque bascule le mode de sortie en HSP/HFP et rien ne fonctionne plus (ni sortie audio ni micro)

D'après mes recherches sur Internet, je comprends que seul le mode HSP/HFP peut faire fonctionner le micro. De plus, le dongle utilise un chipset Broadcom BCM20702A0 et j’ai trouvé des rapports de bogue à ce sujet, mais je ne suis pas sûr qu’il y ait encore des problèmes ou pas avec ce chipset.

Comment faire fonctionner le micro?

merci !

Edit: ajouter la sortie 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: mise à jour vers Jeremy31 answer. Mon oreillette est 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
4
user368507

Le problème vient du pilote BTUB et du dongle USB-BT400. Ce dongle nécessite un firmware. Pour obtenir le firmware, téléchargez le dernier pilote Windows ici (section Bluetooth): http://support.asus.com/download.aspx?SLanguage=fr&p=1&s=45&m=MAXIMUS+VI+FORMULA&os=30&hashedid= Dbn0i1Jz1yusKO7

Extrayez le fichier .Zip. Il existe de nombreux firmwares, nous devons donc trouver le bon. Editez le fichier bcbtums-win7x86-brcm.inf (par exemple), localisez la section de votre clé en recherchant votre identifiant de produit USB dans le fichier (insensible à la casse). La section fait référence à un fichier .hex, dans mon cas "BCM20702A1_001.002.014.1315.1347.hex".

Téléchargez hex2hcd ici: https://github.com/jessesung/hex2hcd Compilez-le et créez un fichier .hcd à partir du fichier .hex précédemment identifié. Maintenant nous avons le firmware.

Il semble que le pilote btusb n'essaie pas de charger le firmware de ce dongle, ce qui est probablement un bug (?). Installez linux-source-3.16.0 pour obtenir les sources. Dans btusb.c, faites cette petite modification:

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

Compilez les modules (je devais compiler le noyau avant de contourner une "erreur de format Exec" lors du chargement du nouveau module). Sauvegardez le module d'origine et écrasez-le avec le nouveau fichier btusb.ko (dans mon cas, il se trouvait dans /lib/modules/3.16.0-33-generic/kernel/drivers/bluetooth/btusb.ko)

Placez le fichier .hcd dans: /lib/firmware/brcm/BCM20702A0-0b05-17cb.hcd (adaptez le nom si nécessaire).

Maintenant nous pouvons recharger le pilote btusb:

modprobe -r btusb; modprobe btusb

dmesg devrait afficher une ligne comme celle-ci:

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

Maintenant, le profil HSP/HFP fonctionne! Cela signifie que le casque peut être utilisé en entrée et en sortie.

1
user368507

Pour obtenir le 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

Puis voir si dmesg montre le firmware en cours de chargement

dmesg | tail

Ensuite, vous devriez être capable d'essayer votre casque

1
Jeremy31