Bluetooth no Linux, guia completo

Bluetooth no Linux, guia completo
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á em um ambiente livre de obstáculos). Atualmente, cada vez mais notebooks já vem com transmissores Bluetooth de fábrica, dispensando o adaptador.
tutorial-bluetooth_html_m7fa8068e
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.

Como o Bluetooth trabalha com um sinal bem mais fraco que as redes Wi-Fi, não espere um grande alcance mesmo ao utilizar um transmissor classe 1. De uma forma geral, você tem uma boa conexão apenas dentro da mesma sala onde está o celular.

Configurar o Bluetooth 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 :). No Kurumin 7, você encontra as opções para ativar o suporte a Bluetooth, acessar o celular e transferir arquivos no “Iniciar > Escritório e Utilitários > Bluetooth”. Você começa usando a opção “Ativar o Suporte a Bluetooth”, que faz a configuração inicial e a partir daí pode usar as outras opções:
tutorial-bluetooth_html_23f30b12
Como este é um tema “quente”, já que em breve praticamente todos os celulares incluirão transmissores Bluetooth, sem falar de handsets, mouses e outros periféricos, vou explicar com mais detalhes como funciona o suporte a Bluetooth no Linux, de forma que você seja capaz de solucionar problema e ativar o suporte também em outras distribuições.

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. Nas versões anteriores do Kurumin, além do Ubuntu e Kubuntu, 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“.

Ao instalar os pacotes manualmente, Serão criados ícones no “Iniciar > Internet”:
tutorial-bluetooth_html_52440c1f
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 arquivo “/etc/rc.local” (no final do arquivo, porém antes do “exit 0”), 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/rc.local

Uma observação é que no Ubuntu você deve remover o “exit 0” colocado na última linha do arquivo para que o comando funcione. O “exit 0” é uma instrução que termina o script. Se o comando é colocado depois dele, acaba não sendo executado.

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 😉 e se ele está configurado em modo “discoverable” (é o default em quase todos os modelos, mas pode ser desativado na configuração).

$ hcitool scan
Scanning …
00:07:E0:18:9C: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:
tutorial-bluetooth_html_2ed330a
tutorial-bluetooth_html_2f2b6222
tutorial-bluetooth_html_7a454639
Se o PC não estiver sendo localizado pelo celular, experimente rodar o comando abaixo. Ele força o BlueZ a colocar o PC em modo discoverable, solucionando um bug que atinge algumas versões do Ubuntu e outras distribuições.

# hciconfig hci0 piscan

Caso você não consiga criar a associação a partir do celular, também é possível fazê-lo a partir do PC. Neste caso, use os comandos abaixo. Isso abrirá um diálogo no celular, pedindo para inserir a passkey do desktop. Note que novamente é preciso especificar o ID do celular:

# hcitool cc 00:07:E0:18:9C:02
# hcitool auth 00:07:E0:18:9C:02

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

No Kurumin, o “Ativar o Suporte a Bluetooth” disponível no “Iniciar > Escritório e Utilitários > Bluetooth” automatiza toda esta configuração inicial, te trazendo até este ponto.

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 FTP”, que permite transferir arquivos (incluindo músicas em MP3) diretamente para o cartão de memória.

Note que em alguns modelos você pode precisar de algum software adicional. No Treo 650, por exemplo, preciso do BlueFiles (http://www.softick.com/bluefiles/).
tutorial-bluetooth_html_m50e9c1df
tutorial-bluetooth_html_58658bb4
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;

tutorial-bluetooth_html_m49c742b1
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:
tutorial-bluetooth_html_1b62b957
É 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.
tutorial-bluetooth_html_m13593101
É 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:
tutorial-bluetooth_html_4ccf9785
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 confirmação. Depois é só decidir onde salvar o arquivo :).
tutorial-bluetooth_html_m6d438c83
Com o Bluetooth configurado, você também pode transferir arquivos clicando com o botão direito e usando a opção “Ações > Enviar com bluetooth…”.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X