Où obtenir Bluetooth / Bluetooth.h pour Raspberry Pi?

Dec 13 2020

C'est une question stupide. Mais je ne peux pas y trouver de solution. J'essaie de créer une application BLE en référence à ce tutorielhttps://people.csail.mit.edu/albert/bluez-intro/c404.html. Je fais une compilation croisée pour Raspberry Pi3 à partir de mon PC Windows wsl. J'ai téléchargé la chaîne d'outils à partir dehttps://github.com/raspberrypi/tools. Et j'ai vérifié la chaîne d'outils en compilant une simple application HelloWorld et en l'exécutant à partir de RaspberryPi. Maintenant, lorsque j'essaye de compiler le code ci-dessus, j'obtiens l'erreur

/mnt/c/Study/RaspberryPi/main.c:5:33: fatal error: bluetooth/bluetooth.h: No such file or directory
 #include <bluetooth/bluetooth.h>

Je comprends que Bluetooth.h n'est pas mon système. Ma question est: où puis-je l'obtenir? Pour que je puisse effectuer une compilation croisée à partir de Windows. Dois-je télécharger sdk pour cela? si nécessaire, où puis-je l'obtenir?

Réponses

5 DmitryGrigoryev Dec 14 2020 at 18:56

Vous pouvez utiliser le moteur de recherche de Debian (qui est le système d'exploitation de la distribution Raspberry Pi) pour localiser n'importe quel fichier:

Une fois que vous avez trouvé le package contenant les fichiers nécessaires, vous pouvez installer le même package sur un Pi avec apt-getou le télécharger manuellement à partir de http://archive.raspbian.org/. Vous pouvez également récupérer le paquet Debian directement à partir des résultats de la recherche, mais sachez que certains paquets du système d'exploitation Pi ont des différences subtiles avec leurs homologues Debian.

Si vous avez besoin d'obtenir les fichiers d'un package sans l'installer, téléchargez-le et extrayez les fichiers dont vous avez besoin avec la arcommande ou 7zip.

5 Seamus Dec 14 2020 at 07:36

Pas du tout une question stupide. Je n'ai pas pu trouver immédiatement une bonne explication sur la façon d'installer des paquets à partir des sources. Cependant, quelques essais et erreurs ont abouti à cette solution:

$ apt-cache search bluez

Obtenu une liste de suspects , dont l'un était:

libbluetooth-dev - Fichiers de développement pour l'utilisation de la bibliothèque Bluetooth BlueZ Linux

Ce qui ressemblait à un choix raisonnable.

$ sudo apt-get install libbluetooth-dev
...
The following additional packages will be installed:
  libbluetooth3
The following NEW packages will be installed:
  libbluetooth-dev libbluetooth3  

Ensuite, le code du didacticiel se compile et s'exécute:

$ gcc -o simplescan simplescan.c -lbluetooth $ ./simplescan
CC:6D:A0:64:36:32  Roku Player. 

Ce qui est une bonne réponse ici dans mon appartement. Cependant, ce n'est pas la réponse complète, car d'autres appareils équipés de BT (par exemple, mon iPhone ) traînent.

REMARQUES:

  1. Assurez-vous de mettre à jour et de mettre à niveau votre système avant d' installer de nouveaux packages!
  2. La réponse de Dmitry - en utilisant le moteur de recherche de Debian - est une meilleure réponse à la question du PO . Il me semble qu'il peut encore y avoir des conjectures , mais cela aide certainement à restreindre le champ.
  3. Pour ceux qui souhaitent créer et installer des packages à partir des sources de manière native , il semble qu'il existe des options apt pour le prendre en charge.