Claro 3g Sony Ericsson md300 script conexao REVISAO 2

Publicado por Daniel Roque 02/05/2009

[ Hits: 9.437 ]

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
# [email protected]
#
# 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, [email protected]

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
# [email protected]
#
# 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

Firewall + iptables no Debian

Backup do Mysql

E-mails através de um servidor remoto

Ajustar hora

Manipulação de contas de email com o postfix


  

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