E chegamos em 2015! Como a lógica de nosso blog é Fuzzy, vamos avançando, retrocedendo, batendo em retirada, e, às vezes, conquistando algum "território" necessário para o bom andamento de algum projeto que está na bancada. Esse é o caso do Bluetooth (BT)! Em Linux, controlar o pequeno dongle usb que contém um poderoso rádio-modem digital com alcance de incríveis 10 metros, é uma tarefa obscura, com desafios semelhantes aos vencidos no uso do socat.
Afinal, qual a problemática? Queremos construir um disposiivo que mostre em uma tela toda a comunicação do pc com um dispositivo BT, como um smartphone ou um controle de Wii, por exemplo.
A Solucionática: retirada de http://unix.stackexchange.com/questions/92255/how-do-i-connect-and-send-data-to-a-bluetooth-serial-port-on-linux.
Firstly you have to pair the devices. Pairing is relatively easy. I will call client (who starts talking) and server (who replies)
You have to setup the server before: Server side (as root):
sdptool add --channel=3 SP mknod -m 666 /dev/rfcomm0 c 216 0 rfcomm watch /dev/rfcomm0 3 /sbin/agetty rfcomm0 115200 linux
Client side(as root):
sdptool add --channel=3 SP rfcomm connect /dev/rfcomm0 [SERVER_ADDR] 3
Now to open a serial terminal on the client:
screen /dev/rfcomm0 115200
Comments:
When you call the last command rfcomm connect... in the client, a device /dev/rfcomm0
will be created and associated to the server /dev/recomm0
. This represents the serial link between both
The last server command: rfcomm watch
.... will 'listen' for incoming connections. In connection lost, the command will restart a new 'listen' state.
Observações:
1. Vamos usar alguns programas que devem estar presentes em seu sistema, como por exemplo o screen e hcitool.
2. Precisamos descobrir qual a denominação de nosso dongle BT (nosso valoroso Vostro 1000 não veio equipado com essa modernidade, logo precisamos inserir na porta usb um desses dispositivos chineses de baixíssimo custo e de performance errática. O nosso mais barato, funciona espantosamente bem. Outros não. Para identificar é preciso rodar o comando hcitool scan. Na prática, não deu em nada. Substituimos pelo comando hcitool dev que mostrou o addr (01:1F:81:XX:XX:XX - os XX foram omitios por segurança) e a denominação hci0.
3.Devemos substituir rfcomm0 por hci0, que foi o nome encontrado no nosso caso.
r