GNU/Linux >> Tutoriels Linux >  >> Linux

Comment se connecter et envoyer des données à un port série Bluetooth sous Linux ?

J'essaie de configurer un port série virtuel via un adaptateur USB-Bluetooth sous Linux et de lui envoyer un message via un appareil Android. Je suis sur le noyau 3.6. Je suis capable de coupler l'appareil avec succès à l'aide de gnome-bluetooth et également de lui envoyer des fichiers.

Pour configurer le port série, j'ajoute d'abord un canal avec un profil SP à mon adaptateur :

sdptool add --channel=22 SP

Ensuite, j'appelle "écoute" avec rfcomm :

rfcomm listen /dev/rfcomm0 22

qui bloque sur

Waiting for connection on channel 22

Apparemment, rfcomm créera /dev/rfcomm0 lors d'une connexion réussie. Une fois que cela se produit, j'aimerais utiliser quelque chose comme cutecom pour envoyer des messages dans les deux sens à l'appareil connecté.

Sur mon appareil Android, j'ouvre un terminal Bluetooth SPP (il y en a plusieurs, j'en ai essayé plusieurs) et j'essaie de me connecter. Ils échouent tous.

Étant donné que je peux coupler avec succès et envoyer des fichiers sans aucun problème, je sais que le couplage et la communication Bluetooth fonctionnent.

Je ne sais pas trop ce que je peux essayer d'autre. J'ai utilisé "sdptool parcourir" sur mon appareil local et l'appareil Android pour m'assurer qu'il n'y a pas de conflits de canal RFCOMM.

Réponse acceptée :

Il me semble que cela fonctionne maintenant. Bluetooth semble un peu capricieux. Je récapitule mes étapes dans leur intégralité au cas où quelqu'un d'autre le trouverait utile (bien que ce soit à peu près ce que j'ai essayé au départ). Ceci est pour Android JB (4.2.2) sur un Nexus 4 et Arch Linux 3.6.7-1, avec bluez 4.101 sur Gnome 3.6 (avec gnome-bluetooth).

(cette étape peut ne rien faire d'utile) Désactivez Bluetooth sur Android et déconnectez votre adaptateur USB/Bluetooth de votre machine Linux (ou si vous en avez un intégré, réinitialisez-le à l'aide de hcitool devname reset)

Connectez/allumez votre adaptateur Bluetooth sous Linux. Assurez-vous que votre adaptateur est visible (peut être configuré dans gnome-bluetooth - vous devriez voir une icône de barre d'état système Bluetooth).

Activez le Bluetooth sur votre appareil Android. Utilisez Android pour coupler l'adaptateur (je n'ai pas pu coupler l'inverse à partir de Linux). Une boîte de dialogue apparaîtra vous demandant une clé. Entrez n'importe quel code PIN que vous voulez. Gnome devrait afficher une notification vous demandant une clé ; entrez le même code PIN que vous avez entré précédemment. Votre appareil Android et la clé doivent être couplés à ce stade.

Sous Linux, ouvrez un terminal et vérifiez quels services Bluetooth sont disponibles en tapant

sdptool browse local

Si vous disposez déjà d'un service de port série, notez de quel canal il s'agit. Si ce n'est pas le cas, vous pouvez ajouter le service :

sdptool add --channel=22 SP

Écoutez maintenant sur cette chaîne en utilisant rfcomm :

sudo rfcomm listen /dev/rfcomm0 22

rfcomm bloquera, à l'écoute d'une connexion avec un message comme

Waiting for connection on channel 22

De retour sur Android, j'ai utilisé l'application BlueTerm (http://pymasde.es/blueterm/, également disponible gratuitement sur le Google Play Store) bien que toute application similaire devrait fonctionner. Ouvrez BlueTerm, allez dans les options> Connecter l'appareil :sélectionnez l'adaptateur jumelé.

Connexe :Freebsd – Comment démarrer FreeBSD en mode console ?

Espérons que l'application a pu se connecter. Vous verrez une vérification supplémentaire dans le terminal où vous avez bloqué l'écoute avec un message comme :

Waiting for connection on channel 22
Connection from 22:22:22:22:22:22 to /dev/rfcomm0
Press CTRL-C for hangup

Tout ce que vous tapez dans l'application BlueTerm doit être dirigé vers /dev/rfcomm0. Vous pouvez voir des choses apparaître au fur et à mesure que vous tapez en ouvrant un nouveau terminal et en faisant quelque chose comme :

cat /dev/rfcomm0

Linux
  1. Comment supprimer vos données en toute sécurité et de manière permanente sous Linux

  2. Comment envoyer des données à un port série et voir une réponse ?

  3. Linux – Port série Raspberrypi ?

  4. Linux - Comment trouver des processus utilisant le port série ?

  5. Comment ouvrir, lire et écrire à partir du port série en C ?

Comment faire une analyse de port sous Linux

Comment utiliser le terminal Linux dans Android

Comment sauvegarder et restaurer des données à l'aide de Retic sous Linux

Comment rechercher et fermer des ports ouverts sous Linux

Comment connecter et partager des données entre deux systèmes Linux

Comment et pourquoi utiliser Linux pour installer Telnet