
Tengo un dongle bluetooth USB en un sistema ARM Linux 3.12.5. He estado intentando realizar una conexión serie bluetooth desde mi teléfono Android al dispositivo USB en Linux. he hecho referenciaesta preguntaentre otras fuentes en mis intentos. Cualquier sugerencia seria genial.
He podido hacerlo emparejable a través de:
bluetooth-agent 0000 &
Y luego emparejarlo desde mi teléfono. Luego, creo un puerto serie en el dispositivo mediante:
sudo mknod -m 666 /dev/rfcomm0 c 216 0
sudo sdptool add --channel=22 SP
sudo rfcomm listen /dev/rfcomm 22
Luego, desde mi teléfono, uso BlueTerm para intentar conectarme al puerto serie. Sin embargo, pierde la conexión inmediatamente. Del lado de Linux, aparece lo siguiente en la terminal:
Waiting for connection on channel 22
Authorizing request for /org/bluez/317/hci0/dev_xx_xx_xx_xx_00_46
No parece estar desconectando el teléfono de la conexión, entonces, ¿qué está pasando?
Respuesta1
Los pasos a continuación funcionaron para mí:
En primer lugar tienes que emparejar los dispositivos. El emparejamiento es relativamente fácil. Llamaré al cliente (que empieza a hablar) y al servidor (que responde)
Tienes que configurar el servidor antes: Lado del servidor (como root):
sdptool add --channel=3 SP
mknod -m 666 /dev/rfcomm0 c 216 0
rfcomm watch /dev/rfcomm0 3 /sbin/agetty rfcomm0 115200 linux
Lado del cliente (como root):
sdptool add --channel=3 SP
rfcomm connect /dev/rfcomm0 [SERVER_ADDR] 3
Ahora para abrir una terminal serie en el cliente:
screen /dev/rfcomm0 115200
Comentarios:
Cuando llame al último comando rfcomm connect
... en el cliente, /dev/rfcomm0
se creará un dispositivo y se asociará al servidor /dev/recomm0
. Esto representa el enlace serial entre ambos.
El último comando del servidor: rfcomm watch
.... 'escuchará' las conexiones entrantes. Si se pierde la conexión, el comando reiniciará un nuevo estado de "escucha".