quarta-feira, 23 de setembro de 2009

Symbian & Ubuntu - Celular como Modem Bluetooth

linux-pinguim_rambo

Uma das primeiras "missões" que assumi quando instalei o Ubuntu 8.04 LTS em meu notebook foi torná-lo realmente móvel: sem cabos para nenhuma conexão. E isso envolvia acessar a Internet sem cabos, em virtualmente qualquer lugar, por 3G. Isso o N95 faz, mas o problema é que o PC Suite não funciona no Linux, nem rezando para São Wine. Talvez no futuro, espero que bem próximo, tenhamos um PC Suite funcional para Linux, porque fechar portas para qualquer sistema operacional é o mesmo que recusar clientes. Mas, por sorte ou propositalmente, os Nokias não são fechados, e para quem tem conhecimento em programação de driver fica fácil criar drivers para eles.
Mas eu não tenho experiência em criação de drivers, então qual a saída? Ora, reze para São Google que ele te salvará.
Este post pode parecer grande e difícil de fazer, mas não é. Ocorre que detalhei o máximo possível, inclusive com a intenção de explicar o que cada parte faz. Na minha opinião, a pior parte de se fazer algo é não saber para quê se está fazendo aquilo, então eu resolvi explicar tudo direitinho.

1 - Explicando a idéia

Os celulares há muito tempo possuem um recurso implementado pelos fabricantes que permitem que estes trabalhem como modem digital, ou seja, faz com que os dados passem diretamente da rede digital de telefonia para uma porta de dados nos computadores, como serial RS232 ou, mais comum, USB, sem que seja necessário conversores de áudio-dados. Só que, como todo dispositivo atual, o sistema operacional do computador alvo precisa saber como trabalhar com este modem, precisa saber o que fazer com ele e como acessar seus comandos. É aí que entra este tutorial: configuraremos o Ubuntu para reconhecer o modem-celular Nokia e acessar a Internet através de uma conexão GSM, GPRS e até mesmo 3G, dependendo de sua operadora.
Vale lembrar que um plano de dados é necessário para este procedimento, pois utilizar dados no celular sem um plano contratado costuma ser muito, muito caro!
No meu caso, tenho um plano 3G ilimitado, através de SIM CHIP, que funcionaria em um modem 3G mas que estou utilizando no Nokia N95. Notem que também funciona em meu antigo (e ótimo) Nokia N-Gage, só que em velocidade de GPRS, porque o N-Gage não tem 3G. Basta trocar o SIM CHIP entre os aparelhos, selecionar o celular no Gnome-PPP (veremos isso já-já) e usar.
Eu tenho o costume de tentar explicar os pormenores de todos os processos, então pode parecer difícil pelo tamanho do texto mas, na prática, é tudo muito fácil e rápido. Então, não se assustem, o texto foi feito para que até mesmo o mais leigo em Linux possa configurar facilmente seu celular como modem.

2 - Reconhecendo o adaptador Bluetooth

Antes de tudo, o básico é verificar se seu adaptador Bluetooth está funcionando no Ubuntu. tenho vários adaptadores bluetooth, desde um antigo Clone BF-7221 até um micro-bluetooth adquirido recentemente para ficar escondido no Notebook. Todos foram reconhecidos automaticamente no Ubuntu Hardy Heron e também no Ubuntu Intrepid Ibex. Creio que poucos terão dificuldades com o adaptador bluetooth.
Então, basta plugar seu adaptador bluetooth na porta USB de seu micro, que o Ubuntu reconhecerá o dispositivo. Basta então configurar o painel para mostrar o ícone de opções para o bluetooth, caso este não esteja aparecendo. Vamos aos passos:
2.1 - Selecione no menu do painel a opção Sistema -> Preferências -> bluetooth;
2.2 - Na aba de opções "Geral" selecione a opção "Mostre o ícone somente quando algum adaptador esteja presente";
2.3 - Clique no botão "Fechar".
Pronto, se o ícone do bluetooth não estava aparecendo na barra do painel, agora estará.

3 - Procurando a porta de modem do celular

Com o adaptador bluetooth funcionando, podemos começar a detectar o telefone e configurar sua conexão por modem. Esta parte começa a ficar um pouco chata, porque, como o modem do celular não é padrão em nenhum sistema, sua configuração demanda de um pouco de trabalho, principalmente configurações em texto. Mas não se preocupe, não é difícil de configurar. Também não pense que você está em desvantagem com relação a outros sistemas operacionais, porque configurar o modem do celular não é intuitivo em nenhum sistema. Vamos ao trabalho então!
Primeiro, temos que descobrir o endereço MAC do bluetooth do celular. Vamos aos passos:
3.1 - Habilite no celular a comunicação Bluetooth. No Nokia N95 esta opção está em Menu -> Ferramentas -> Bluetooth. Na primeira aba há a opção "Bluetooth", selecione "Ativado";
3.2 - No Ubuntu, selecione no menu Aplicativos -> Acessórios -> Consola (ou Terminal). Uma janela com o terminal de comandos irá aparecer;
3.3 - Digite no terminal:
hcitool scan
uma lista de dispositivos bluetooth irá aparecer na janela. Anote o número que aparece à esquerda do seu celular. Este número, no formato XX:XX:XX:XX:XX:XX, que contém letras e números, é o endereço MAC do chip bluetooth do seu celular. Cada chip bluetooth tem um número, não existem dois chips com números iguais (ou pelo menos não deveria existir).
Agora precisamos descobrir qual é o canal de comunicação do celular que é utilizado para comunicação via modem. Vamos aos passos:
3.4 - No consola (ou terminal) do ubuntu, digite o comando
sdptool search DUN xx:xx:xx:xx:xx:xx
claro, substitua os "XX" pelo número MAC que você anotou nos passos anteriores. Digite todos os caracteres em minúsculo. Uma listagem gigante irá aparecer na consola-terminal. Subindo na tela, procure na listagem uma seção chamada "Dial-up network". Algumas linhas abaixo haverá um campo chamado "Channel:" e um número. Este número é o canal de comunicação do modem. Para o N95 é comum que o canal seja "2". Anote este número também, e vamos configurar o programa de conexão do Ubuntu, o Gnome-PPP.

4 - Instalando o WVDial e o Gnome-PPP

Bem, antes de tudo, o Ubuntu precisa estar preparado para discar uma conexão PPP, ou seja Point-to-Point-Protocol, que é o protocolo de comunicação ponto-a-ponto entre o sistema operacional e o provedor de acesso à Internet. Para quem tem familiaridade, estes programas são a versão Linux daqueles discadores utilizados no Windows, para acesso à Internet por modem discado. Mas não se preocupem, a velocidade destes discadores está limitada à velocidade de conexão da sua internet. Há dois programas disponíveis para o Ubuntu 8.04 e 8.10, o programa WvDial, que é um discador por modo texto, e o Gnome-PPP, que é a interface gráfica para o WvDial.
Para facilitar a vida de vocês, disponibilizei estes pacotes para download. Eu sei que é um paradoxo ter que baixar programas da Internet para poder ter acesso à Internet, mas, se você está lendo este artigo, acesso você já tem! Então basta baixá-los e instalá-los.
Vamos no passo a passo:
4.1 - Baixe todos os 10 pacotes: Pacotes PPP para Ubuntu 8.xx. Sugiro salvar todos os arquivos, temporariamente, no desktop do Ubuntu;
Obs.: antes de sair por aí brandando que "sou um traidor da causa GNU", hospedei sim os arquivos no Windows Live Skydive. A hospedagem funciona, é útil e é gratuita. Não seja xiita! ;-)
4.2 - Clique em cada um dos arquivos baixados. O instalador de pacotes do Ubuntu irá abrir. Clique no botão "Instalar pacote", para cada um dos arquivos.
Caso tudo ocorrer normalmente, seu Ubuntu agora tem capacidade de discar conexões PPP. Só precisamos agora conectar o modem-bluetooth-celular no discador.

5 - Configurando o WVDial

Como eu já havia dito, antes de discar a conexão temos que mostrar ao Ubuntu onde ele deve discar. Isso é feito configurando alguns parâmetros para o discador, que é o WVDial, para encontrar e acessar o modem-bluetooth-celular. Vamos aos passos:
5.1 - Caso tenha fechado a console/terminal, abra novamente (menu Aplicativos -> Acessórios -> Consola ou terminal).
5.2 - Digite o comando
sudo gedit /etc/bluetooth/rfcomm.conf
o terminal irá pedir a sua senha. Isso ocorre porque o comando "sudo" indica ao sistema que você quer executar o gedit (programa de edição de textos, semelhante ao Notepad) como usuário administrador (su = super usuário). este comando então irá editar, como super usuário, o arquivo de texto "rfcomm.conf" localizado no diretório /etc/bluetooth. Digite então sua senha.
5.3 - Lembram-se do número MAC e do número do canal anotados anteriormente, na configuração do bluetooth do celular? Vamos usá-los agora. Quando o gedit abrir o arquivo rfcomm.conf, você deverá incluir as seguintes linhas de texto:
rfcomm0 {
bind yes;
device número-MAC;
channel número-canal;
comment "nome-do-celular";
}
Substitua o número-MAC por aquela seqüência de seis números e letras, separados por ":" e sem o espaço. Não se esqueça de colocar o ";" no fim da linha.
Substitua o número-canal pelo número "Channel" do Dial-up network que você anotou anteriormente também. Não se esqueça de colocar o ";" no final da linha.
Na linha comment digite um nome para seu celular no lugar do nome-do-celular. Pode ser qualquer nome, só não se esqueça de colocá-lo entre aspas ("). Também coloque o ";" no final da linha.
5.4 - Clique no ícone do disquete do programa gedit (Salvar) ou então menu Arquivo -> Salvar, para aplicar as mudanças no arquivo rfcomm.conf.
5.5 - Feche o programa gedit (através do "x" da janela ou menu Arquivo -> Sair);
5.6 - Agora precisamos reiniciar o serviço bluetooth do sistema, para que a configuração salva possa ser aplicada. No consola-terminal, digite o comando
sudo /etc/init.d/bluetooth restart
se o consola pedir, digite novamente sua senha. Este comando reinicia o processo bluetooth, então o ícone do bluetooth pode apagar e acender novamente.
Pode fechar todas as janelas, inclusive o consola-terminal, pois as configurações já estão quase salvas. Só não feche seu browser, senão essas instruções também fecham, não é? ;-)
Pronto, o discador WVDial já está configurado e pronto para discar. Só falta agora configurar o Gnome-PPP, que é o discador gráfico, que roda sem precisar discar nada. Vamos a ele!

6 - Configurando o Gnome-PPP

O Gnome-PPP utiliza as configurações do WVDial para trabalhar. Assim, as configurações que fizemos aí atrás já deixam ele quase pronto para funcionar.
O que o Gnome-PPP faz é entrar em contato com o modem-bluetooth-celular, gerar o comando de discagem e discar o número. Para isso, vamos configurar o Gnome-PPP para acessar seu celular:
6.1 - No painel de menu do ubuntu, selecione Aplicativos -> Internet -> Gnome PPP;
6.2 - O programa Gnome-PPP irá se abrir. Clique no botão "Configuração";
6.3 - Na aba "Modem", configure da seguinte forma:
Dispositivo: /dev/rfcomm0
Tipo: Modem Analógico
Velocidade: 460800
Linha de telefone: Tom
Volume: Alto
6.4 - Clique no botão "Números de telefone". Uma nova janela irá se abrir, então clique na posição 1 e coloque o seguinte número:
*99***1#
Clique no botão "Fechar"
6.5 - Clique no botão "Seqüências de inicialização". Uma nova janela irá se abrir, então clique na posição "Init 2" e preencha com os seguintes dados:
6.5.1 - Para operadora Claro
AT+CGDCONT=1,"ip","claro.com.br"
6.5.2 - Para operadora Vivo
AT+CGDCONT=1,"ip","zap.vivo.com.br"
6.5.3 - Para operadora TIM
AT+CGDCONT=1,"ip","tim.br"
6.5.4 - Para operadora OI
AT+CGDCONT=1,"ip","gprs.oi.com.br"
clique no botão "Fechar".
6.6 - Clique na aba "Opções" e na seção "Integração com a área de trabalho" desmarque a caixa "Minimizar" e marque a caixa "Mostrar na área de notificação". Clique no botão "Fechar" e novamente no botão "Fechar".
6.7 - De volta à janela de entrada do Gnome-PPP, preencha os campos da seguinte forma:
6.7.1 - Operadora Claro
Nome de Usuário: Claro
Senha: claro
Número de telefone: *99***1#
6.7.2 - Operadora Vivo
Nome de Usuário: Vivo
Senha: vivo
Número de telefone: *99***1#
6.7.3 - Operadora TIM
Nome de Usuário: Tim
Senha: tim
Número de telefone: *99***1#
6.7.4 - Operadora Oi
Nome de Usuário: Oi
Senha: oi
Número de telefone: *99***1#
em todos os casos, habilite a caixa "Lembrar senha"
6.8 - Clique no botão "Conectar". Aguarde alguns segundos, e o ícone de conexão irá aparecer na área de notificação da barra de tarefas.
Pronto, você já está conectado à Internet pelo seu celular. Agora só é necessário realizar uma pequena configuração no Mozilla Firefox para ele reconhecer incondicionalmente a conexão via mode.

7 - Configurando o Mozilla Firefox

O Mozilla firefox, no Ubuntu, está intimamente atrelado ao Network Manager, e não reconhece de imediato a conexão do Gnome-PPP. Para acessar páginas pelo firefox com o Gnome-PPP, todas as vezes que abre-se o aplicativo é necessário ir até o menu Arquivo -> Modo offline, desmarcando esta caixa de seleção. Isso é um bug do Mozilla Firefox, mas facilmente configurável.
7.1 - Abra o Mozilla Firefox e, na caixa de endereço de página digite o seguinte endereço:
about:config
uma página com o título "Isto pode anular sua garantia" com um texto e uma pergunta irá aparecer. Não se preocupe, essa garantia não tem nada a ver com a garantia do seu micro, é só a garantia do funcionamento do Firefox. Esta configuração que iremos fazer não irá danificar nada. Então, clique no botão "Serei cuidadoso, eu prometo!" ;-)
7.2 - Uma lista de comandos de configuração irá aparecer. Clique com o botão direito do mouse sobre esta lista. Aparecerá um menu, selecione a opção "Nova opção -> boolean";
7.3 - Uma caixa par a nova opção irá aparecer. Digite nesta caixa
toolkit.networkmanager.disable
caso o valor desta variável (coluna "Valor") estiver com o valor "false", clique com o botão direito sobre o nome toolkit... e selecione a opção "Inverter valor".
7.4 - Certifique-se que o valor da variável mudou para "true".
7.5 - Feche o Mozilla Firefox e abra novamente. Agora ele irá sempre abrir em modo "Online", e funcionará sem problemas com o Gnome-PPP.
Pronto! Seu Ubuntu está agora navegando pela Internet, sem fios, por rede celular.
Esta configuração funcionou em vários Nokias: N95, N73 e até em um antigo N-Gage, tanto em GPRS quanto em 3G.
As configurações que postei aqui são um combinado de várias tentativas que outras pessoas realizaram, e postaram na Internet. Tomei algumas dessas configurações, criei as minhas próprias que funcionaram e postei para vocês. Mas vale citar as principais fontes do conhecimento dessas configurações.
Comunidade Ubuntu:
https://help.ubuntu.com/community/BluetoothDialup
Carlos Morimoto na GDH Press Blog:
http://www.gdhpress.com.br/blog/bluetooth-dun-no-linux
Posso dizer que esta não é uma cópia de outros blogs, mas é a forma que consegui desenvolver e que funcionou (e continua funcionando) em várias máquinas que instalo o Ubuntu, tanto nas versões 8.04 como 8.10. Já foi testado nos notebooks Toshiba Satellite, DATEN e HP Pavillion, e obtive ótimos resultados. Mas se mesmo assim vocês tiverem dificuldades, é só me contactar.

Assuntos deste post:
3G no Linux
3G no Ubuntu
Modem celular Nokia
Gnome-PPP
WVDial
3G via Bluetooth celularlinux-win

Um comentário:

  1. Olá Alleiner Engel,
    muito bem detalhado este tuto.
    Muito bom mesmo, parabéns!

    ResponderExcluir

Desde já o blog The Mobipress agradece o seu comentário.