Claro 3g Sony Ericsson md300 script conexao REVISAO 2
Publicado por Daniel Roque 02/05/2009
[ Hits: 9.854 ]
Homepage: None
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
#!/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
Tradução de endereços de uma rede interna
Troca periódica de senhas para usuários
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Arch Linux - Guia para Iniciantes (0)
Dificuldade para renderizar vídeo no kdenlive (6)
xubuntu sem sons de eventos (3)
Erro ao iniciar serviço samba4 como novo dc em um ambiente com ad [RES... (9)