Mes passions, le boulots, mes coups de gueule...




OS X : Activer un dongle Bluetooth LE 4.0 sur un MacBook Pro fin 2008 (MacBookPro5,1)

Catégories : Geek, Informatique, Mac · par 9 Avr 2015

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

RPi-FP-02J’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 :

OSX+BT-LE-02

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

OSX+BT-LE-03

On va passer la Calculette en mode scientifique : Présentation > Programmeur

OSX+BT-LE-04

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 :

  • 0x0a12 => 2578
  • 0x0001 => 1

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 :

OSX+BT-LE-05

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.

OSX+BT-LE-06

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.

OSX+BT-LE-07Pour 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.

OSX+BT-LE-08

Téléchargez  le fichier Hardware IO Tools for Xcode 6.3 ou plus récent et ouvrez-le.

OSX+BT-LE-09

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.

OSX+BT-LE-10

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 :

http://www.tonymacx86.com/network/116502-10-9-bluetooth-csr8510-a10-not-recognised-bluetooth.html#post733068

Pour changer le mode de démarrage du dongle :

  1. Télécharger le logiciel BlueSuite pour modifier le « BlueCore Persistent Store » : https://csr-bluesuite.software.informer.com/download/?cab0b05-2.5
    Ou via le lien de mon blog : bluesuite_2.5_win7.zip
  2. Débrancher le dongle Bluetooth
  3. Installer le logiciel BlueSuite (avec les options par défaut)
  4. Brancher le dongle Bluetooth dans un autre port USB que celui utilisé précédemment
  5. Démarrer CSR BlueSuite 2.5.0 / PSTool en tant qu’Administrateur
  6. Dans le première fenêtre : Choisir Transport = USB et Port = \\.\csr0 puis cliquer sur OK
  7. Dans le champ Filter, taper bootmode et cliquer sur « Initial device bootmode« 
  8. Noter la valeur hexadécimale en cas de mauvaise manipulation, et le changer en 0000
  9. Cliquer sur le bouton Set et cliquer sur le bouton Close
  10. Attendre quelques secondes et débrancher le dongle Bluetooth.

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.tonymacx86.com/mountain-lion-desktop-support/90183-csr-bluetooth-v4-0-usb-dongle-mac-os-x-mountain-lion-10-8-2-wake-magic-mouse.html

http://www.geekguides.co.uk/414/how-to-select-a-bluetooth-adapter-in-os-x/

(2) comments

Charles-Edouard Ruault
4 ans ago · Répondre

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 »

    fanjoe
    4 ans ago · Répondre

    Bonjour,

    Merci pour ton commentaire.
    La manipulation a été ajoutée au texte.

    Didier.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.