Claro 3g Sony Ericsson md300 script conexao REVISAO 2
Publicado por Daniel Roque 02/05/2009
[ Hits: 9.857 ]
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
Ajuste de horário e sincronismo
Enviando comandos para máquinas da rede
Organize seu /var/log/messages
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
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)