você está aqui: Home  → Arquivo de Mensagens Workshop Gratuito: Os Segredos do Shell, com o Prof. Julio Neves

Modem Huawei E156b e Vivo Zap no Debian Lenny

Colaboração: Bruno Buys

Data de Publicação: 04 de Novembro de 2009

É bem simples. Para isso você deve ter o wvdial instalado. Plugue o modem na máquina e veja o dmesg. Aparecerão linhas assim:

[  284.820094] usb 5-1: new high speed USB device using ehci_hcd and address 3
[  284.963388] usb 5-1: New USB device found, idVendor=12d1, idProduct=1003
[  284.963405] usb 5-1: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[  284.963417] usb 5-1: Product: HUAWEI Mobile
[  284.963425] usb 5-1: Manufacturer: HUAWEI Technology
[  284.963729] usb 5-1: configuration #1 chosen from 1 choice
[  285.225302] Initializing USB Mass Storage driver...
[  285.226058] usb-storage: probe of 5-1:1.0 failed with error -1
[  285.226114] usbcore: registered new interface driver usb-storage
[  285.226125] USB Mass Storage support registered.
[  285.226892] usb 5-1: USB disconnect, address 3
[  292.532234] usb 5-1: new high speed USB device using ehci_hcd and address 4
[  292.679507] usb 5-1: New USB device found, idVendor=12d1, idProduct=1003
[  292.679525] usb 5-1: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[  292.679537] usb 5-1: Product: HUAWEI Mobile
[  292.679545] usb 5-1: Manufacturer: HUAWEI Technology
[  292.679859] usb 5-1: configuration #1 chosen from 1 choice
[  292.685403] usb-storage: probe of 5-1:1.0 failed with error -5
[  292.689253] usb-storage: probe of 5-1:1.1 failed with error -5
[  292.693103] usb-storage: probe of 5-1:1.2 failed with error -1
[  292.696929] usb-storage: probe of 5-1:1.3 failed with error -1
[  293.322818] usbcore: registered new interface driver usbserial
[  293.322865] USB Serial support registered for generic
[  293.322967] usbcore: registered new interface driver usbserial_generic
[  293.322973] usbserial: USB Serial Driver core
[  293.411645] USB Serial support registered for GSM modem (1-port)
[  293.411743] option 5-1:1.0: GSM modem (1-port) converter detected
[  293.411983] usb 5-1: GSM modem (1-port) converter now attached to ttyUSB0
[  293.412053] option 5-1:1.1: GSM modem (1-port) converter detected
[  293.412202] usb 5-1: GSM modem (1-port) converter now attached to ttyUSB1
[  293.412259] usbcore: registered new interface driver option
[  293.412266] option: v0.7.2:USB Driver for GSM modems

Resumidamente, isso significa que o kernel tentou carregar o módulo de armazenamento USB para o dispositivo e deu erro. Então tentou o usbserial, que é o correto. Só que ele tem que ser reinserido com os parâmetros corretos para o modelo do modem.

Remova e depois reinsira os módulos option e o usbserial, com os parâmetros corretos:

rmmod option usbserial
modprobe option
modprobe usbserial vendor=0x12d1 product=0x1003

(estes parâmetros são tirados do próprio dmesg)

Agora copie este arquivo wvdial.conf para o seu /etc/wvdial.conf (um backup do anterior não faz mal a ninguém...):

/etc/wvdial.conf

[Dialer Defaults]
Modem = /dev/ttyUSB0
ISDN = off
Modem Type = USB Modem
Baud = 460800
Init = ATZ
Init2 = AT+CFUN=1
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init4 = AT+CGDCONT=1,"IP","zap.vivo.com.br

"
Init5 =
Init6 =
Init7 =
Init8 =
Init9 =
Phone = *99#
Phone1 =
Phone2 =
Phone3 =
Phone4 =
Dial Prefix =
Dial Attempts = 1
Dial Command = ATM1L3DT
Ask Password = off
Password = vivo
Username = vivo
Auto Reconnect = off
Abort on Busy = off
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = off
Idle Seconds = 0
Auto DNS = on

Feito isso, inicie o wvdial:

$ wvdial

Você verá o programa iniciando o modem, tentando discar, conectando, etc:

boson:/home/bruno# wvdial
—> WvDial: Internet dialer version 1.60
—> Cannot get information for serial port.
—> Initializing modem.
—> Sending: ATZ
ATZ
OK
—> Sending: AT+CFUN=1
AT+CFUN=1
OK
—> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
—> Sending: AT+CGDCONT=1,"IP","zap.vivo.com.br

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

"
OK
—> Modem initialized.
—> Sending: ATM1L3DT*99#
—> Waiting for carrier.
ATM1L3DT*99#
CONNECT
—> Carrier detected.  Starting PPP immediately.
—> Starting pppd at Thu Oct 29 13:43:27 2009
—> Pid of pppd: 3218
—> Using interface ppp0
—> local  IP address XXX.XXX.XXX.XXX
—> remote IP address XXX.XXX.XXX.XXX
—> primary   DNS address XXX.XXX.XXX.XXX
—> secondary DNS address XXX.XXX.XXX.XXX
^CCaught signal 2:  Attempting to exit gracefully...
—> Terminating on signal 15
—> Connect time 25.5 minutes.
—> Disconnecting at Thu Oct 29 14:08:57 2009
boson:/home/bruno#

Nessa saída eu substituí os IP's por XXX, por segurança.

Iniciado o PPP, você verá essas linhas no dmesg:

[ 1010.536988] PPP generic driver version 2.4.2
[ 1010.906930] PPP BSD Compression module registered
[ 1011.094108] PPP Deflate Compression module registered

O wvdial não adiciona rota padrão. Adicione você mesmo:

route add default gw XXX.XXX.XXX.XXX (onde o IP é o "remote IP address").

Depois, para desconectar, use Ctrl+C. O programa desconecta e sai. Note dessa linha em diante:

^CCaught signal 2:  Attempting to exit gracefully...

Se você fez tudo isso na primeira vez e deu certo, não precisa copiar o arquivo na 2a em diante. Só reinserir os módulos e rodar o wvdial. Automatizar isso aí deve ser simples. Alguém se habilita?

OBS - O arquivo /etc/wvdial.conf foi adaptado desse tutorial do Viva o Linux: http://www.vivaolinux.com.br/script/Huawei-Claro-Configurar-modem-Huawei-no-Linux que é para o mesmo modem mas na Claro. Alguns parâmetros são diferentes.

OBS 2 - O parâmetro Stupid Mode = off pode ser mudado para Stupid Mode = 1, o que faz o wvdial não esperar pelo prompt e iniciar o PPP imediatamente, portanto é mais rápido para conectar. Mas por algum motivo, é mais instável e a conexão fica caindo. Não sei se é coincidência ou não, mas voce pode testar os dois e ver o que funciona melhor para você.



Veja a relação completa dos artigos de Bruno Buys