¿Dónde obtener Bluetooth / Bluetooth.h para Raspberry Pi?

Dec 13 2020

Esta es una pregunta estupida. Pero no puedo encontrarle una solución. Estoy intentando crear una aplicación BLE con referencia a este tutorial.https://people.csail.mit.edu/albert/bluez-intro/c404.html. Estoy compilando de forma cruzada para Raspberry Pi3 desde mi pc con Windows wsl. He descargado la cadena de herramientas dehttps://github.com/raspberrypi/tools. Y he verificado la cadena de herramientas compilando una aplicación HelloWorld simple y la ejecuté desde RaspberryPi. Ahora, cuando intento compilar el código anterior, aparece el error

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

Entiendo que Bluetooth.h no es mi sistema. Mi pregunta es ¿dónde puedo conseguirlo? Para que pueda realizar una compilación cruzada desde Windows. ¿Tengo que descargar sdk para ello? si es necesario, ¿dónde puedo conseguirlo?

Respuestas

5 DmitryGrigoryev Dec 14 2020 at 18:56

Puede utilizar el motor de búsqueda de Debian (que es la distribución en la que se basa Raspberry Pi OS) para localizar cualquier archivo:

Una vez que encuentre el paquete que contiene los archivos necesarios, puede instalar el mismo paquete en un Pi con apt-geto descargarlo manualmente desde http://archive.raspbian.org/. También puede obtener el paquete Debian directamente de los resultados de la búsqueda, pero tenga en cuenta que algunos paquetes en el sistema operativo Pi tienen diferencias sutiles con sus contrapartes Debian.

Si necesita obtener los archivos de un paquete sin instalarlo, descárguelo y extraiga los archivos que necesita con el arcomando o 7zip.

5 Seamus Dec 14 2020 at 07:36

No es una pregunta estúpida en absoluto. No pude encontrar de inmediato una buena explicación de cómo instalar paquetes desde la fuente. Sin embargo, algunas pruebas y errores dieron como resultado esta solución:

$ apt-cache search bluez

Proporcionó una lista de sospechosos , uno de los cuales fue:

libbluetooth-dev: archivos de desarrollo para usar la biblioteca Bluetooth de BlueZ Linux

Lo que parecía una elección razonable.

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

Luego, el código del tutorial se compila y ejecuta:

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

Que es una respuesta correcta aquí en mi piso. Sin embargo, no es la respuesta completa, ya que otros dispositivos equipados con BT (por ejemplo, mi iPhone ) están por ahí.

NOTAS:

  1. ¡Asegúrese de actualizar y actualizar su sistema antes de instalar nuevos paquetes!
  2. La respuesta de Dmitry, usando el motor de búsqueda de Debian, es una mejor respuesta para la pregunta del OP . Me parece que todavía puede haber algunas conjeturas involucradas, pero definitivamente ayuda a reducir el campo.
  3. Para aquellos que quieran construir e instalar paquetes desde la fuente de forma nativa , parece que hay opciones aptas para admitirlo .