Outils pour utilisateurs

Outils du site


bt_fichiers

Transfert de fichiers en Bluetooth


Voici comment rendre le Raspberry en point d'accès Bluetooth afin de pouvoir par exemple transférer des photos provenant d'un smartphone ou d'une tablette Android

Installation et configuration des services


Chaque commande doit-être exécutée par le super-utilisateur. La ou les commandes sont précédées de la mention en tant qu’invité root#

Le transfert de fichier ne peut que se faire à l'aide d'une application installée sur le Raspberry qui fera office de serveur de fichier. Pour cela nous allons utiliser le logiciel obexpushd. D'ordre général le partage de fichiers en bluetooth s'effectue par le protocole OBEX, d'où l'utilisation de ce programme que nous allons faire tourner via systemd afin de réceptionner les photos, vidéos de vos périphériques

  • Installer obexpushd
| root#
apt install obexpushd
  • Pour une question de compatibilité dont je n'ai pas encore approfondi, éditez le service bluetooth
| root#
nano /etc/systemd/system/dbus-org.bluez.service
  • Rajoutez -C â la fin de la ligne ExecStart=.. dans la section [Service]
/etc/systemd/system/dbus-org.bluez.service
[Unit]
Description=Bluetooth service
Documentation=man:bluetoothd(8)
ConditionPathIsDirectory=/sys/class/bluetooth

[Service]
Type=dbus
BusName=org.bluez
ExecStart=/usr/lib/bluetooth/bluetoothd -C
NotifyAccess=main
#WatchdogSec=10
#Restart=on-failure
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
LimitNPROC=1
ProtectHome=true
ProtectSystem=full

[Install]
WantedBy=bluetooth.target
Alias=dbus-org.bluez.service
  • Création du dossier qui sera celui qui réceptionne les fichiers envoyés
| root#
mkdir /bluetooth
  • Création d'un service systemd pour faire fonctionner de manière permanente le serveur OBEX précédemment installé
| root#
nano /etc/systemd/system/obexpush.service
nano /etc/systemd/system/obexpush.service
[Unit]
Description=OBEX Push service
After=bluetooth.service
Requires=bluetooth.service

[Service]
ExecStart=/usr/bin/obexpushd -B23 -o /bluetooth -n # Ecoute sur le port 23, vérifiez que celui-ci ne soit pas déjà utilisé.
Restart = always # Permet de réactiver le service en cas d'erreur

[Install]
WantedBy=multi-user.target
  • Validation des paramètres
| root#
systemctl daemon-reload
systemctl enable obexpush
systemctl start obexpush
  • Le status du service doit renvoyer ce log par un joli point vert
systemctl status obexpush
● obexpush.service - OBEX Push service
   Loaded: loaded (/etc/systemd/system/obexpush.service; enabled; vendor preset: en
   Active: active (running) since Fri 2019-07-26 08:56:16 CEST; 5h 41min ago
 Main PID: 572 (obexpushd)
   CGroup: /system.slice/obexpush.service
           └─572 /usr/bin/obexpushd -B23 -o /bluetooth -n
           

Configuration & Appareillage


Procédons maintenant à l'appareillage du Raspberry à votre périphérique. Chez moi pour ce dernier; il s'agit d'une tablette Android (8.1)

  • lancez le cli du bluetooth
| root#
bluetoothctl
  • On repère d'abord le hostname bluetooth du Raspberry qui est dans mon cas : YunoHost/weblib.re
bluetoothctl
[NEW] Controller B8:27:EB:50:B7:A1 (YunoHost/weblib.re) [default]
  • Se mettre en mode découverte afin que le Raspberry soit détecté
#
discoverable on
bluetoothctl
Changing discoverable on succeeded
[CHG] Controller B8:27:EB:50:B7:A1 Discoverable: yes
  • Et maintenant on a 2 minutes pour procéder à l'appareillage
  1. Effectuer la recherche
  2. Sélectionner le Raspberry

bluetoothctl
[NEW] Device 34:8A:7B:D9:5E:55 Galaxy Tab A (2016)
....
[CHG] Device 34:8A:7B:D9:5E:55 ServicesResolved: yes
[CHG] Device 34:8A:7B:D9:5E:55 Paired: yes

Conclusion


A présent vous n'avez plus qu'à partager vos fichiers en bluetooth vers le Raspberry. Vous pourrez ensuite les récupérer dans le dossier /bluetooth.

Attention toutefois ce dossier a les droits root. Configurez éventuellement les permissions en cas d'accès depuis un autre compte utilisateur.

bt_fichiers.txt · Dernière modification: 2019/08/08 10:39 de svnet