quinta-feira, 13 de maio de 2010

LG Cookie como modem no Ubuntu

Comprei recentemente um LG Cookie (KP570 ou KP500). Para aproveitar melhor o aparelho peguei um plano de dado na operadora. Pra essa vida de viajante ele é uma mão na roda, twittar da estrada ajuda a passar o tempo.

Outro dia consegui usar o Celular como modem para o computador, isso abre várias possibilidades nessa vida. Entretanto isso só era possível no Ruindows Vista e quem me acompanha sabe que faz uns anos (ou pelo menos 1 ano) que virei entusiasta do software livre.

Hoje exercitei o google-fu e consegui colocar o aparelho para funcionar.

O artigo que ajudou horrores para tudo funcionar foi esse aqui do Jun Auza em 2008.

Li relatos que teve gente rodando o LG como modem de maneira mais direta, infelizmente pra mim não funcionou.

Precisei de um acesso diferente para instalar os programas necessários e encontrar ajuda on-line.

Primeiro instalar o wvdial e o gnome-ppp:

>sudo apt-get install wvdial
>sudo apt-get install gnome-ppp


Liguei o aparelho pelo cabo USB e selecionei PCSuite nas opções de conexão.

Para identificar o celular, numa janela do terminal digitei: lsusb


Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 008: ID 1004:6000 LG Electronics, Inc. VX4400/VX6000 Cellphone
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Os números depois do ID são o vendor e product. Pelo que entendi precisa registrar uma porta serial para o aparelho:

sudo /sbin/modprobe usbserial vendor=0x1004 product=0x6000


Substitua o 1004 e 6000 pelos seus próprios vendor e product, 0x é pra indicar que o número é hexadecimal.

Depois disso digite: wvdialconf create

ele deve retornar algo como:

Editing `create'.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0 S1 S2 S3
ttyACM0: Device or resource busy
Modem Port Scan<*1>: ACM0
WvModem<*1>: Cannot get information for serial port.
ttyACM1<*1>: ATQ0 V1 E1 -- OK
ttyACM1<*1>: ATQ0 V1 E1 Z -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- ERROR
ttyACM1<*1>: Modem Identifier: ATI -- LG Elec.
ttyACM1<*1>: Speed 4800: AT -- OK
ttyACM1<*1>: Speed 9600: AT -- OK
ttyACM1<*1>: Speed 19200: AT -- OK
ttyACM1<*1>: Speed 38400: AT -- OK
ttyACM1<*1>: Speed 57600: AT -- OK
ttyACM1<*1>: Speed 115200: AT -- OK
ttyACM1<*1>: Speed 230400: AT -- OK
ttyACM1<*1>: Speed 460800: AT -- OK
ttyACM1<*1>: Max speed is 460800; that should be safe.
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyUSB0<*1>: ATQ0 V1 E1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- ERROR
ttyUSB0<*1>: Modem Identifier: ATI -- LG Elec.
ttyUSB0<*1>: Speed 9600: AT -- OK
ttyUSB0<*1>: Max speed is 9600; that should be safe.
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK

Found an USB modem on /dev/ttyACM1.
Modem configuration written to create.
ttyACM1: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2"
ttyUSB0: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2"


Veja a localização e velocidade do modem, no meu caso, /dev/ttyACM1 e Speed 460800

A partir do terminal, editei a configuração do wvdial: sudo gedit /etc/wvdial.conf

Com uma ajudinha do pessoal do VivaoLinux a minha configuração ficou assim:

[Dialer Defaults]
Modem = /dev/ttyACM0
Baud = 460800
DialCommand = ATDT
Check Def Route = on
FlowControl = Hardware(CRTSCTS)
Username = tim
Password = tim
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","tim.com.br"
ISDN = 0
Modem Type = Analog Modem


Tentei conectar com o wvdial primeiro e com o gnome-ppp, não deu muito certo, dava uns erros de permissão.

No final me enchi e rodei o gnome-ppp como sudo (no terminal: sudo gnome-ppp). Conectou, mas não carregava nada. Desconectei, coloquei o OpenDNS (208.67.222.222, 208.67.220.220) como DNS primário e secundário e pronto, estamos conectados.

Hoje a noite (espero) vou internetar de casa no meu Ubuntu.

________________

EDIT: Rodando de casa. Não é uma SUUUUUUUUUUUUUUPER conexão, mas quebra um galhão. Curiosamente consegui conectar sem ser super usuário (sudo), mas tenho a impressão que fica bem mais rápido do outro jeito, talvez algum problema de permissão que o sudo possa ignorar.