quarta-feira, 16 de dezembro de 2009

VIVO 3G using Huawei e1756 on Ubuntu 9.10 Karmic

Quick and fast tip to show a way to connect to 3G using Hawei e1756 modem on Ubuntu 9.10 Karmic.

The problem: The modem itself has a little micro-SD card reader inside and guess what? The kernel identifies it as card reader and not as a 3G modem. Good. ¬¬"

The fix: To solve this minor issue, first you have to install a tool that helps you to switch between storage device and usb serial device, the usb_modeswitch. For this just apt-install the usb-modeswitch package.

Then, modify its config file (/etc/usb_modeswitch.conf) adding the lines below:
# Huawei E1692/E1756
DefaultVendor= 0x12d1
DefaultProduct= 0x1446

TargetVendor= 0x12d1
TargetProduct= 0x140c

MessageContent="55534243000000000000000000000011060000000000000000000000000000"

CheckSuccess=5

These lines tells your usb_modeswitch that if the vendor id 0x12d1 and the product id 0x1446 are found on your usb devices, then it will be switched to product id 0x140c. It means that the usb_modeswitch will switch from storage device to 3G modem. So far so good. :)

Then we have to write a udev rule that tells the system to ignore the card reader and identify it as a 3G modem as we plug it in. Write a file named /etc/udev/rules.d/15-hauwei.rules containing these lines:

SUBSYSTEM=="block", \
ACTION=="add", \
SYSFS{idVendor}=="12d1", \
SYSFS{idProduct}=="1446", \
OPTIONS="ignore_device"

SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/usb_modeswitch"

Your udev now will run usb_modeseitch every time you plug in an usb stick with product id and vendor id matching those values.

Restart your udev:
$ service udev restart

And now, your system should be able to identify your 3G modem. After all these done, you have to configure your NetworkManager. This last step is pretty simple and strightforward, so, I will let you handle this by yourself :)

Any problems please feedback!

[update] I wrote this post drinking wine (long story) and I completely forgot to thank Ursinha for the usb_modeswitch tip. Soooorry and thank you bro! :-)

[update 2] And it seems that NetworkManager doesn't like 3G modems, at least not now. So I had to configure some extra lines on /etc/wvdial.conf and /etc/ppp/options in order to use wvdial and connect using /dev/nail (yeah, that was a joke, there is no such a device):

otubo@minivader ~ $ cat /etc/wvdial.conf

[Dialer 3g]
; Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
; Phone =
ISDN = 0
; Username =
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
; Init3 = AT+CGDCONT=1,"IP","zap.vivo.com.br"
; Password =
Modem = /dev/ttyUSB0
Baud = 921600
DialCommand = ATDT
Check Def Route = on
FlowControl = Hardware(CRTSCTS)
; Username = 1997848815@vivozap.com.br
Username = vivo
Password = vivo
Phone = *99#
Stupid mode = 1
Auto Reconnect = on
Auto DNS = on

otubo@minivader ~ $ egrep -v '#|^ *$' /etc/ppp/options
asyncmap 0
noauth
crtscts
lock
hide-password
modem
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
noipx
asyncmap 0xa0000
mru 1500
refuse-chap
ipcp-max-failure 30


Then, to connect to internet using your 3G modem you just have to run:

root@minivader:~# wvdial 3g
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2
ATQ0 V1 E1 S0=0 &C1 &D2
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Dec 17 20:38:52 2009
--> Pid of pppd: 3488
--> Using interface ppp0
--> local IP address 187.88.116.150
--> remote IP address 10.64.64.64
--> primary DNS address 200.142.130.202
--> secondary DNS address 200.220.227.100

And this time, special thanks to Kleber that helped me debugging that shit :-)

29 comentários:

Vinícius Vieira disse...

Thanks for this post, my modem is now working well on Ubuntu. There is just one problem I found.

You told to create a udev rule file "/etc/udev/rules.d/15-huwei.rules" but the vendor name is wrong (it's missing letter 'a'). The correct is "/etc/udev/rules.d/15-huawei.rules".

Eduardo Otubo disse...

@vfvieira, yes that's correct. My typo :) Thanks for the feedback!

Anônimo disse...

Funny thing is that with me the exact opposite happened: in Ubuntu 9.04, I could only put my 3G modem to work using wvdial, but in 9.10 it works fine with network manager.

Thanks for posting that, I'm sure a lot of people in trouble will make a very good use of it!

Cheers :)

Fabiano Meneghetti disse...

Eduardo, and do you know how about to install on MacOS Snow Leopard?

Thnaks you!

saldanha disse...

Muito obrigado pela sua ajuda, valeu mesmo.

saldanha - Polícia Militar

Anônimo disse...

Thanks my modem is working with my netbook now. and network-manager does like it all right.

Rafael O. Alves disse...

oi,
segui seu tutorial direitinho,
mas ainda não consigo fazer meu ubuntu 9.10 reconhecer o modem huawei e1756.
onde será que estou errando?

Jorge Palmeira disse...

Verry good!!!!

Thanks

Anônimo disse...

Gracias por los consejos... lo instalé en Ubuntu y ahora lo probaré en Xubuntu. Saludos de Chile.

ZethaByte disse...

Thanks for this post .. my modem huawey e1756 is run in ubuntu 9.10.

kool.

Anônimo disse...

Linux ja dificil de mexer, em ingles entao!! Tem um tuto em portugues nao parceiro? Thanks!!

Anônimo disse...

This worked beautifully, I didn't have to complete the steps after adding the udev rule and restarting udev.

Just wanted to send out a sincere thank you :)

Anônimo disse...

Thank you very much! This post works fine. Mi módem Huawei funciona ahora, tuve que usar gnome-ppp. Gracias!

Martin disse...

Eduardo, muito obrigado pelo post.

Tenho um provlema com meu Huawei E1756, quando eu plug o modem no Ubuntu nada acontece. Antes e depois de fazer o instrutivo.
O dispositivo nao é reconhecido.
voce sabe o que pode ser?

desculpe meu Português ;)

Obrigado, saudações da Argentina.

Martin disse...

Oi, muito obrigado, mais agora nao precisso de voce :P.
Estou escrevendo desde meu 3G da Movistar.

Muito obrigado novamente, o tutorial foi de muita ajuda.

Ha dois anos eu fiz um curso de Portugues. Mais acho que nao lembro nada!

Eu tambem gosto muito da fotografia, voce é bem-vindo a olhar alguma no meu blog: http://imagenespayanas.blogspot.com/search/label/fotos

Anônimo disse...

Thanks a lot,
It works also inwith Huawei 1752

Ubuntu 9.10 + Netwok Manager
and my Internet provider is oRANGE

Cícero Thiago disse...

Ótimo tutorial, me foi muito útil. Só uma ressalva quanto a configuração do wvdial, aqui no meu tive que mudar o modem de /dev/ttyUSB0 para /dev/ttyUSB_utps_modem. Parabéns.

Eduardo Otubo disse...

@cicero,

obrigado pela contribuição :)

Wagner Meira Jr. disse...

Caro Otubo,

Muito bom o seu tutorial e consegui fazer funcionar o modem muito bem. Entretanto, quando ele está em roaming, não funciona direito. Por exemplo, agora estou em São Paulo capital e não consigo conexão de forma alguma. Você ou alguém já teve essa experiência? Como entender o que está havendo?

Um abraço,

Wagner

Eduardo Otubo disse...

@Wagner,

Segundo a operadora onde comprei o meu modem, o pacote de dados não possui roaming. Dê uma olhada na saída do wvdial e poste aqui, pode ter alguma pista de por que não está funcionando.

Abraço!

Wagner Meira Jr. disse...

Oi Otubo,

Obrigado pela resposta. Já mandei consulta sobre as condições do meu plano e concordo que pode ser tão simples quanto isso. Vi também algumas outras mensagens sobre o assunto, em particular falando do perigo que é fazer roaming 3G em outras operadoras que não a sua. Você sabe como limitar a operadora que é utilizada? A definição da APN já faz isso?

Por último, tentei localizar o log do wvdial, e entendi que ele estaria no /var/log/messages, mas não está. Você sabe onde ficaria? Estou usando Ubuntu 9.10.

Um abraço,

Wagner

Eduardo Otubo disse...

@Wagner,

Não sei exatamente como funciona roaming para operadoras. Acho que o melhor caminho é ver com a operadora mesmo.

E o log do wvdial, dê uma olhada na saída do terminal quando executar o comando mesmo. Veja se a interface ppp0 é criada, dê um ping no gateway ou no DNS, veja até onde você consegue sair para a internet. Acho que pode ajudar a solucionar o problema.

[]'s

Clã dos lobos disse...

Olá Eduardo tenho uma pergunta!
Como faço para instalar e configurar o modem hauwei E1756 vivo no Sabayon 5.2 Amd 64 fontao_bpchq@hotmail.com
Desde já meu agradecimento!

Eduardo Otubo disse...

@cla do lobos,

Até onde eu sei, Sabayon é baseado em Gentoo. Então a lógica é a mesma: Instale usb_modeswitch, faça as regras de udev, configure o wvdial e mande ver. Se travar fale onde que eu tento ajudar :)

[]'s

Anônimo disse...

Eduardo... tdo em ordem parceiro?
Bom, seguinte... to seguindo seu tutorial, mas porém ja enrosquei logo no início.
TO usando o ubuntu 10.04 estável, e baixei o usb_modeswitch via apt-get.
Só que a minha dificuldade é: NÃO CRIOU ARQUIVO .CONF DENTRO DA PASTA /ETC .
E ai? o que eu faço?

abração.

Eduardo Otubo disse...

@Senhor das ilusões,

Resposta rápida: No Ubuntu 10.04 o usb_modeswitch já vem configurado para esse dispositivo :-)

Resposta longa: O tutorial é para o Ubuntu 9.10, na versão 10.04 a configuração do usb_modeswitch é um pouco diferente. Na versão mais nova, existe um diretório para organizar os IDs dos dispositivos USB: /etc/usb_modeswitch.conf.d/. Provavelmente o arquivo que você está procurando é o /etc/usb_modeswitch.d/12d1\:1446 que já contém o que você precisa. :-)

[]'s

Anônimo disse...

Valeu mesmo Eduardo.

Só precisei criar o arquivo de regra e ele foi detectado na hora...
Muito bom isso ...
Depois vou postar no meu site esta solução...

Valeu por tudo....

ricardo ruiz disse...

Muito obrigado pelo tutorial, otubo.

tava sofrendo pra configurar o modem vivo no positivo mobile v52 (arggh!) de minha ex-namorada.

a unica diferença: depois de reiniciado o udev, eu nao fiz alterações no wvdial pois optei por usar o MobilePartner da huawei.

Mais uma vez, muito obrigado!

Eduardo Otubo disse...

Opa!

Fico feliz em poder ter ajudado! :-)

[]'s