
Eu tenho um dongle Bluetooth USB em um sistema Linux 3.12.5 ARM. Tenho tentado fazer uma conexão serial bluetooth do meu telefone Android com o dongle USB no Linux. eu tenho referenciadoessa questãoentre outras fontes em minhas tentativas. Qualquer sugestão seria ótima.
Consegui torná-lo emparelhável por meio de:
bluetooth-agent 0000 &
E então emparelhar via meu telefone. Então, crio uma porta serial no dispositivo via:
sudo mknod -m 666 /dev/rfcomm0 c 216 0
sudo sdptool add --channel=22 SP
sudo rfcomm listen /dev/rfcomm 22
Então, no meu telefone, uso o BlueTerm para tentar conectar-me à porta serial. No entanto, ele perde a conexão imediatamente. No lado do Linux, o seguinte aparece no terminal:
Waiting for connection on channel 22
Authorizing request for /org/bluez/317/hci0/dev_xx_xx_xx_xx_00_46
Não parece estar desligando o telefone, então o que está acontecendo?
Responder1
As etapas abaixo funcionaram para mim:
Primeiramente você deve emparelhar os dispositivos. O emparelhamento é relativamente fácil. Vou ligar para cliente (que começa a falar) e servidor (que responde)
Você deve configurar o servidor antes: Lado do 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 do cliente (como root):
sdptool add --channel=3 SP
rfcomm connect /dev/rfcomm0 [SERVER_ADDR] 3
Agora, para abrir um terminal serial no cliente:
screen /dev/rfcomm0 115200
Comentários:
Ao chamar o último comando rfcomm connect
... no cliente, um dispositivo /dev/rfcomm0
será criado e associado ao servidor /dev/recomm0
. Isto representa o link serial entre ambos
O último comando do servidor: rfcomm watch
.... irá 'escutar' as conexões de entrada. Em caso de perda de conexão, o comando reiniciará um novo estado de 'escuta'.