Acessando celulares e palmtops via bluetooth

O Bluetooth é um padrão aberto de comunicação sem fios, desenvolvido pelo SIG (Bluetooth Special Interest Group) que inclui diversas empresas, entre elas a Sony, IBM, Intel, Toshiba e Nokia.

Ao contrário do padrão Wi-Fi, que inclui os padrões 802.11.b, 802.11a e 802.11g, usados nas redes sem fio, o Bluetooth tem como principal objetivo substituir os cabos, permitindo que celulares, palmtops, mouses, headsets, entre outros troquem dados entre sí e com o PC, sem precisar de cabos. Uma rede Bluetooth é chamada de “piconet” e é composta por um dispositivo “master” e até 8 “slaves”, que se conectam a ele.

Existem duas classe de dispositivos Bluetooth. Os dispositivos “classe 2” (que são os usados em quase todos os celulares e aparelhos portáteis) trabalham com um transmissor de apenas 2.5 mW e por isso possuem um alcance de apenas 10 metros (em campo aberto). Na hora de comprar um adaptador Bluetooth para o PC, você tem a opção de também comprar um transmissor tipo 2 (que são os mais compactos e baratos), ou comprar um adaptador com um transmissor classe 1, que possuem um alcance teórico de 100 metros (bem menos na prática, já que você nunca está num ambiente livre de obstáculos). Atualmente, cada vez mais notebooks já vem com transmissores Bluetooth de fábrica, dispensando o adaptador.

A velocidade de transmissão no Bluetooth é de apenas 1 megabit (721 kbits reais), o que inviabiliza a transmissão de grandes arquivos. Isso faz com que, na prática, o uso mais comum para o Bluetooth seja transferir fotos, pequenos arquivos e (com um pouco de paciência) músicas em MP3 entre o PC e o celular ou palmtop.

Fazer isso no Linux já foi uma tarefa ingrata (mesmo no Windows, só existe um suporte maduro a partir do XP SP2), mas atualmente as coisas estão bem mais simples :).

O primeiro passo é instalar os pacotes necessários. Tudo começa com o “bluez-utils“, que faz o trabalho pesado. Ele é complementado pelo pacote “bluez-libs”, que em muitos casos é integrado ao pacote principal. Em seguida temos os pacotes “kdebluetooth” e “kmobiletools”, que compõem a interface de acesso.

O primeiro passo é instalar os pacotes. No Kurumin e no Ubuntu você pode instalar diretamente via apt-get:

# apt-get install bluez-utils kmobiletools kdebluetooth dbus
(em outras distribuições, você pode precisar instalar também os pacotes “bluez-libs” e “bluetooth”)

Serão criados ícones no “Iniciar > Internet”:

Reinicie os serviços para ter certeza de que realmente estão carregados:

# /etc/init.d/dbus restart
# /etc/init.d/bluetooth restart

Depois de instalar tudo, verifique se seu adaptador Bluetooth foi detectado corretamente, usando o comando:

# hciconfig

Se ele responder algo similar a:

hci0: Type: USB
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:0 acl:0 sco:0 commands:0 errors:0

… significa que o adaptador foi detectado, mas está desativado. Neste caso, rode o comando que ativa o transmissor:

# hciconfig hci0 up

Rode de novo o hciconfig e ele deve retornar algo como:

hci0: Type: USB
BD Address: 00:11:67:32:95:23 ACL MTU: 678:8 SCO MTU: 48:10
UP RUNNING PSCAN ISCAN
RX bytes:77 acl:0 sco:0 events:9 errors:0
TX bytes:34 acl:0 sco:0 commands:9 errors:0

Aproveite para adicionar o comando no final do arquivo “/etc/init.d/bootmisc.sh” ou “/etc/rc.d/rc.local“, para que o transmissor seja ativado automaticamente durante o boot.

Aqui vai um pequeno truque. Ao invés de abrir o arquivo e adicionar a linha manualmente, você pode usar o comando abaixo (como root) para fazer o trabalho automaticamente. Ele simplesmente cria uma nova linha no final do arquivo, contendo o que colocamos entre aspas:

# echo “hciconfig hci0 up” >> /etc/init.d/bootmisc.sh

Rode agora o comando “hcitool scan”. Ele deverá mostrar o ID do seu celular. Em caso de problemas neste ponto, verifique se o transmissor do celular está realmente ativado (acontece nas melhores famílias ;).

$ hcitool scan
Scanning …
00:07:E0:18:9A:02 treo

Agora vem a parte potencialmente mais problemática é que é fazer o “pairing”, ou seja, fazer a conexão inicial entre o PC e o celular, de forma que ele aceite as conexões.

No caso do meu Treo, clico na opção “Trusted Devices” dentro da configuração do Bluetooth e escolho o meu desktop na lista. Ele solicita a passkey e em seguida a conexão é estabelecida:

A passkey é um código de segurança, que você precisa fornecer na hora de conectar seu celular, ou qualquer outro dispositivo ao seu PC. Por default, a passkey será “1234“, ou “BlueZ“, de acordo com a versão instalada e o nome será “BlueZ” ou o nome do micro, definido na configuração da rede.

Depois de conectar seu celular, é interessante mudar esta configuração, sobretudo a passkey. Para isso, edite o arquivo “/etc/bluetooth/hcid.conf“.

As opções importantes aqui são as linhas “passkey” (também chamada de pin) e “name” (determina o nome com o qual seu PC aparecerá na piconet). As demais já vêm configuradas por padrão, permitindo a conexão de qualquer dispositivo. Altere-as adicionando sua configuração, como em:

passkey “minhasenhasecreta”;

name “MeuPC”;

Reinicie (novamente) os serviços, para que a nova configuração entre em vigor. O fato de alterar a configuração, não desativa o pairing já feito com seu celular, apenas impede que outros aparelhos se conectem ao seu PC utilizando a senha default (o que seria um problema de segurança).

# /etc/init.d/dbus restart
# /etc/init.d/bluetooth restart

Depois de fazer o pairing, abra o Kbluetoothd, usando o ícone no menu. Ele ficará residente na forma de um ícone ao lado do relógio. Ao clicar sobre ele, você abre uma lista com os aparelhos disponíveis e os recursos suportados por cada um. Muitos celulares suportam o “Obex File Transfer”, que permite transferir arquivos (incluindo músicas em MP3) diretamente para o cartão de memória.

Ao ser aberto pela primeira vez, o Kbluetoothd sugere que você use o “kbluepin” como verificador do código PIN, ao invés da configuração manual que usamos até aqui. Ele é um pequeno programa que abre uma janela no PC sempre que o celular tenta se conectar, perguntando qual PIN será usado. Na verdade, é uma perfumaria, que você pode usar ou não.

Se preferir mudar, edite novamente o arquivo “/etc/bluetooth/hcid.conf” e substitua a linha:

passkey “minhasenhasecreta”;

Por:

pin_helper /usr/lib/kdebluetooth/kbluepin;

Para os casos em que o celular não usa um cartão de memória, ou não suporta a transferência direta de arquivos, abra o Kbtobexclient (também disponível no iniciar), que permite transferir arquivos para a memória do aparelho usando o protocolo padrão.

Para transferir, selecione o seu celular na lista da esquerda e arraste o arquivo a ser transferido para o campo “file to send”. Clique no “Send” e a transferência é iniciada:

É mostrada uma tela no celular perguntando o que fazer com o arquivo. Os formatos de arquivos suportados variam muito de acordo com o celular, mas a maioria suporta imagens em jpg. Você pode começar transferindo uma imagem pequena para testar.

É possível também transferir arquivos do celular para o PC. No meu Treo 650, por exemplo, posso transferir desde imagens e músicas, até anotações feitas no MemoPad, que são recebidas como arquivos de texto. Na maioria dos celulares, você pode transferir fotos e vídeos gerados com a câmera.

Para isso, selecione a opção de envio no celular e mantenha o Kbluetoothd aberto no PC. Será mostrada uma janela de confirmação:

Mude a opção “Future policy for this device and service” para “allow” se quiser que as próximas transferências sejam aceitas automaticamente, sem que seja aberta a tela de conformação. Depois é só decidir onde salvar o arquivo :).

Completando o time, temos o Kmobiletools, que permite acessar a agenda do celular, discar e atender chamadas através do PC, ler e enviar mensagens SMS, entre outros recursos.

Ele pode ser usado para acessar o celular tanto através de um cabo USB, quanto via Bluetooth. A configuração para acessar via cabo é mais simples: dentro das configurações, indique a porta “/dev/ttyACM0” e deixe que ele detecte o celular. Como o Kmobiletools ainda está em fase de rápido desenvolvimento, aparelhos que não são suportados, ou operam com recursos limitados numa versão, podem passar a ser bem suportados na seguinte e também existem casos de regressões, ou seja, aparelhos que deixam de funcionar numa versão e voltam na seguinte. Segundo os desenvolvedores, os celulares melhor suportados são os Motorola e SonyEricsson, enquanto os piores no estágio atual são os Nokia.

Para acessar o celular via Bluetooth, existem alguns passos adicionais. Comece usando o comando “hcitool scan” para descobrir o endereço do seu aparelho:

$ hcitool scan
Scanning …
00:07:E0:18:9A:02 treo

Precisamos agora editar o arquivo “/etc/bluetooth/rfcomm.conf“, onde associaremos o celular a uma porta serial, permitindo que ele seja acessado pelo Kmobiletools. Edite o arquivo, deixando-o como este exemplo. Note que você deve mudar o endereço e o nome do aparelho, deixando-os igual ao informado pelo “hcitool scan”:

rfcomm0 {
bind yes;
device 00:07:E0:18:9A:02;
channel 1;
comment “treo”;
}

Depois de salvar, reinicie os serviços:

# /etc/init.d/dbus restart
# /etc/init.d/bluetooth restart

Terminado, configure o Kmobiletools para acessar o celular através da porta “/dev/rfcomm0“, que foi criada no passo anterior. A partir daí, o celular passa a ser acessado da mesma forma que seria através do cabo USB. Note que antes de fazer tudo isso, você deve ter feito os passos anteriores, ou seja, instalar o BlueZ, fazer o pairing entre o PC e o Celular e testar a conectividade.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X