6 votes

Comment utiliser un micro-casque bluetooth dans Ubuntu ?

J'ai une oreillette bluetooth (Sennheiser MM 550-X) connectée à mon ordinateur via un dongle USB bluetooth (Asus USB-BT400). J'utilise Ubuntu 14.10. Je voudrais configurer le casque à la fois comme sortie (casque) et comme source d'entrée (le micro).

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

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

D'après mes recherches sur Internet, j'ai compris que seul le mode HSP/HFP permet de faire fonctionner le micro. De plus, le dongle utilise un chipset Broadcom BCM20702A0 et j'ai trouvé quelques rapports de bugs à ce sujet mais je ne suis pas sûr qu'il y ait encore des problèmes ou non 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 de la réponse de Jeremy31. Mon casque 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

2voto

Jeremy31 Points 11690

Pour obtenir le micrologiciel

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 voyez si dmesg montre que le firmware est chargé.

dmesg | tail

Ensuite, vous devriez être en mesure d'essayer votre casque.

Nouvelle édition : Depuis un certain temps maintenant, le firmware a été téléchargé sur https://github.com/winterheart/broadcom-bt-firmware/tree/master/brcm Trouvez votre firmware dans la liste, faites un clic droit sur le nom et choisissez copier l'adresse/l'emplacement du lien, puis dans le terminal cd /lib/firmware/brcm puis tapez sudo wget puis utiliser ctrl + shift + v pour coller l'adresse du lien

2voto

unbeatable101 Points 372

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

Extrayez le fichier .zip. Il existe de nombreux firmwares, il faut donc trouver le bon. Editez le fichier bcbtums-win7x86-brcm.inf (par exemple), localisez la section pour votre dongle en cherchant votre ID 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 identifié précédemment. Maintenant nous avons le firmware.

Il semble que le pilote btusb n'essaie pas de charger le firmware pour 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 */

Compiler les modules (j'ai dû compiler le noyau avant pour contourner une "Exec format error" lors du chargement du nouveau module). Sauvegarder le module original et l'écraser avec le nouveau btusb.ko (dans mon cas il était dans /lib/modules/3.16.0-33-generic/kernel/drivers/bluetooth/btusb.ko)

Mettez 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 :

[ 52.121571] Bluetooth : hci0 : BCM : f 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.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X