L'erreur suivante se produit lorsque j'émets Sudo rfcomm listen rfcomm0
Impossible de créer RFCOMM TTY: adresse déjà utilisée
J'ai reçu au préalable des données Bluetooth série dans un programme Python. Donc, il semble que quelque chose se coince.
Puis je tape Sudo rfcomm release rfcomm0
qui donne:
Impossible de libérer le périphérique: opération déjà en cours
Comment puis-je faire une version dure? Pour l'instant, le seul moyen de le faire fonctionner à nouveau est de redémarrer.
Ok puisque le redémarrage est agaçant, j'ai essayé deux approches.
Ouvrez /etc/bluetooth/rfcomm.conf et ajoutez un autre périphérique.
rfcomm0 {# lie automatiquement le périphérique au démarrage bind no; # Adresse Bluetooth du périphérique périphérique 00: 06: 66: 68: 20: 61; # Canal RFCOMM pour le canal de connexion 1; # Description du commentaire de connexion "Il s'agit du port série du périphérique 1."; }
rfcomm2 {# lie automatiquement le périphérique au démarrage bind no; # Adresse Bluetooth du périphérique périphérique 20: 15: 12: 08: 62: 95; # Canal RFCOMM pour le canal de connexion 1; # Description du commentaire de connexion "Il s'agit du port série du périphérique 1."; }
rfcomm3 {# lie automatiquement le périphérique au démarrage bind no; # Adresse Bluetooth du périphérique périphérique 20: 15: 12: 08: 62: 95; # Canal RFCOMM pour le canal de connexion 1; # Description du commentaire de connexion "Il s'agit du port série du périphérique 1."; }
Redémarrez le service Bluetooth puis:
userk@dopamine:~$ Sudo rfcomm bind 2 DEV_ADDR CHANNEL
Rfcomm ne peut pas libérer le périphérique à cause d'un autre processus dans Ubuntu. Vérifiez lequel avec
userk@dopamine:~$ Sudo lsof | grep /dev/rfcomm2
MATLAB 5554 6868 userk 514u CHR 216,2 0t0 603 /dev/rfcomm2
Tue le!!
userk@dopamine:~$ ps -ax | grep MATLAB
7684 pts/5 Sl 0:39 /usr/local/MATLAB/R2015b/bin/glnxa64/MATLAB
7873 pts/5 S+ 0:00 grep --color=auto MATLAB
userk@dopamine:~$ kill -9 7684
Voilà pas de minerai forcé de redémarrer! J'espère que ça aide
Assez tard ici mais j'ai eu le même problème sur Ubuntu 16.04.
Ce que j'ai fait était le suivant:
Sudo service bluetooth restart
Ce qui m'a donné l'erreur:
Warning: bluetooth.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Après avoir exécuté la commande suggérée dans l'avertissement, j'ai pu redémarrer avec succès le service Bluetooth et commencer à écouter sur le port.
Je suppose que dans mon cas, j'ai modifié une configuration (en exécutant bluetoothd
avec l'argument --compat) et que, par conséquent, le système init a dû recharger.