Vous êtes sur la page 1sur 10

3G com modems USB Huawei 220/226 e

E156, e Aiko 82D no Linux


http://www.guiadohardware.net/tutoriais/3g-linux/

Tutoriais
A compatibilidade dos modems 3G USB no Linux é foco de dúvidas freqüentes. Alguns
usuários conseguem conectar sem praticamente nenhum esforço, enquanto outros tem
dificuldades ou simplesmente desistem antes de conseguirem conectar. O objetivo deste
tutorial é desmistificar o tema e mostrar como ativar os modems mesmo em
distribuições antigas, onde eles não são detectados automaticamente.Carlos E.
Morimoto
12/11/2008

A compatibilidade dos modems 3G USB no Linux é foco de dúvidas


freqüentes. Alguns usuários conseguem conectar sem praticamente nenhum esforço,
enquanto outros tem dificuldades ou simplesmente desistem antes de conseguirem
conectar. Muitas dicas sobre o tema incluem apenas um conjunto inflexível de passos,
que dá a entender que o modem não vai funcionar se tudo não for feito exatamente
como explicado. O objetivo deste tutorial é desmistificar o tema e mostrar como ativar
os modems mesmo em distribuições antigas, onde eles não são detectados
automaticamente.

A primeira coisa a ter em mente é que os modems USB nada mais são do que celulares
simplificados, onde a tela, teclado e outros componentes "não essenciais" foram
removidos, deixando apenas o rádio, o processador de sinais e outros circuitos
necessários para acessar a rede de dados. Embora as operadoras normalmente ofereçam
os planos de acesso à web sem voz apenas em conjunto com os modems USB, nada
impede que você compre apenas o chip avulso e o utilize em qualquer aparelho que
tiver em mãos.
Diferente dos softmodems para acesso discado, que são dispositivos burros, controlados
inteiramente via software, os modems 3G USB são dispositivos completos, que
executam todas as funções via hardware e são controlados através de comandos AT. Via
de regra, todos são compatíveis com o Linux, suportados através do módulo "usbserial"
do Kernel, responsável por criar o canal de comunicação por onde são transferidos os
dados.

Os problemas de compatibilidade no Linux surgem devido a três fatores simples:

1) Muitos modems incluem um chip de memória flash, que é usado para armazenar os
drivers do Windows. Este chip de memória flash é visto pelo sistema como um drive de
CD-ROM virtual, o que faz com que o modem se comporte como sendo dois
dispositivos diferentes. Versões antigas do Kernel se confundiam com isso, detectando
apenas a memória flash e não o modem propriamente dito, um problema que pode ser
resolvido através de regras do UDEV que orientam o sistema a ignorar o drive virtual e
ir direto para a detecção do modem.

2) Distribuições antigas (que usam conseqüentemente versões antigas do Kernel) não


incluem os códigos de identificação dos modems e por isso não são capazes de ativá-los
automaticamente. Nesses casos precisamos apenas especificar manualmente ao carregar
o módulo.

3) Discadores como o kppp e o gnome-ppp foram originalmente desenvolvidos para


usarem modems discados e não modems 3G. Isso torna a configuração muitas vezes
complicada, pois você precisa especificar as strings corretas ao configurar, caso
contrário acaba recebendo erros diversos na hora de conectar. Justamente por isso
prefiro usar o wvdial, onde você pode especificar toda a configuração diretamente.

Como pode ver, são todos problemas contornáveis. Em distribuições recentes, os passos
são executados automaticamente, de forma que o modem é detectado diretamente, como
esperado. Para as distribuições antigas, onde isso ainda não acontece, você pode seguir
as dicas que veremos mais adiante.

Os modems USB são quase sempre detectados pelo sistema como "/dev/ttyUSB0",
enquanto os smartphones ligados na porta USB são geralmente vistos como
"/dev/ttyACM0" mas, como de praxe, podem haver exceções. Em caso de dúvida, você
pode descobrir qual é a porta correta usando o comando "dmesg" alguns segundos
depois de plugar o modem. Entre as últimas linhas, você verá duas mensagens similares
a:

[77875.428241] option 7-3:1.0: GSM modem (1-port) converter detected

[77875.428517] usb 7-3: GSM modem (1-port) converter now attached to ttyUSB0

... onde o "ttyUSB0" indica a porta usada pelo modem, dentro do diretório "/dev".

A principal dica para não ter problemas relacionados à detecção do modem é usar uma
distribuição recente, lançada a partir da segunda metade de 2008, como no caso do
Ubuntu 8.10. Por utilizarem versões atualizadas do Kernel, elas são capazes de detectar
os modems diretamente, sem necessidade de configurações manuais, como no caso das
versões antigas.

Com o modem detectado, o próximo passo é configurar a conexão. A forma mais rápida
de gerar a conexão é usar o wvdial, que é um discador de modo texto, onde você pode
simplesmente colocar as configurações de discagem dentro de um arquivo de texto e
chamá-lo sempre que quiser ativar a conexão. Você pode instalá-lo usando o
gerenciador de pacotes, como em:

# apt-get install wvdial

ou:

# urpmi wvdial

Para usá-lo, edite o arquivo "/etc/wvdial.conf", seguindo este modelo:

[Dialer 3g]

Modem = /dev/ttyUSB0

Baud = 921600

DialCommand = ATDT

Check Def Route = on


FlowControl = Hardware(CRTSCTS)

Username = vivo

Password = vivo

Phone = *99#

Stupid mode = 1

Auto Reconnect = on

Auto DNS = on

Init1 = ATZ

Init2 = ATQ0 V1 E1 S0=0 &C1 &D2

Init3 = AT+CGDCONT=1,"IP","zap.vivo.com.br"

ISDN = 0

Modem Type = Analog Modem

Em casos de problemas com a discagem, você pode experimentar remover a linha


"Init3", que causa problemas em alguns modems. Ela não é realmente necessária na
maioria dos casos, pois PC obtém a APN ao estabelecer a conexão.

Aqui vão os parâmetros de configuração para as principais operadoras (no final de


2008). As configurações mudam conforme as operadoras atualizam suas redes, por isso
não deixe de checar em caso de erro:

Vivo:

Usuário e senha: vivo/vivo

Telefone: *99#

APN: zap.vivo.com.br

Claro:

Usuário e senha: claro/claro

Telefone: *99***1#

APN: bandalarga.claro.com.br

TIM:
Usuário e senha: tim/tim

Telefone: *99# (para as conexões 3G) ou *99***1# (para os planos antigos, com
EDGE)

APN: tim.br

Se por acaso você ainda estiver usando um dos planos CDMA da Vivo, o número de
discagem é "#777" e o login é o número do telefone (incluindo o código de área),
seguido de um "@vivozap.com.br" como em "1199998888@vivozap.com.br", com a
senha "vivo".

Depois de salvar o arquivo, tente discar usando o wvdial. Com as opções a conexão
deve passar a ser estabelecida normalmente.

# wvdial 3g

Para a maioria dos modems essa configuração é suficiente, mas muitos modelos, como
o Aiko 82D e o Huawei E156 precisam de um conjunto de opções adicionais.
Originalmente o modem chega a discar e iniciar a conexão, mas desconecta sozinho
logo depois. Para solucionar o problema, é necessário voltar ao "/etc/ppp/options" e
adicionar também as linhas "asyncmap 0xa0000", "mru 1500" e "refuse-chap" no final
do arquivo.

Caso o sistema não esteja obtendo automaticamente os endereços DNS da operadora ao


ativar a conexão, edite o arquivo "/etc/ppp/options" e adicione a opção "ipcp-max-
failure 30" no final do arquivo. Essa opção orienta o discador a esperar mais tempo
pelas configurações da conexão antes de desistir, dando mais tempo ao servidor remoto.

Ele é um daqueles arquivos grandes e intimidadores, com mais de 350 linhas de opções,
mas você não precisa se preocupar com elas. Basta adicionar as linhas no final do
arquivo "/etc/ppp/options", logo depois do "# ---<End of File>---", como em:

# ---<End of File>---

asyncmap 0xa0000

mru 1500

refuse-chap

ipcp-max-failure 30

Depois de fazer as alterações, é só discar novamente, usando o comando "wvdial 3g".

Se você não quer ter trabalho, pode usar meu script para conexão no Vivo Zap No
Linux (que apesar do nome também pode ser usado em conexões de outras operadoras)
que está disponível no:

http://www.gdhpress.com.br/blog/script-vivo-zap/
Solucionando problemas

Chegamos então às dicas para ativar o modem em distribuições antigas, baseadas em


versões do Kernel anteriores à 2.6.20. Em caso de dúvidas, você pode checar a versão
instalada usando o comando "uname -a".

Estes passos são necessários apenas se o modem não está sendo detectado
automaticamente pelo sistema, em distribuições atuais eles são executados
automaticamente.

Para os modems Huawei 220 e 226 (os redondinhos) é necessário instalar o arquivo
"huawei.tar.bz2", disponível no http://oozie.fm.interia.pl/pro/huawei-e220/. Ao ser
instalado, ele adiciona as regras do UDEV que são necessárias para o sistema detectar o
modem.

Se você achou a instalação do pacote complicada, outra opção é fazer o serviço você
mesmo, criando o arquivo "/etc/udev/rules.d/99-huawei.rules", com o seguinte
conteúdo:

SUBSYSTEM=="block", ACTION=="add",

SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1003",

OPTIONS="ignore_device"

SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1",

SYSFS{idProduct}=="1003",
RUN+="/sbin/modprobe usbserial vendor=0x12d1 product=0x1003"

Estas orientações crípticas fazem com que o sistema ignore a detecção do CD-ROM
virtual (o chip de memória flash contendo os drivers Windows) e logo em seguida
carregue o módulo que dá suporte ao modem, com os parâmetros apropriados para
detectá-lo. Para que o sistema leia as novas regras sem que você precise reiniciar o
micro, use o comando:

# udevcontrol reload_rules

Depois de salvar o arquivo, desconecte o modem e reconecte novamente para que as


regras façam seu papel e o modem seja detectado, usando a porta "/dev/ttyUSB0".
Espere uns 15 segundos para que o sistema tenha tempo de ativar o modem e tente
ativar a conexão.

Outra solução é baixar o arquivo "huawei.out", disponível no: http://wiki.ubuntu-


br.org/TimWeb

.... e executá-lo antes de discar, como em:

# ./huawei.out

# wvdial 3g

Ele é um pequeno programa escrito em C que se encarrega de ativar o modem, de forma


similar à regra do UDEV que vimos a pouco (ele foi compilado para o Ubuntu 7.10,
mas funciona também em algumas outras distribuições. Para as demais é necessário
baixar o código fonte e compilar manualmente).

Se você está usando o Kurumin 7 (ou outra distribuição baseada no Debian Etch) pode
usar o arquivo disponível no: http://www.gdhpress.com.br/blog/arquivos/k7/huawei.out

Para o Huawei E620 (EC325) a receita é a mesma, a única diferença é que ele utiliza o
idProduct "1001" e não "1003" como o E220, por isso modificamos o número dentro do
arquivo "/etc/udev/rules.d/99-huawei.rules", que fica:
SUBSYSTEM=="block", ACTION=="add",

SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1001",

OPTIONS="ignore_device"

SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1",

SYSFS{idProduct}=="1001",
RUN+="/sbin/rmmod option; /sbin/modprobe usbserial vendor=0x12d1
product=0x1001"

Em algumas distribuições, é necessário descarregar o módulo "option" antes de carregar


o usbserial para que o modem seja detectado, por isso incluí o comando dentro do
arquivo, para que ele seja executado automaticamente.

Outro modelo muito comum é o Aiko 82D (ZTE MF622), que é usando pela Vivo,
Claro e TIM:

Para ele, o procedimento é similar, mudando apenas alguns dos parâmetros usados. Crie
o arquivo "/etc/udev/rules.d/99_aiko82e.rules", com o seguinte conteúdo:

SUBSYSTEM=="block", ACTION=="add",

SYSFS{idVendor}=="19d2", SYSFS{idProduct}=="2000",

OPTIONS="ignore_device"

SUBSYSTEM=="usb",

SYSFS{idVendor}=="19d2", SYSFS{idProduct}=="0001",

RUN+="/sbin/modprobe usbserial vendor=0x19d2 product=0x0001"


Salve o arquivo, rode o comando "udevcontrol reload_rules" (como root) para ativar a
nova regra e desconecte/reconecte o modem para que ele seja detectado.

Um modelo mais recente é o Huawei E156, um dos preferidos atualmente, por ser bem
menor que os modelos anteriores, quase do tamanho de um pendrive:

No caso dele, não é necessário adicionar regras adicionais no UDEV, pois nele o chip
de memória flash é opcional, instalada através de um cartão micro-SD (o que permite
que ele seja usado também como leitor de cartões. No caso dele, você precisa apenas
remover o cartão, em caso de problemas:
Graças a isso, ele é detectado diretamente pelo sistema mesmo em distribuições antigas,
ativado através da porta "/dev/ttyUSB0".

Entretanto, ele possui um conjunto de peculiaridades nos comandos AT suportados, que


fazem com que ele só funciona caso você tenha adicionado as opções "asyncmap
0xa0000", "mru 1500" e "refuse-chap" no final do arquivo "/etc/ppp/options", como
mostrei anteriormente.

Sem elas, o modem desconecta logo depois de estabelecer a conexão, dando origem aos
relatos de problemas que você pode encontrar pela web.

Se você está usando um smartphone e não está conseguindo estabelecer a conexão,


experimente desligá-lo, ligá-lo e conectá-lo novamente. Se está usando um aparelho da
Nokia, certifique-se de que ele está configurado para se conectar ao PC em modo PC
suíte (a configuração vai no Conectividade > USB). Em alguns aparelhos novos, como o
E71 está disponível também o modo "Conect. PC à Internet", mas ele não funciona no
Linux, diferente do PC Suite.

Vous aimerez peut-être aussi