Bluetooth : les stacks


Article publié le 05-05-2006

Une page sur les stacks, la partie la plus importante dans un périphérique Bluetooth.

Pour commencer, définissons la "stack" : c'est le logiciel qui va permettre d'utiliser le Bluetooth sur un système.
La stack peut être vue comme un driver pour le Bluetooth, mais elle intègre aussi les utilitaires nécessaires à son fonctionnement.
Le gros défaut des différentes stacks, c'est qu'il faut qu'elles intègrent les Profils pour faire fonctionner le matériel. Les stacks implémentent bien les Profils de base, mais certaines fonctions, comme l'A2DP, ne sont pas toujours présentes.

Normalement, comme les contrôleurs Bluetooth sont standardisés, on peut utiliser n'importe quelle stack avec un dongle. Mais habituellement, le dongle est fourni avec une stack bien précise, et le changement peut poser problème. De plus, certaines stacks sont payantes.

Passons maintenant les quelques stacks disponibles en revue.

La Stack Apple

bluetooth-stack-apple



Pour les Macs, on n’a pas le choix. Il existe une seule stack disponible, et elle est intégrée à l'OS, c'est la stack d'Apple.
Pour utiliser le Bluetooth, il faut au minimum Mac OS X en version 10.2.8 (Jaguar). Sous cette version de l'OS, seuls le Bluetooth 1.1 et le Bluetooth 1.2 sont supportés. Pour tirer parti du Bluetooth 2.0 (et de l'EDR) il faut au moins Mac OS X 10.3 (Panther).

Pour les Macs récents, le Bluetooth est intégré d'origine (ou au moins proposé en option interne). Le contrôleur habituel est un modèle compatible Bluetooth 2.0 EDR interfacé en USB 2.0. Mais n'importe quel dongle Bluetooth est reconnu par la stack Apple.

Au niveau des Profils supportés, on retrouve :

  • Dial Up Networking Profile (DUN)
  • Human Device Interface (HID)
  • Serial Port Profile (SPP)
  • Object Push Profile (OPP)
  • File Transfer Profile (FTP)
  • Synchronization Profile (SYNC)
Tout ce qui est nécessaire est présent, le HID pour la souris et le clavier Apple, la synchro pour iSync, l'envoi de fichiers, etc.

La mise à jour 1.5 propose en plus le Hardcopy Cable Replacement (HRCP) et le Headset Profile (HSP) pour utiliser une oreillette avec iChat.

Quelqies images de l'utilitaire de configuration Apple :

bluetooth-stack-apple-02


bluetooth-stack-apple-03


bluetooth-stack-apple-04



Les stacks PC

Sur PC (Windows) on trouve plusieurs stacks.

La stack Microsoft

bluetooth-stack-microsoft



Microsoft propose sa propre stack Bluetooth. Elle est installée automatiquement avec le Service Pack 2 de Windows XP.
Seul problème, elle est fortement limitée et supporte très peu de Profils. Dans la majorité des cas, il vaut mieux installer une des 3 autres stacks disponibles.

Les Profils supportés :

  • Personnal Area Network (PAN)
  • Hardcopy Cable Replacement (HRCP)
  • Dial Up Networking Profile (DUN)
  • Human Device Interface (HID)
  • Serial Port Profile (SPP)
  • Object Push Profile (OPP)
Il manque le FTP, le HSP (pour les oreillettes) et disposer du Sync aurait été intéressant aussi.

Comme d'habitude, Microsoft propose le minimum.
Autre problème, la stack Microsoft et le driver Microsoft sont automatiquement installés, même si un autre driver est disponible. Donc parfois l'installation d'une autre stack peut devenir le parcours du combattant.

Quelques captures :
Ajout d'un périphérique Bluetooth :

bluetooth-stack-microsoft-03



Les services proposés sur un Sony-Ericsson T68i :

bluetooth-stack-microsoft-04



Le cas Vista

Microsoft a modifié sa stack Bluetooth avec Vista, et elle gère désormais les fonctions sonores (Profils HSP, HFP et A2DP). Des captures seront disponibles dans quelques semaines.

La stack Toshiba

bluetooth-stack-toshiba



Toshiba propose une stack Bluetooth, utilisée essentiellement par les PC et dongle de la marque, ainsi que par certains PC Sony.
Elle est très complète.

Les Profils supportés :

  • Service Discovery Application Profil (SDAP)
  • Basic Imaging Profile (BIP)
  • Human Device Interface (HID)
  • Serial Port Profile (SPP)
  • Dial Up Networking Profile (DUN)
  • Hardcopy Cable Replacement (HRCP)
  • HeadSet Profile (HSP)
  • Fax Profile (FAX)
  • Lan Access Profile (LAN)
  • Advanced Audio Distribution Profile (A2DP)
  • Personnal Area Network (PAN)
  • Audio Video Remote Control Profil (AVCRP)
  • Object Push Profile (OPP)
  • File Transfer Profile (FTP)
  • Audio Video Control Transport Profile (AVCTP)
Difficile de faire plus exhaustif, même l'A2DP est supporté. On est loin de la stack Microsoft.

La stack BlueSoleil

bluetooth-stack-bluesoleil



Une stack que l'on retrouve parfois avec les dongles. Elle est téléchargeable en version démo (limitation à des transferts de 5Mo). Pour la version complète, soit on paye (11 €) soit le constructeur du dongle a payé pour nous.

Les Profils supportés :

  • Personnal Area Network (PAN)
  • Serial Port Profile (SPP)
  • Dial Up Networking Profile (DUN)
  • Lan Access Profile (LAN)
  • File Transfer Profile (FTP)
  • Human Device Interface (HID)
  • Hardcopy Cable Replacement (HRCP)
  • HeadSet Profile (HSP)
  • Fax Profile (FAX)
  • Object Push Profile (OPP)
  • Service Discovery Application Profil (SDAP)
  • Basic Imaging Profile (BIP)
  • Advanced Audio Distribution Profile (A2DP)
  • Audio Video Remote Control Profil (AVCRP)
  • Audio Video Control Transport Profile (AVCTP)
  • Synchronization Profile (SYNC)
La stack BlueSoleil supporte les mêmes fonctions que la stack Toshiba, mais a mauvaise réputation sur le net. La majorité des gens préfèrent la stack Widcomm.



La stack Widcomm

bluetooth-stack-widcomm



La stack Widcomm est la plus courante, et la plus réputée des stacks sous Windows. Elle est payante, sauf si le constructeur du dongle a payé la licence (une majorité). Actuellement, elle appartient à BroadCom, qui a racheté la société. Elle supporte énormément de Profils, et est assez simple à utiliser.

Les Profils supportés :

  • Serial Port Profile (SPP)
  • File Transfer Profile (FTP)
  • Object Push Profile (OPP)
  • Dial Up Networking Profile (DUN)
  • Fax Profile (FAX)
  • Personnal Area Network (PAN)
  • Synchronization Profile (SYNC)
  • Human Device Interface (HID)
  • Hardcopy Cable Replacement (HRCP)
  • HeadSet Profile (HSP)
  • Basic Imaging Profile (BIP)
  • Advanced Audio Distribution Profile (A2DP)
  • Audio Video Remote Control Profil (AVCRP)
  • Audio Video Control Transport Profile (AVCTP)
  • Basic Printing Profile (BPP)
Elle supporte la majorité des Profils, dont l'A2DP. Pour sa gestion, elle crée deux cartes sons virtuelles (Bluetooth et Bluetooth haute qualité) pour pouvoir utiliser une oreillette avec n'importe quel programme.
C'est la stack livrée par Logitech avec ses ensembles Bluetooth, par exemple.

Quelques captures :
Ajout d'un périphérique Bluetooth :

bluetooth-stack-widcomm-02



Les services proposés sur un Sony-Ericsson T68i :

bluetooth-stack-widcomm-03




Les stacks PDA


Sur les PDA aussi, on trouve différente stack. La différence, c'est qu'elles ne se changent pas facilement.

La stack Microsoft

bluetooth-stack-microsoft-02



Une fois n'est pas coutume, Microsoft propose sa stack avec son système WindowsMobile (Pocket PC).
Les Profils supportés :

  • Serial Port Profile (SPP)
  • Dial Up Networking Profile (DUN)
  • HeadSet Profile (HSP)
  • Hands Free Profile (HFP)
  • Synchronization Profile (SYNC)
  • Human Device Interface (HID)
  • Object Push Profile (OPP)
  • Personnal Area Network (PAN)
Contrairement à la version PC, le nécessaire est présent. C'est le minimum, mais ça fonctionne. Il faut aussi savoir que c'est ce que Microsoft propose, le constructeur de la machine peut ne pas implémenter certains Profils.

La mise à jour AKU2 de Windows Mobile 05 peut apporter les Profils Advanced Audio Distribution Profile (A2DP) et Audio Video Remote Control Profil (AVCRP) mais c'est facultatif.

La stack Toshiba

bluetooth-stack-toshiba



Toshiba propose sa stack Bluetooth pour les PDA. Les Pocket PC de la marque l'ont utilisée, ainsi que certains modèles récents d'autres constructeurs.

Les Profils supportés :

  • Service Discovery Application Profil (SDAP)
  • Basic Imaging Profile (BIP)
  • Serial Port Profile (SPP)
  • HeadSet Profile (HSP)
  • Dial Up Networking Profile (DUN)
  • Advanced Audio Distribution Profile (A2DP)
  • Lan Access Profile (LAN)
  • Audio Video Control Transport Profile (AVCTP)
  • Personnal Area Network (PAN)
  • Audio Video Remote Control Profil (AVCRP)
  • Object Push Profile (OPP)
  • File Transfer Profile (FTP)
Difficile de faire plus exhaustif, même l'A2DP est supporté. On est loin de la stack Microsoft, comme en version PC. Il manque juste le HID, dommage pour les claviers Bluetooth.

La stack Widcomm

bluetooth-stack-widcomm



Même chose que sous Windows, la stack Widcomm est courante et efficace.

Les Profils supportés :

  • Serial Port Profile (SPP)
  • File Transfer Profile (FTP)
  • Object Push Profile (OPP)
  • Dial Up Networking Profile (DUN)
  • HeadSet Profile (HSP)
  • Hands Free Profile (HFP)
  • Human Device Interface (HID)
  • Personnal Area Network (PAN)
  • Basic Imaging Profile (BIP)
  • Advanced Audio Distribution Profile (A2DP)
  • Audio Video Remote Control Profil (AVCRP)
  • Audio Video Control Transport Profile (AVCTP)
Elle supporte la majorité des Profils, dont l'A2DP.


La stack Palm

bluetooth-stack-palm



La stack de base proposée par Palm est assez légère, et supporte peu de Profils.
Les Profils supportés :

  • Serial Port Profile (SPP)
  • Object Push Profile (OPP)
  • Dial Up Networking Profile (DUN)
  • Lan Access Profile (LAN)
Pas de support PAN ni FTP, pas de support oreillette (sauf dans les Treos), peu de Profils au final. Par contre, des programmes peuvent rajouter des Profils (passerelle vers IR, A2DP).

La stack Sony

bluetooth-stack-sony



Une partie des Clié ont eu accès au Bluetooth. Soit en interne soit en externe via une Memory Stick.
La stack est très limitée, mais est une des seules à intégrer le BIP (sur un PDA) : avec un appareil photo Sony en Bluetooth, on pouvait commander l'appareil à distance avec son Clié.
Les Profils supportés :

  • Serial Port Profile (SPP)
  • Object Push Profile (OPP)
  • Dial Up Networking Profile (DUN)
  • Lan Access Profile (LAN)
  • Basic Imaging Profile (BIP)
Peu de Profils et de fonctions, tout comme la stack Palm.


Les stacks Linux

Pour terminer ce tour d'horizon, voici les 3 stacks proposées sous Linux. Elles sont très limitées, mais l'OpenSource aidant, elles peuvent supporter au final énormément de périphériques. C'est aussi à partir de ces stacks très modulaires que les attaques via le Bluetooth sont lancées.

La stack BlueZ

bluetooth-stack-bluez



C'est la stack de base sous Linux (intégrée dans le noyau). Elle supporte peu de Profils en natif, mais permet d'utiliser des modules proposés pas les autres. Elle est OpenSource.
Les Profils supportés :

  • Serial Port Profile (SPP)
  • Human Device Interface (HID)
  • Hardcopy Cable Replacement (HRCP)
  • Advanced Audio Distribution Profile (A2DP)

La stack OpenBT

bluetooth-stack-bluez



Une autre stack en OpenSource, mais dont le développement est arrêté actuellement. Elle a été créée par la société Axis.
Les Profils supportés :

  • Serial Port Profile (SPP)
  • Dial Up Networking Profile (DUN)
  • Lan Access Profile (LAN)
Elle ne supporte que le LAN et pas le PAN, ce qui peut poser problème (LAN est obsolète et supprimé de la norme).

La stack Affix

bluetooth-stack-bluez



Une autre stack en OpenSource. Elle gère beaucoup de Profils comparativement aux 2 autres.

Les Profils supportés :

  • Service Discovery Application Profil (SDAP)
  • Serial Port Profile (SPP)
  • Dial Up Networking Profile (DUN)
  • Lan Access Profile (LAN)
  • Object Push Profile (OPP)
  • File Transfer Profile (FTP)
  • Personnal Area Network (PAN)
  • Fax Profile (FAX)
  • Human Device Interface (HID)
Il manque juste un support audio (A2DP ou HSP).


Source

Teleport Boure de séparation Directory Blaster Boure de séparation Restaurer Asus EeePC