Claro 3g Sony Ericsson md300 script conexao REVISAO 2

Publicado por Daniel Roque 02/05/2009

[ Hits: 9.936 ]

Homepage: None

Download claro-3g




Caros colegas, com a ajuda do amigo NewWave eu precebi que na "Revisão um", coloquei para download uma versão que difere da versão que está para visualização, a correta.

Peço perdão pelo erro, e disponibilizo aqui a versão correta, já com algumas modificações que espero que sane alguns problemas.

Agradeço às dicas e os testes feito por NewWave.

Boa Sorte

  



Esconder código-fonte

#!/bin/bash
#
# 8-2-2009
#
# claro-3g MD300
#
# Este script foi testado com o modem MD300 Sony Ericsson
#
# Por Daniel Roque
# 2006roque@gmail.com
#
# Atencao!
# 
# Use o escript por sua conta e risco
# este script nao vem com nenhuma garantia
# 
# 
# 
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
alias showdate='date -d now "+%Y-%m-%d %H:%M:%S claro-3g -->"'

########## VARIAVEIS #############
REDEINT='192.168.0.0/24'         #  rede interna, coloque o valor correto caso queira rotear conexao
TENTATIVAS='5'                   #  numero de tentativas antes de desistir, nao deixe em branco
DEVID="0fce:d0cf"                #  Para tentar outros modens utilize o lsusb e descubtra o devid do mesmo e substitua o valor
ESPERA="20"                      #  temo que se deve esperar pelo handshake com o servidor, antes de testar se conectou
CONT='3'                         #  ping count, mantenha um valor entre 1 e 9, utilize maior para sinal mais fraco
DESTINO='200.98.249.120'         #  host de destinho para teste, importante por um ip que responda a ping
DNS='200.169.117.22'             #  dns padrao da claro, mude apenas se souber o que esta fazendo
##################################

versao='0.1.2'
ultimaatualizacao='Qua Mar 25 11:20:51 UTC 2009'

checkdep(){
   rslt=`find /usr/bin/ /sbin/ /bin/ /usr/local/bin/ -name wvdial`
   if [ "$rslt" == '' ];
   then
      echo "Claro-3g --> ERRO: wvdial nao encontrado, instale-o 
             ([debian|ubuntu|big|famelix] -> apt-get install wvdial)"
      cmd='exit 3'
   fi
   rslt=`find /usr/bin/ /sbin/ /bin/ /usr/local/bin/ -name udevd`
   if [ "$rslt" == '' ];
   then
      echo "
Claro-3g --> ERRO: udev nao encontrado, instale-o 
             ([debian|ubuntu|big|famelix] -> apt-get install udev)"
      cmd='exit 3'
   fi
  rslt=`find /usr/bin/ /sbin/ /bin/ /usr/local/bin/ -name udevd`
  if [ "$rslt" == '' ];
  then
    echo "
Claro-3g --> ERRO: udev nao encontrado, instale-o 
             ([debian|ubuntu|big|famelix] -> apt-get install udev)"
    cmd='exit 3'
  fi
  rslt=`find /usr/bin/ /sbin/ /bin/ /usr/local/bin/ -name named`
  rslt=`find /usr/bin/ /sbin/ /bin/ /usr/local/bin/ -name dnsmasq`

  if [ "$rslt" == '' ];
  then
    echo "Claro-3g --> AVISO: algumas vezes o dns destes modens demoram muito para responder,
             eu aconselhor utilizar um dns em sua maquina.
             ([debian|ubuntu|big|famelix] -> apt-get install bind)

             Caso você opte por utilizar um dns em sua maquina, dentro deste script,
             remova o # que precede a linha #nameserver 127.0.0.1 e rode o install
             novamente."
  fi
   $cmd
}

ppp_option(){
sed '{s/\(^.*asyncmap.*\)/#\1/
s/\(^.*mru.*\)/#\1/
s/\(^.*refuse-chap.*\)/#\1/ }' -i /etc/ppp/options
}

install(){
   quem=`whoami`
echo 'Claro-3g, revisao 2 de 08-02-2009
Por Daniel Roque, 2006roque@gmail.com

Este script vem com nenhuma garantia, utilize-o por sua conta e RISCO!

Deseja continuar (s/n):n'
  read resp
  resp=`echo $resp|sed 's/[sSyY]/s/g'`
  if [ "$resp" != 's' ];
  then
    echo 'saindo sem fazer nada.'
    exit 1
  fi
   checkdep;
   if [ "$quem" != 'root' ];
   then
      echo "
Claro-3g --> Voce precisa dos poderes de root para executar este script"
      exit 4
   fi
   rm /etc/init.d/claro-3g 2>/dev/null
   cp claro-3g /etc/init.d/  2>/dev/null
   num='2
3
4
5'
  echo "
Claro-3g --> Desja criar um link para iniciar automaticamente quando pc e iniciado?(s/n):s"
  read resp
  resp=`echo $resp|sed 's/[nN]/n/g'`
  if [ "$resp" != 'n' ];
  then
    echo "
Claro-3g --> Criando links de inicializacao"
     for i in `echo $num`
     do
        cd /etc/rc$i.d/
      echo "/etc/rc$i.d/S99claro-3g"
        ln -s ../init.d/claro-3g S99claro-3g 2>/dev/null
     done
  else
    echo "
Claro-3g --> Removendo links de inicializacao, caso exista"
    for i in `echo $num`
    do
      echo "/etc/rc$i.d/S99claro-3g"
      rm -f /etc/rc$i.d/S99claro-3g 2>/dev/null
    done
  fi 
    echo "
Claro-3g --> Configurando ppp"
  ppp_option;
   echo "
Claro-3g --> Utilize /etc/init.d/claro-3g start, ou conecte o modem e reinicie o pc

Boa Sorte!"
}

dodns(){
   #altere as linhas abaixo caso tenha um dns e dominio local
   echo "#domain casa.local
#search casa.local
#nameserver 127.0.0.1
nameserver $DNS
nameserver 200.169.119.22">/etc/resolv.conf
}

udevrules(){
   if [ ! -e '/etc/udev/rules.d/50-md300modem.rules' ];
   then
      echo "Claro-3g -->Gerando regras para udev e reiniciando udev"
    aspas="'"
      echo '#claro-3g script
ACTION!="add", GOTO="3G_End"
BUS=="usb", SYSFS{idProduct}=="d0cf", SYSFS{idVendor}=="0fce", NAME="modem" PROGRAM="/bin/sh -c '"'"'echo 3 > /sys/%p/device/bConfigurationValue'"'"'
LABEL="3G_End"' >/etc/udev/rules.d/50-md300modem.rules
   fi
  /etc/init.d/hal restart
  /etc/init.d/udev restart
}

wvdialconf(){
   oldconf=`cat /etc/wvdial.conf|sed 's/^/#/g'`
   echo '#claro-3g - nao modifique esta linha
#
# Por Daniel Roque
# 2006roque@gmail.com
#
# Atencao!
# 
# Use o escript claro-3g por sua conta e risco
# este script não vem com nenhuma garantia
# 
# 
[Dialer Defaults]
Modem = /dev/ttyACM0
Baud = 460800
Init1 = ATZ
Init2 = AT+cfun=1
Init3 = AT+CGDCONT=1,"IP","bandalarga.claro.com.br"
Area Code =
Automatic Reconnect = yes
Phone = *99***1#
Username = claro
Password = claro
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 0
Compuserve = 0
Force Address =
Idle Seconds = 300
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 0
Modem Type = Analog Modem
New PPPD = yes
########## ABAIXO ESTA O CONTEUDO DO VELHO wvdial.conf
########## delete as linhas acima e remova o primeiro #
########## de cada linha para voltar a conf antiga'"
$oldconf" >/etc/wvdial.conf

}

xau_lock(){
rm -f /var/run/claro-3g.pid 2>/dev/null
}

kill_if_running(){
  if [ -e /var/run/claro-3g.pid ];
  then 
    echo "Claro-3g -->Parando script existente e aparentemente rodando"
    pid=`cat /var/run/claro-3g.pid`
    kill -9 $pid 2>/dev/null
    xau_lock;
    echo "Claro-3g -->Feito!"
  fi 
}

start(){
   echo "CLARO-3G - versao $versao de $ultimaatualizacao"
  kill_if_running; 
  echo "$$" >/var/run/claro-3g.pid
   checkdep;
   #checando existencia do modem
    rslt=`/usr/bin/lsusb |sed -n "/$DEVID/p"` 
   if [ "$rslt" == '' ];
   then
      echo "Claro-3g -->Modem nao encontrado!"
    xau_lock; 
      exit 2
   fi
   echo "Claro-3g -->Modem encontrado"
   #setando regras para o modem caso utilize outro modem as regras podem mudar
   udevrules;
   rslt=`cat /etc/wvdial.conf |sed -n '1p'|sed -n '/claro-3g/p'`
   #checando conf do wvdial
   if [ "$rslt" == '' ];
   then
      echo "Claro-3g -->configurando o wvdial.conf"
      wvdialconf;
   fi
   #verificando se ja esta conectado
   /sbin/ifconfig ppp0
   if [ "$?" == 0 ];
   then
    ping -c $CONT $DESTINO|sed -n '/[123456789] received/p' 2> /dev/null
    rslt="$?"
  else
    rslt=1
   fi
   #tentando por 5 vezes conectar
   tries='1'
   while [ "$rslt" != 0 ] && [ "$tries" -lt $TENTATIVAS ]; 
   do
    /etc/init.d/udev stop 2>/dev/null
    /etc/init.d/udev start 2>/dev/null
      killall -s KILL wvdial 2>/dev/null
      killall -s KILL pppd 2>/dev/null
      wvdial 2>/dev/null &
      echo "Claro-3g -->Tentativa $tries de $TENTATIVAS."
      echo "Claro-3g -->Tentando conectar em $ESPERA segundos"
      sleep $ESPERA
    rmdefroute=`route -n|sed -n 's/  //g;s/  //g;s/\(0.0.0.0\)\(.*\)\(0.0.0.0.*\)/route del default gw \2/p'`
    $rmdefroute
    route add default gw 10.64.64.64 
      ping -c $CONT $DESTINO|sed -n '/[123456789] received/p' 2> /dev/null
    rslt="$?"
      tries=`expr "$tries" + 1`
   done
   echo "Claro-3g -->Conectado!"
   #rotenado conexao para a rede internar, altere a var REDEINT para o valor local da sua rede
  echo "Claro-3g -->rotenado conexao para a rede $REDEINT, altere a variavel REDEINT dentro do script caso isto nao esteja certo."
   /sbin/iptables -t nat -A POSTROUTING -s $REDEINT -j MASQUERADE
   echo 1 >/proc/sys/net/ipv4/ip_forward
   dodns;
}

stop(){
  echo "Claro-3g -->Parar"
  kill_if_running;
   killall -s KILL wvdial 2>/dev/null
   killall -s KILL pppd 2>/dev/null
   iptables -t nat -D POSTROUTING -s $REDEINT -j MASQUERADE 2>/dev/null
   echo 0 >/proc/sys/net/ipv4/ip_forward 
}

case $1 in
   start)
      start;
   ;;
   stop)
      stop;
   ;;
   restart)
      stop;start
   ;;
   install)
      install;
   ;;
   *)
      echo 'use claro-3g (start|stop|restart|install)'
      exit 1
   ;;
esac


exit 0

Scripts recomendados

Backup para postgresql

Descompactar vários arquivos ao mesmo tempo de um diretório específico

Configurando CISCO por Shell Script

Trocando plano de fundo no flux de forma gráfica

Script Administração SquidFacil Ubuntu 11.10


  

Comentários
[1] Comentário enviado por tiekookeit em 02/05/2009 - 19:36h

Não utilizem este script aqui, por um bug no site do vivalinux, o script postado aqui nao esta sendo exibido correto, sigam o forum do link abaixo para se localizarem.


http://www.vivaolinux.com.br/script/Claro-3g-Sony-Ericsson-md300-script-conexao-Revisado

Boa sorte!

[2] Comentário enviado por tiekookeit em 03/05/2009 - 21:46h

Como eu pensava, você esta conectado sim!!

porém o dns da claro nao esta funcionando para ti,

experimente conectar novamente e apos conectado em um outro terminal execute este comando

sudo echo 'nameserver 208.67.222.222' >/etc/resolv.conf

caso nao funcione vamos tentar colocar um dns local na tua maquina
faça o seguinte, conecte pela claro no linux, abra o firefox entre no endereço

ftp://200.236.31.1/debian/pool/main/

é um repositorio do debian la tem todos os pacotes organizados em pastas por ordem alfabetica, baixe de la o

dnsmasq

instale e execute,
e troque o conteudo do arquivo /etc/resolv.conf para

nameserver 127.0.0.1

comando
sudo echo 'nameserver 127.0.0.1' >/etc/resolv.conf


Obs:
conectando esta, como sei disso, por causa da resposta ao ping

64 bytes from 200.221.2.45: icmp_seq=2 ttl=52 time=1110 ms
64 bytes from 200.221.2.45: icmp_seq=3 ttl=52 time=134 ms
64 bytes from 200.221.2.45: icmp_seq=4 ttl=52 time=132 ms
64 bytes from 200.221.2.45: icmp_seq=5 ttl=52 time=140 ms


é por um acaso o ms que é o tempo de resposta, está muito bom.

Boa sorte

[3] Comentário enviado por tiekookeit em 04/05/2009 - 23:47h

Que puder testar a gui que eu criei seria bacana, é a primeira versao, por tanto sem muitas garantias

http://www.4shared.com/file/103465037/64302f2a/claro3g-gui-alphatar.html

[4] Comentário enviado por Memorizador em 18/05/2009 - 21:31h

Ola pessoal,
Acabei de adquirir um Aspire One com Linpus Linux Lite.
Possuo 3g claro com o modem MD300. Confesso que sou verde em Linux, nao sei operar...
Tenho que usar a 3g e nao estou conseguindo fazer funcionar as dicas de voces.
Gostaria de poder aprender mais sobre o Linux, mas, se nao conseguir fazer a internet funcionar, vou ter que passar pro Windows. Alguem pode me ajudar...

[5] Comentário enviado por Maldditu em 24/05/2009 - 11:11h

Olá, pessoal!

Depois de semanas tentando, tentando e tentando... Quase fiquei careca de tanto que bati cabeça pra resolver meu problema de conexão. Bem, o que eu fiz foi instalar o Big Linux 4.2 no lugar do Ubuntu 9.04. Logo de cara consegui conectar à internet utilizando meu modem discado, já que o Big o reconheceu automaticamente.

Só aí, eu já fiquei emocionado! Era a 1ª vez que navegava na net de dentro de uma distro Linux! E a partir do meu próprio PC!!!! Carambaaa!!!! Rsrsrs!!!!! Mas... enfim... Navegação, eu já tinha. Só estava faltando fazer o Big reconhecer meu modem MD300. Foi quando, ontem , num lapso de sobriedade, eu pensei: como o hardware é reconhecido no Windows??? Ora, ora, isso só é possível utilizando os drivers, certo? Pois bem, fiz uma pesquisa no google e... Tchan, tchan, tchan, tchan... Me deparei com a página abaixo:

http://www.niclabs.cl/entel/MD300/UbuntuDebian%3DENG.html

Bom, como não tinha mesmo nada a perder, instalei o troço e, como o Big Linux é baseado no Ubuntu 8.04, passei adiante e fui direto para o passo nº 8 descrito no site acima citado. Só que não funcionou. Fui até o Synaptic e percebi que o pacote que havia acabado de instalar estava "quebrado". Instalei suas dependências e voltei ao passo nº 8 novamente. Prontinho! Agora estou navegando no Big Linux com a Claro 3G!

Galera, isso foi uma vitória pra mim! Agora o Linux é meu SO padrão! Adeus Rwindows! Hasta la "VISTA"!!!!!!!!!!!!!!!!!!!!!!!!!!!

Obrigado a todos que se dispuseram - e ainda o fazem - a ajudar a mim e aos outros usuários do fórum VivaOLinux!

OHHH YEAHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!!

[6] Comentário enviado por Maldditu em 25/05/2009 - 23:01h

Opaaaa!!!! Seguinte, galera... Já que consegui fazer o Big conectar à internet pela Claro 3G, pensei: por que não tentar no Ubuntu?

Sim, pois o Ubuntu 9.04 é bem mais leve e rápido que o Big Linux (baseado no Ubuntu 8.04), de acordo com minha experiência com esses So's. Formatei e tive uma surpresa muito boa. No Ubuntu 9.04, depois de instalar o driver do MD300 e plugá-lo na usb, inicia-se uma janela de configuração de nova conexão!!! Daí é só seguir os passos e prencher com os dados corretos. Depois de tudo configurado, basta clicar no Network Manager, situado na barra de ferramentas e clicar no nome da conexão que você criou. Simples assim! :-D

OHHH YEAHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts