====== Raspberry Pi définir la classe du bluetooth ======
Les instructions ci dessous sont valides et testés pour différentes version de Rasbian (notamment avant et après la sortie du Raspberry Pi 3 avec le Bluetooth intégré). Il et possibles que certaines soit superflues dans certaines configurations mais en tout cas, elles ne sont pas gênantes.
Cette manipulation permet notamment de forcer le Raspberry Pi à ce comporter comme un périphérique A2DP afin par exemple de se fabrique une enceinte bluetooth portable ou un système pour ajouter une connectivité Bluetooth à un vieil autoradio FM. 8-) (voir article sur le site du GNU)
===== A la main =====
En utilisant hciconfig (présent sur toutes les version de Raspbian) :
\\
\\
Pour avoir le nom de l'interface bluetooth (en général hci0)
hciconfig status
Pour connaître la classe actuelle :
hciconfig hci0 class
Pour fixer une classe :
sudo hciconfig hci0 class 0x20041C
Par exemple pour imiter un casque audio bluetooth.
Le 41C indique que le système est un récepteur bluetooth (commun à tout les appareils possédant cette fonctionnalités)
Le préfixe 200 permet de faire correspondre la classe à une classe reconnue par android celle des casques audio bluetooth (sinon android reconnaîtra votre raspberry pi comme un périphérique android quelconque).
Voir http://bluetooth-pentest.narod.ru/software/bluetooth_class_of_device-service_generator.html pour générer les classes Bluetooth en fonction de ce que vous voulez faire.
===== Automatiquement =====
Il existe quatre endroits ou la classe du bluetooth est définie. Je n'ai d’ailleurs pas trouvé d'explication satisfaisante à cette multiplicité 8-O.
Le fichier le plus important à mon sens (surtout pour les distrib avant 2016)
\\
\\
**/etc/bluetooth/audio.conf**
[General]
Class = 0x20041C
Enable = Source,Sink,Media,Socket
\\
\\
**/etc/bluetooth/main.conf**
[General]
Name = PIduGNU
Class = 0x20041C
\\
\\
Et pour finir,
**/var/lib/bluetooth//config**
name PIduGNU
class 0x20041C
et, **/var/lib/bluetooth//settings**
[General]
Class=0x20041C
===== En cas de problème =====
Sur certaines versions de Raspbian, la spécification de la classe Bluetooth dans les fichiers précédents ne marche pas bien à cause d'une erreur dans le script de démarrage start-pulseaudio-x11. Je ne sais pas comment corriger ce problème mais une solution de contournement consiste à ajouter dans le /etc/rc.local :
sudo hciconfig hci0 class 0x20041C
Sinon peut aussi passer sous ARMbian ou Arch.