not - Configuración del emparejamiento automático de Bluetooth en Linux
drivers bluetooth linux (1)
Quiero usar cualquier teléfono móvil para conectarme a un dispositivo IoT a través de Bluetooth Classic con el protocolo de puerto serie (SPP). El dispositivo IoT no tiene pantalla ni teclado, y se supone que debe aceptar las conexiones automáticamente siempre que el teléfono que se conecta conozca un PIN secreto (es decir, no quiero que me obliguen a ssh al dispositivo IoT para configurar el emparejamiento siempre un nuevo teléfono móvil intenta conectarse).
Estos son los comandos que he ejecutado hasta ahora en el dispositivo IoT:
# Make the device discoverable:
hciconfig hci0 piscan
# Register SPP:
sdptool add --channel=22 SP
# Start rfcomm:
rfcomm -r watch /dev/rfcomm0 22
Desafortunadamente, no pude encontrar una manera de configurar un PIN, y el emparejamiento falla cuando intento conectarme con un teléfono móvil. Además, el dispositivo solo es detectable por un corto intervalo.
¿Cómo configuro la pila Bluetooth del dispositivo IoT (que ejecuta un Bluez reciente) para que se sincronice automáticamente con cualquier teléfono que sepa un PIN determinado, y cómo hago que el período de descubrimiento sea eterno?
Puede ejecutar una aplicación que implemente BlueZ DBus API. Recomiendo BlueZ> = 5.42. Utilice la interfaz del agente e implementa su propio código PIN. Después de registrar a su agente, bluez llamará automáticamente y usará a su propio agente cuando se le solicite la vinculación.
Además, puede establecer DiscoverableTimeout en 0 a través de DBus con la interfaz org.bluez.Adapter1.
"Un valor de cero significa que el tiempo de espera está deshabilitado y se mantendrá en modo visible / limitado para siempre".
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/adapter-api.txt (documento de objeto de adaptador de dbus) https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/agent-api.txt (dbus agent object doc) https://kernel.googlesource.com/pub/scm/bluetooth/bluez/+/5.44/test/simple-agent (muestra) http://www.bluez.org/bluez-5-api-introduction-and-porting-guide/ (lea en la parte inferior)