Por que não consigo me conectar à minha porta serial do bluetooth do Linux?

2

Eu tenho um dongle USB bluetooth em um sistema Linux 3.12.5 ARM. Eu tenho tentado fazer uma conexão serial bluetooth do meu celular Android ao dongle USB no Linux. Eu referenciei esta questão entre outras fontes nas minhas tentativas. Qualquer sugestão seria ótima.

Eu consegui fazer com que seja pareado por:

bluetooth-agent 0000 &

E, em seguida, emparelhamento via do meu telefone. Então, eu 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

Em seguida, do meu telefone, eu uso o BlueTerm para tentar conectar-me à porta serial. No entanto, 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 da conexão, então o que está acontecendo?

    
por trycatch 27.03.2014 / 23:26

1 resposta

2

Os passos abaixo funcionaram para mim:

Primeiramente, você precisa emparelhar os dispositivos. O emparelhamento é relativamente fácil. Vou chamar cliente (quem começa a falar) e servidor (quem responde)

Você precisa 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, abra um terminal serial no cliente:

screen /dev/rfcomm0 115200

Comentários:

Quando você chamar o último comando rfcomm connect ... no cliente, um dispositivo /dev/rfcomm0 será criado e associado ao servidor /dev/recomm0 . Isso representa o link serial entre os dois

O último comando do servidor: rfcomm watch .... irá 'escutar' as conexões de entrada. Em conexão perdida, o comando irá reiniciar um novo estado 'listen'.

    
por 04.09.2014 / 01:27