Afin de pouvoir me connecter à des périphériques ne supportant que le Bluetooth LE 4.0, j’ai décidé de brancher un dongle prenant cette norme en charge sur mon MacBook Pro fin 2008 (MacBookPro5,1). Ce dernier n’étant pas compatible BT 4.0, vous allez voir, c’est un petit parcours du combattant pour le faire fonctionner.
Le dongle
J’ai utilisé le dongle, décrit dans un précédent article, qui m’a permis de connecter mon Raspberry Pi à mon Flower Power de Parrot.
Il porte la référence : CSR8510 A10
Vous pouvez vous le procurer pour 5 € sur eBay. Il est également en vente sur Adafruit pour ~ $10 et vous pourrez probablement le trouver sur Amazon pour un prix similaire.
Vu ses dimensions très modestes (cfr. photo), il sera possible de le laisser connecté directement sur l’un des ports USB du Mac.
Identifier le dongle
On va tout d’abord brancher le dongle sur l’un des ports USB ou sur un hub alimenté branché au Mac.
Dans > À propos de ce Mac > Plus d’infos… > Rapport système… > Matériel > USB :
Vous devriez retrouver le dongle sous le nom : CSR8510 A10.
Dans le cadre en bas à droite nous allons noter l’Identifiant du produit (0x0001) et l’Identifiant du fournisseur (0x0a12).
Convertir les identifiants en décimal
On va ouvrir la Calculette : Spotlight > « Calculette » :
On va passer la Calculette en mode scientifique : Présentation > Programmeur
On va sélectionner le mode hexadécimal (Touche 16), entrer l’Identifiant fournisseur (0xa12) et cliquer ensuite sur le mode décimal (Touche 10).
Puis, on répète l’opération pour l’Identifiant du produit
Dans notre exemple les 2 conversions donneront :
NB: Certains zéros inutiles peuvent disparaître.
Edit 14/11/2020 :
Dans les commentaires, Charles-Edouard Ruault rappelle qu’à partir de El Capitan, la SIP (System Integrity Protection) empêche de modifier les fichiers système.
Il faut donc démarrer le mac en mode réparation (au boot appuyer sur cmd + R) puis ouvrir le terminal et exécuter « csrutil disable ».
On peut ensuite rebooter et éditer le plist comme indiqué.
Une fois cela fait, rebooter en mode réparation à nouveau et depuis le terminal réactiver SIP avec « csrutil enable ».
Ajouter la prise en charge du dongle
À ce stade, le dongle est repéré par le système, mais l’OS ne sait pas quel driver il doit utiliser pour le faire fonctionner. Nous allons donc lui indiquer comment le trouver. Heureusement, dans le cas du CSR8510 A10 (Cambridge Silicon Radio), le driver est inclus dans OS X.
Nous allons donc éditer ce fichier : /System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/CSRBluetoothHostControllerUSBTransport.kext/Contents/Info.plist
On ouvre le Terminal :
Et on y colle ceci (sans le $ qui précède):
$ sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/CSRBluetoothHostControllerUSBTransport.kext/Contents/Info.plist
Validez et entrez votre mot de passe.
TextEdit va alors s’ouvrir avec les droits administrateur.
Repérez-vous dans le fichier et collez le bloc de texte (en bleu sur l’image) qui est ci-dessous :
<key>CSRUSBBluetoothHCIController</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.iokit.CSRBluetoothHostControllerUSBTransport</string> <key>IOClass</key> <string>CSRBluetoothHostControllerUSBTransport</string> <key>IOProviderClass</key> <string>IOUSBDevice</string> <key>idProduct</key> <integer>1</integer> <key>idVendor</key> <integer>2578</integer> </dict>
Les valeurs en vert sont celles que nous avons trouvé à l’étape précédente.
Enregistrez et quittez TextEdit.
Attention !!! TextEdit est ouvert en mode administrateur. Ne faites pas de bêtises !!! Il s’agit d’un fichier du système…
Activer le dongle
En principe, en redémarrant votre Mac, le dongle devrait être pris en charge.
Si ce n’était pas le cas, vous devrez forcer le système à l’utiliser.
Pour cela, vous aurez besoin de l’application Bluetooth Explorer que vous pourrez télécharger gratuitement sur le site d’Apple à cette adresse : http://developer.apple.com/downloads/index.action.
Vous aurez peut-être besoin de vous enregistrer pour procéder au téléchargement.
Téléchargez le fichier Hardware IO Tools for Xcode 6.3 ou plus récent et ouvrez-le.
Copiez le fichier Bluetooth Explorer.app dans votre dossier Applications.
Une fois copié, exécutez le fichier.
Dans le menu Tools, sélectionnez HCI Controller Selector.
Dans le menu déroulant, sélectionnez le dongle adéquat et cliquez sur Activate.
Voilà, ça y est… Le dongle Bluetooth LE 4.0 devrait fonctionner.
Activer le mode HCI
Si le dongle ne fonctionne pas ou s’il n’est pas reconnu par le Mac, il est possible qu’il ne démarre pas en mode HCI.
Voici la procédure – sous Windows – à suivre pour le configurer dans ce mode :
Pour changer le mode de démarrage du dongle :
Finalement, démarrer OS X avec le dongle branché.
Après ces modifications, le dongle Bluetooth démarrera chaque fois en mode HCI.
Références
http://www.atpeaz.com/index.php/2012/using-unsupported-bluetooth-4-0-usb-dongle-with-os-x/
http://www.geekguides.co.uk/414/how-to-select-a-bluetooth-adapter-in-os-x/
4 ans ago ·
Merci pour cet article très utile. Un petit ajout pour que cela fonctionne à partir de El Capitan. A cause de la protection SIP on ne peut pas éditer le fichier plist en question.
Il faut donc démarrer le mac en mode réparation (au boot appuyer sur cmd-R) puis ouvrir le terminal et exécuter « csrutil disable ».
On peut ensuite rebooter et éditer le plist comme indiqué.
Une fois cela fait, rebooter en mode réparation à nouveau et depuis le terminal réactiver SIP avec « csrutil enable »
4 ans ago ·
Bonjour,
Merci pour ton commentaire.
La manipulation a été ajoutée au texte.
Didier.