#!/bin/sh
# Script para conectar no Vivo Zap usando um smartphone como modem
# Por Carlos E. Morimoto
# http://www.gdhpress.com.br
# http://www.guiadohardware.net
# Pode ser alterado e redistribuído livremente dentro dos termos da GPL
# Caracteres estranhos? Mude a codificação do editor para UTF-8# Mude de 1 para 0 para que o script pergunte qual operadora utilizar:
vivomode="1"# Ajusta o charset
export LANG=pt_BR.UTF-8
export CHARSET=UTF-8
clear
echo 'Este é um script para conectar no Vivo Zap usando um modem 3G USB ou um
smarthphone que permita o acesso via DUN ou PAN, via Bluetooth. Escrito por
Carlos Morimoto <http://www.gdhpress.com.br>, em parceria com a Vivo.Versões atualizadas podem ser baixadas em:
http://www.gdhpress.com.br/blog/script-vivo-zap/
'
sleep 1
# Verifica se o script está sendo executado pelo root.
# Por enquanto ele não funciona através do sudo por causa do uso do echo para
# escrever em arquivos de configuração.
if [ "`id -u`" != "0" ]; then
echo 'Este script precisa ser executado como root. Digite "su -" para se logar
como root e execute o script novamente.
Se você está usando o Ubuntu, defina a senha de root usando o comando
"sudo passwd" e em seguida logue-se usando o "su -".
Para facilitar, você pode copiar este script para a pasta /usr/local/bin/, de
forma a não precisar mais executá-lo usando o caminho completo ou o ./
'
read pausa
exit 0
fi
# Funções usadas ao longo do scrip
bpairing()
{
# Fecha o kbluetoothd
killall kbluetoothd.real &>/dev/null
echo "Localizando aparelhos com bluetooth nas proximidades:"
echo "
hcitool scan
echo "
echo 'Digite o endereço do endereço bluetooth do seu aparelho, conforme mostrado
na lista acima (dica: você pode colar usando o botão do meio do mouse).
Se por acaso ele não aparecer, verifique se ele está configurado em modo
"Visível por todos", ou informe o endereço manualmente. Nos Nokia, você pode
descobrir o endereço do bluetooth digitando *#2820#.
Ex: 00:21:FE:CF:A2:E1'
read blueaddr
echo blueaddr=\"$blueaddr\" >> /home/$USER/.3gconfig
echo "
echo 'Testando a conexão com o smartphone'
l2ping -c 3 $blueaddr
echo "
echo "
echo 'Digite o PIN que será usado ao fazer o pairing entre o PC e o smartphone
O PIN é um código numérico de segurança, que você digita nos dois aparelhos ao
fazer o pareamento. É recomendável escolher um código com pelo menos 8 dígitos.
Ex: 2985679833'
read pin
echo "pin=\"$pin\"" >> /home/$USER/.3gconfig
# Descobre o nome da maquina. Se algo der errado, o nome é 'pc'
nome=`cat /etc/hostname`
if [ -z "$nome" ]; then
nome="pc"
fi
# Gera a configuração do hcid:
cat <<EOF >/etc/bluetooth/hcid.conf
options {
autoinit yes;
security auto;
pairing multi;
passkey "$pin";
}
device {
name "$nome";
class 0×3e0100;
iscan enable; pscan enable;
lm accept;
lp rswitch,hold,sniff,park;
}
EOF
# Coloca o PC em modo discoverable
cd /var/lib/bluetooth/??:??:??:??:??:??
sed -i -e "s/mode connectable/mode discoverable/g" config &>/dev/null
verif=`cat config | grep discoverable`
if [ -z "$verif" ]; then echo "mode discoverable" >> config; fi
cd /
# Reinicia o bluetooth e ativa a porta
/etc/init.d/bluetooth restart
hciconfig hci0 up &>/dev/null
}
bcanal()
{
echo "
echo 'Preciso agora saber qual é o canal usado pelo DUN no seu aparelho.
Os aparelhos da Nokia usam o canal 2 e aparelhos de outras marcas usam
geralmente o canal 1. Use o comando "sdptool search DUN" para descobrir qual
canal seu aparelho usa, em caso de dúvidas.
2 : Aparelhos da Nokia
1 : Aparelhos de outros fabricantes
Ex: 2'
read canal
channel="channel $canal"
echo channel=\"channel $canal\" >> /home/$USER/.3gconfig
# Gera a configuração do rfcomm
echo 'rfcomm0 {' > /etc/bluetooth/rfcomm.conf
echo ' bind yes;' >> /etc/bluetooth/rfcomm.conf
echo " device $blueaddr;" >> /etc/bluetooth/rfcomm.conf
echo " $channel;" >> /etc/bluetooth/rfcomm.conf
echo " comment \"$nome\";" >> /etc/bluetooth/rfcomm.conf
echo '}' >> /etc/bluetooth/rfcomm.conf
}
bmesg()
{
echo "
echo 'Falta agora o mais importante, que é fazer o pareamento entre o PC e
o smartphone. No aparelhos da Nokia com o S60, isso é feito através do
Configuraçs. > Conectiv. > Bluetooth. Use o direcional para a direita para
acessar o menu de dispositivos pareados e acesse o Opções > Novo Disp.
pareado > Mais dispositivos para iniciar a busca. Assim que o PC aparecer
na lista, clique no Parar e clique sobre ele para fazer o pairing. Quando
perguntado, informe o mesmo código PIN que definiu na opção anterior e
responda que sim quando ele perguntar se você deseja que o PC possa
abrir conexões automaticamente.
Obs: Se você está usando o Ubuntu, faça o pairing usando o applet Bluetooth
ao lado do relógio, clicando no Configurar novo dispositivo.
Se você já fez o pairig anteriormente, não é necessário fazê-lo de novo.
Depois de feito o pareamento, pressione Enter para continuar.'
read pausa
}
errowvdial()
{
echo 'Não consegui encontrar o wvdial, que preciso para estabelecer a conexão.
Você pode instalá-lo usando o gerenciador de pacotes, ou diretamente via linha
de comando:
No Ubuntu, Kubuntu, Kurumin, Satux ou outra distribuição derivada do Debian use:
apt-get update
apt-get install wvdial
No Mandriva, use:
urpmi wvdial
No Fedora, use:
yum install wvdial
No OpenSUSE, use:
zypper install wvdial
(se por acaso ele estiver instalado em uma localização fora do padrão, crie
o link /usr/bin/wvdial, apontando para ele)'
}
huaweiout()
{
if [ -e "huawei.out" ]; then
echo '
Arquivo huawei.out encontrado. Gostaria de executá-lo para ativar o modem?
(Pressione "s" para executá-lo ou qualquer outra tecla para ignorar
'
read resposta
if [ "$resposta" = "s" ]; then
./huawei.out
echo "Esperando 15 segundos para que o modem seja ativado…"
sleep 15
jarodei="1"
fi
fi
}
checaporta()
{
# Checa se o huawei.out está disponível
huaweiout
echo "Detectando o modem USB…"
sleep 1
if [ -e "/dev/ttyACM0" ]; then
echo "Modem encontrado em /dev/ttyACM0"; sleep 2
porta="/dev/ttyACM0"
echo 'porta="/dev/ttyACM0"' >> /home/$USER/.3gconfig
elif [ -e "/dev/ttyUSB0" ]; then
echo "Modem encontrado em /dev/ttyUSB0"; sleep 2
porta="/dev/ttyUSB0"
echo 'porta="/dev/ttyUSB0"' >> /home/$USER/.3gconfig
elif [ -e "/dev/ttyUSB1" ]; then
echo "Modem encontrado em /dev/ttyUSB1"; sleep 2
porta="/dev/ttyUSB1"
echo 'porta="/dev/ttyUSB1"' >> /home/$USER/.3gconfig
elif [ -e "/dev/ttyUSB2" ]; then
echo "Modem encontrado em /dev/ttyUSB2"; sleep 2
porta="/dev/ttyUSB2"
echo 'porta="/dev/ttyUSB2"' >> /home/$USER/.3gconfig
elif [ -e "/dev/usb/ttyUSB0" ]; then
echo "Modem encontrado em /dev/usb/ttyUSB0"; sleep 2
porta="/dev/usb/ttyUSB0"
echo 'porta="/dev/usb/ttyUSB0"' >> /home/$USER/.3gconfig
else
echo 'Não consegui localizar o modem. No Linux, modems GSM USB (e smartphones
em modo de acesso à web conectados ao PC via USB) são acessados pelo sistema
através da porta /dev/ttyACM0 ou /dev/ttyUSB0 , que é automaticamente criada
ao plugar o modem.
Se você está usando um smartphone, experimente desligá-lo, ligá-lo e conectá-lo
novamente. Se está usando um aparelho da Nokia, certifique-se de que ele está
configurado para se conectar ao PC em modo PC suíte (a configuração vai no
Conectividade > USB). Em alguns aparelhos novos, como o E71 está disponível o
modo "Conect. PC à Internet", mas ele não funciona no Linux. Use o modo PC
Suíte.
Se você está usando um modem huawei E220 ou E226 em uma distribuição antiga
(com um Kernel anterior ao 2.6.20), você precisa executar o arquivo huawei.out
para ativar o modem antes de executar este script. Veja a dica no:
http://wiki.ubuntu-br.org/TimWeb
Se você está usando o Kurumin 7 (ou outra distribuição baseada no Debian Etch)
pode baixar uma versão pré-compilada do arquivo no:
http://www.gdhpress.com.br/blog/arquivos/k7/huawei.out
Salve o arquivo huawei.out na mesma pasta onde está este script e passarei a
perguntar se quer executá-lo.
Se por acaso seu modem utiliza uma porta diferente, você pode indicá-la aqui,
e deixar que o script tente utilizá-la. Caso contrário pressione Ctrl+C para
sair.
Especifique a porta ou pressione Ctrl+C para sair
Ex: /dev/usb/ttyUSB1'
read porta
if [ -n "$porta" ]; then
echo "Usando $porta"
porta="/dev/usb/ttyUSB0"
echo 'porta="/dev/usb/ttyUSB0"' >> /home/$USER/.3gconfig
else
exit 1
fi
fi
}
checarrota()
{
echo "
echo 'Muitas distribuições antigas (anteriores a 2008) usam uma versão bugada do
wvdial que não altera a rota padrão depois de conectado, o que faz com que o
sistema continue tentando acessar através da placa de rede ou outra conexão já
existente em vez de acessar usando a conexão 3G, o que causa o famoso "conecta
mas não navega". Nesses casos, é necessário rodar o comando "route del default"
antes de estabelecer a conexão. Se este é o seu caso, responda "s" e farei isso
para você.'
echo "
echo 'Remover a rota padrão antes de conectar? (s/n)'
read resposta
if [ "$resposta" = "s" ]; then
delroute="1"; echo 'delroute="1"' >> /home/$USER/.3gconfig
else
delroute="0"; echo 'delroute="0"' >> /home/$USER/.3gconfig
fi
}
configoperadora()
{
if [ "$vivomode" = "1" ]; then
# Configurações da Operadora
user="vivo"
pass="vivo"
telc="*99#"
APN="zap.vivo.com.br"
else
echo '
Qual operadora você está usando?
1) Vivo
2) Claro
3) TIM
4) Oi
5) Giro
6) Outra (configuração manual)
(responda 1, 2, 3, 4, 5 ou 6)
'
read operadora
case $operadora in
1)
user="vivo"
pass="vivo"
telc="*99#"
APN="zap.vivo.com.br"
;;
2)
user="claro"
pass="claro"
telc="*99***1#"
APN="bandalarga.claro.com.br"
;;
3)
user="tim"
pass="tim"
telc="*99#"
APN="tim.br"
;;
4)
user="oi"
pass="oi"
telc="*99***1#"
APN="gprs.oi.com.br"
;;
5)
user="giro@giro.click21.com.br"
pass="giro"
telc="#777"
APN="giro.click21.com.br"
;;
6)
echo '
Qual o telefone de discagem?
ex: *99#
'
read telc
echo '
Qual a APN da operadora?
ex: operadora.com.br
'
read APN
echo '
Qual o login de usuário?
ex: operadora
'
read user
echo '
Qual a senha?
ex: operadora
'
read pass
;;
*)
echo 'Ops, você digitou uma opção inválida. Este script ainda não foi
devidamente instruído a lidar com condições inesperadas, por isso será fechado.'
exit 1
;;
esac
echo "user=\"$user\"" >> /home/$USER/.3gconfig
echo "pass=\"$pass\"" >> /home/$USER/.3gconfig
echo "telc=\"$telc\"" >> /home/$USER/.3gconfig
echo "APN=\"$APN\"" >> /home/$USER/.3gconfig
fi
}
reconfigurar()
{
addudevrules
echo '
Este script permite conectar usando um modem 3G ligado na porta USB (ou um
smartphone ligado na porta USB) ou um smartphone ligado via Bluetooth.
Para os modems USB, você provavelmente não precisará fazer nada, já que o script
é capaz de detectar o modem sozinho. Para conectar via Bluetooth, é necessário
fazer o pareamento entre o PC e o smartphone, o que faremos no passo seguinte.
O script usa o wvdial para fazer a conexão, por isso é necessário que ele
esteja instalado. Você pode instalá-lo usando o gerenciador de pacotes, basta
fazer uma busca por "wvdial."'
echo "
echo 'Qual tipo de aparelho você está usado?'
echo "
echo '1 Modem USB, ou um smartphone ligado na porta USB'
echo '2 Smartphone com o Windows Mobile 6, com o Compartilhamento de Internet'
echo '3 Smartphone da Nokia ou outro com suporte a DUN via Bluetooth'
echo "
echo "(responda 1, 2 ou 3)"
read resposta
echo "
# Só por via das dúvidas…
mkdir /home/$USER/ &>/dev/null
if [ "$resposta" = "1" ]; then
conn="usb"
echo 'conn="usb"' > /home/$USER/.3gconfig
elif [ "$resposta" = "2" ]; then
conn="pan"
echo 'conn="pan"' > /home/$USER/.3gconfig
elif [ "$resposta" = "3" ]; then
conn="dun"
echo 'conn="dun"' > /home/$USER/.3gconfig
else
echo 'Ops, você digitou uma opção inválida. Este script ainda não foi
devidamente instruído a lidar com condições inesperadas, por isso será fechado.'
exit 1
fi
configoperadora
# Função para conexão USB
if [ "$conn" = "usb" ]; then
echo 'Certifique-se de que seu modem GSM ou smartphone está ligado à porta USB.'
sleep 2
checaporta
checarrota
ativafirewall
# Esta opção é ncessária para que o sistema consiga obter o DNS ao conectar
opt1=`cat /etc/ppp/options | sed -e '/^\#/D' | grep "ipcp-max-failure 30"`
[ -z "$opt1" ] && echo 'ipcp-max-failure 30' >> /etc/ppp/options
# E sem essas o Aiko 82D, Huawei E156 e outros modelos não conectam
opt2=`cat /etc/ppp/options | sed -e '/^\#/D' | grep "asyncmap 0xa0000"`
[ -z "$opt2" ] && echo 'asyncmap 0xa0000' >> /etc/ppp/options
opt3=`cat /etc/ppp/options | sed -e '/^\#/D' | grep "mru 1500"`
[ -z "$opt3" ] && echo 'mru 1500' >> /etc/ppp/options
opt4=`cat /etc/ppp/options | sed -e '/^\#/D' | grep "refuse-chap"`
[ -z "$opt4" ] && echo 'refuse-chap' >> /etc/ppp/options
fi
# Função para Bluetooth DUN
if [ "$conn" = "dun" ]; then
bpairing
bcanal
bmesg
checarrota
porta="/dev/rfcomm0"
echo 'porta="/dev/rfcomm0"' >> /home/$USER/.3gconfig
ativafirewall
fi
# Função para Bluetooth PAN (Windows Mobile)
if [ "$conn" = "pan" ]; then
bpairing
bmesg
# Precisamos remover a rota padrão antes de ativar a conexão, já que não
# usamos o wvdial
delroute="1"
echo 'delroute="1"' >> /home/$USER/.3gconfig
fi
# Pergunta sobre o DNS
echo "
echo "Usar os servidores DNS do provedor? (s/n)"
read resposta
if [ "$resposta" = "n" ]; then
echo 'Digite o servidor de DNS primário'
echo 'ex: 208.67.222.222'
read dns1
echo "dns1=$dns1" >> /home/$USER/.3gconfig
echo "
echo 'Digite o servidor de DNS secundário'
echo 'ex: 208.67.220.220'
read dns2
echo "dns2=$dns2" >> /home/$USER/.3gconfig
autodns="off"
echo 'autodns="off"' >> /home/$USER/.3gconfig
else
autodns="on"
echo 'autodns="on"' >> /home/$USER/.3gconfig
fi
}
ativafirewall()
{
echo "
echo 'Ativar o firewall para a conexão da Internet? (s/n)'
read resposta
if [ "$resposta" = "s" ]; then
sifirewall="on"; echo 'sifirewall="on"' >> /home/$USER/.3gconfig
else
sifirewall="off"; echo 'sifirewall="off"' >> /home/$USER/.3gconfig
fi
}
checafirewall()
{
if [ "$sfirewall" = "on" ]; then
echo "Ativando o firewall…"
sleep 1
echo "iptables -A INPUT -p tcp -i ppp0 --syn -j DROP" >> /etc/ppp/ip-up
echo "iptables -A INPUT -p udp -i ppp0 --dport 1:1024 -j DROP" >> /etc/ppp/ip-up
fi
}
checadns()
{
if [ "$autodns" = "off" ]; then
echo "echo \"nameserver $dns1\" > /etc/resolv.conf" > /etc/ppp/ip-up
echo "echo \"nameserver $dns2\" >> /etc/resolv.conf" >> /etc/ppp/ip-up
else
echo " > /etc/ppp/ip-up
fi
}
addudevrules()
{
checaaiko=`lsusb | grep 19d2:2000`
if [ -n "$checaaiko" ]; then
echo "
echo "Modem Aiko 82E detectado, adicionando regras do UDEV…"
sleep 1
echo 'SUBSYSTEM=="block", \
ACTION=="add", \
SYSFS{idVendor}=="19d2", \
SYSFS{idProduct}=="2000", \
OPTIONS="ignore_device"
SUBSYSTEM=="usb", \
SYSFS{idVendor}=="19d2", \
SYSFS{idProduct}=="0001", \
RUN+="/sbin/modprobe usbserial vendor=0×19d2 product=0×0001"
' > /etc/udev/rules.d/99_aiko82e.rules
udevcontrol reload_rules
echo '
Desconecte e em seguida reconecte o modem para que ele seja detectado
(pressione Enter para continuar)'
read pausa
echo "Aguardando 15 segundos para que o modem seja ativado…"
sleep 15
fi
checahuawei=`lsusb | grep 12d1:1003`
if [ -n "$checahuawei" ]; then
echo "
echo "Modem Huawei E156/220/226 detectado, adicionando regras do UDEV…"
sleep 1
echo 'SUBSYSTEM=="block", \
ACTION=="add", \
SYSFS{idVendor}=="12d1", \
SYSFS{idProduct}=="1003", \
OPTIONS="ignore_device"
SUBSYSTEM=="usb", \
SYSFS{idVendor}=="12d1", \
SYSFS{idProduct}=="1003", \
RUN+="/sbin/modprobe usbserial vendor=0×12d1 product=0×1003"
' > /etc/udev/rules.d/99_huawei.rules
udevcontrol reload_rules
fi
}
# Início do script
# Verifica o arquivo de configuração e decide entre usá-lo ou gerar um novo
if [ -e "/home/$USER/.3gconfig" ]; then
echo "
echo "Configuração encontrada em /home/$USER/.3gconfig:"
echo '
Pressione Enter para continuar (e usar a configuração salva) ou
pressione "c" (e depois Enter) se quiser reconfigurar o script.
Pressione Enter para continuar ou c para reconfigurar:
'
read resposta
if [ "$resposta" = "c" ]; then
# Se respodido "c", reconfigura
rm -f /home/$USER/.3gconfig
reconfigurar
else
# Senão, carrega a configuração
echo "Carregando configuração em /home/$USER/.3gconfig"
sleep 1
. /home/$USER/.3gconfig
fi
else
# Se não encontra o script, reconfigura
reconfigurar
fi
# Terminada a configuração, a conexão é ativada:
# Deleta a rota padrão caso tenha sido solicitado pelo usuário
if [ "$delroute" = "1" ]; then
echo "Desativando rota padrão (para que seja usada a conexão 3G)"
echo "route del default"
route del default
fi
# Função para conexão USB
if [ "$conn" = "usb" ]; then
# Carrega o módulo do kernel
modprobe usbserial
# Checa se o huawei.out está disponível
if [ "$jarodei" = "1" ]; then
echo "
else
huaweiout
fi
# Sem isso o ppp não consegue alterar o DNS ao conectar
chmod 666 /etc/resolv.conf
# Substitui o DNS do provedor caso solicitado
checadns
# Ativa o firewall, caso solicitado
checafirewall
echo '[Dialer 3g]' > /etc/wvdial.conf
echo Modem = $porta >> /etc/wvdial.conf
echo Baud = 921600 >> /etc/wvdial.conf
echo DialCommand = ATDT >> /etc/wvdial.conf
echo Check Def Route = on >> /etc/wvdial.conf
echo 'FlowControl = Hardware(CRTSCTS)' >> /etc/wvdial.conf
echo Username = $user >> /etc/wvdial.conf
echo Password = $pass >> /etc/wvdial.conf
echo Phone = $telc >> /etc/wvdial.conf
echo Stupid mode = 1 >> /etc/wvdial.conf
echo Auto Reconnect = on >> /etc/wvdial.conf
echo "Auto DNS = $autodns" >> /etc/wvdial.conf
echo Init1 = ATZ >> /etc/wvdial.conf
echo 'Init2 = ATQ0 V1 E1 S0=0 &C1 &D2' >> /etc/wvdial.conf
echo Init3 = AT+CGDCONT=1,\"IP\",\"$APN\" >> /etc/wvdial.conf
echo ISDN = 0 >> /etc/wvdial.conf
echo Modem Type = Analog Modem >> /etc/wvdial.conf
if [ -e "/usr/bin/wvdial" ]; then
echo 'discando…
Pressione Ctrl+C para encerrar a conexão.
wvdial 3g'
sleep 1
wvdial 3g
# Caso tenha deletado a rota padrão no início do script, recarrega a
# configuracao da rede, restaurando a rota padrao
if [ "$delroute" = "1" ]; then
/etc/init.d/networking restart &>/dev/null
/etc/init.d/NetworkManager restart &>/dev/null
fi
exit 0
else
errowvdial
fi
fi
# Função para Bluetooth DUN
if [ "$conn" = "dun" ]; then
# Fecha o kbluetoothd
killall kbluetoothd.real &>/dev/null
# Reinicia o bluetooth e ativa a porta
/etc/init.d/bluetooth restart
hciconfig hci0 up
echo "Gerando configuracao do wvdial…"
sed -i -e "/lcp-echo-interval 30/D" /etc/ppp/options
sed -i -e "/lcp-echo-failure 4/D" /etc/ppp/options
# Sem isso o ppp não consegue alterar o DNS ao conectar
chmod 666 /etc/resolv.conf
# Substitui o DNS do provedor caso solicitado
checadns
# Ativa o firewall, caso solicitado
checafirewall
echo '[Dialer 3g]' > /etc/wvdial.conf
echo Modem = $porta >> /etc/wvdial.conf
echo Baud = 921600 >> /etc/wvdial.conf
echo DialCommand = ATDT >> /etc/wvdial.conf
echo Check Def Route = on >> /etc/wvdial.conf
echo 'FlowControl = Hardware(CRTSCTS)' >> /etc/wvdial.conf
echo Username = $user >> /etc/wvdial.conf
echo Password = $pass >> /etc/wvdial.conf
echo Phone = $telc >> /etc/wvdial.conf
echo Stupid mode = 1 >> /etc/wvdial.conf
echo Auto Reconnect = on >> /etc/wvdial.conf
echo "Auto DNS = $autodns" >> /etc/wvdial.conf
echo Init1 = ATZ >> /etc/wvdial.conf
echo 'Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0' >> /etc/wvdial.conf
echo Init5 = AT+CGDCONT=1,\"IP\",\"$APN\",\"\",0,0 >> /etc/wvdial.conf
echo ISDN = 0 >> /etc/wvdial.conf
echo Modem Type = Analog Modem >> /etc/wvdial.conf
if [ -e "/usr/bin/wvdial" ]; then
echo 'discando…
Pressione Ctrl+C para encerrar a conexao
Se algo der errado durante a discagem, experimente reiniciar o smartphone
e tentar de novo. Nos Nokia, é muito comum que o subsistema bluetooth fique
travado, impedindo que você se conecte, o que é rapidamente resolvido ao
desligar e ligar novamente.
wvdial 3g'
sleep 1
wvdial 3g
# Caso tenha deletado a rota padrão no início do script, recarrega a
# configuracao da rede, restaurando a rota padrao
if [ "$delroute" = "1" ]; then
/etc/init.d/networking restart &>/dev/null
/etc/init.d/NetworkManager restart &>/dev/null
fi
exit 0
else
errowvdial
fi
fi
# Função para Bluetooth PAN (Windows Mobile)
if [ "$conn" = "pan" ]; then
echo 'Ative o compartilhamento no smartphone, clicando no "Iniciar > Programas >
Compartilhamento de Internet". Use a opção "PAN do Bluetooth" como conexão para
o PC. Ao clicar no "Conectar" o aparelho passa para o modo NAP, onde ele fica
disponível para conexão do PC. Em caso de erros, verifique se o pairing foi
feito corretamente e se o PC foi definido como dispositivo autorizado nas
configurações do Bluetooth.
Pressione Enter para ativar a conexão.
'
read pausa
echo "Tentando se conectar a $blueaddr…"
echo 'Da primeira vez que a conexão é feita, o smartphone exibe uma mensagem
perguntando se deve aceitar conexões vindas do PC.
'
echo "pand -n --role PANU --connect $blueaddr"
pand -n --role PANU --connect $blueaddr
sleep 1
echo "dhclient bnep0"
dhclient bnep0
echo "
ifconfig bnep0
echo "(pressione Enter para continuar)"
read pausa
echo 'Se tudo deu certo, a rede bluetooth foi estabelecida e seu PC recebeu
um endereço na faixa 192.168.0.x, com o smartphone compartilhando a conexão
e ficando disponível através do endereço 192.168.0.1 (que é usado pelo PC
como gateway e como DNS), de forma similar ao que temos ao compartilhar a
conexão usando o ICS do Windows.
Para fechar a conexão posteriormente, use (como root):
pand -K
Para listar as conexões ativas (em caso de dúvidas sobre se a conexão está
ativada ou não) use:
pand -l
'
echo "(pressione Enter para sair do script)"
read pausa
exit 0
fi
exit 0
22 Responses to “Script paro o Vivo Zap no Linux (atualizado)”
Muito bom! Gostei do fato de incluir várias operadoras. Realmente adianta a vida. Vou baixar e testar
Só uma coisinha. O apn da Claro mudou tem um tempo, o novo é bandalarga.claro.com.br
O antigo, claro.com.br ainda funciona, mas pelo que li, esse será usado apenas para celulares.
By Diggao on Nov 6, 2008
Carlos, parabéns!
Acabei de testar e funcionou de primeira com um Huawei E156.
O meu passo a passo com o Kurumin foi o seguinte:
- baixar o script (conectar-vivozap.txt), o arquivo (huawei.out) e o wvdial num computador com Windows conectado à internet.
- copiar esses arquivos num pen drive, e instalar esse pen drive no computador com linux.
- no linux, copiar os três arquivos para o home do usuário. Você pode usar o "gerenciador de arquivos" para fazer isso.
- modificar o "conectar-vivozap.txt" para executável, num shell de comandos (você pode usar Iniciar->Konsole (Terminal do KDE) para isso), como usuário root (comando "su" no shell de comandos, informado a senha de root) com a instrução:
chmod +x conectar-vivozap.txt
- plugar o modem no computador com linux.
- no shell de comandos, ainda como root, executar:
/bin/sh conectar-vivozap.txt
- Responda as perguntas do script.
- Pronto! Você está conectado. Pode usar seu browser para navegar.
No console e editor do linux, o caracteres ficaram estranhos mesmo em UTF-8. Acho que o problema foi na cópia do PC com Windows para o Linux usando o pen drive.
By Atila on Nov 17, 2008
O problema dos caracteres é por causa da codificação do arquivo. O Ubuntu e outras distribuições atuais usam o UTF-8, enquanto o Kurumin 7 e outras distros mais antigas usam o ISO-8856-1.
Atualizei o post com uma versão alternativa do script, codificado com o ISO-8856-1, é só usá-lo no lugar da outra versão:
http://www.gdhpress.com.br/blog/arquivos/conectar-vivozap-ascii
By Carlos Morimoto on Nov 17, 2008
Carlos,
Testei com o meu eeePC com um Huawei e156 da Vivo e não funcionou, mesmo depois da instalação do wvdial. Não esta encontrando a porta serial e o modem não responde. Voce sabe o que eu poderia fazer para ver o problema?
Obrigado pela ajuda
By David P.S. on Nov 18, 2008
E o modem 3G da BrasilTelecom…Como fica. Na nossa região é muito popular…mas até agora não consegui por pra funcionar no kurumim,nem em outra distro
By Delzumir Linux on Nov 23, 2008
Oi
Usei o seu script em um Aiko 83D e não funcionou. O problema desse modem é que ele pode ser usado como pendrive, se colocarmos um cartão microSD. Então, o linux coloca ele como dispositivo de armazenamento, com o módulo usb-storage. O configurador de conexão do mandriva 2009 não acha ele, e nem o seu script acha a porta onde ele está.
Qual seria a porta onde ele é colocado, lembrando que ele é carregado como um pendrive?
Acho que se não fosse o fato de ele poder servir como pendrive, ele funcionaria bem no linux.
Agradeço qualquer ajuda.
Obrigado.
By edson on Nov 24, 2008
queria saber se e possivel contratar um plano 3g da claro e usa siemens c72 como modem. e se ha alguma forma de tarifaçao a mais por iss? desde ja obrigado.
By abclesio on Nov 24, 2008
consegui fazer ele aparecer em /dev/ttyUSB0 mas agora dá erro, não se comunica com o modem
wvdial 3g
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
--> Sending: ATQ0
--> Re-Sending: ATZ
--> Modem not responding.
By edson on Nov 24, 2008
edson,
Acho que estou um passo atras de você pois não consegui fazer aparecer o /dev/ttyUSB0 no meu Debian "etch". O que alterou pois acho que é o meu kernel que não possui suporte para este modem.
By cicero on dez 2, 2008
parabens morimoto
venho utilizando kurumin desde o inicio. sou usuario muito inesperiente. tenho dificuldades com script e linha de comando. aqui, este script funcionou direitinho utilizando o huawei e220 no mandriva 2008, apos o kurumin ng passei a utilizar o mandriva. gente se eu consegui, e porque é bem facil…
boa sorte a todos
By dalton on dez 6, 2008
Estou tentando conectar à Vivo com um modem Aiko 83D. A boa notícia é que o site http://www.aiko.com.br possui um instalador para Ubuntu bem detalhado e a conexão funcionou de primeira. Mas por algum motivo, só funcionou uma vez. Quando me desconectei e tentei reconexão, o sistema parou de reconhecer o modem. Já fiz tudo o que pude imaginar e nada, nem este script resolveu.
Quando pluguei o modem pela primeira vez, o Ubuntu montou-o direitinho. Agora, a luz do LED até fica verde, mas o ícone na área de trabalho indicando que ele foi montado não aparece de jeito nenhum. Alguém tem idéia do que pode estar acontecendo?
By Waldi on dez 7, 2008
Bom, eu removi o arquivo relativo ao Aiko 83D do /etc/udev/rules.d (não me lembro mais o nome, especificamente. Agora ele até abre o modem USB normalmente, mas não reconhece a rede. E agora? :-/
By Waldir on dez 7, 2008
O script esta reconhecendo que existe um modem AIKO e montando a regra da udev, contudo o device ttyUSB0 não está sendo criado automaticamente ao inserir o modem.
Estou trabalhando com o Debian etch.
Alguém poderia ajudar?
Cícero
By cicero on dez 12, 2008
Meu problema é instalar o wvdial no eepc.
Ele não encontra o arquivo pelo apt-get, o que posso fazer para instalar ele de outra forma?
Abraços…
By Daniel on dez 18, 2008
Waldir, estou com o mesmo problema que vc. Na verdade… ainda nem consegue fazer rodar pq esse problema com o "storage" dele aconteceu antes de fazer ele funcionar.
Tudo que aparece agora é: Bus 001 Device 002: ID 19d2:2000
Gostaria de saber qual foi esse arquivo q vc apagou, desde já muito obrigado.
Se alguém souber… sinta-se livre para dizer ;)
————————————————-
Daniel, não sei no eeepc, mas vc pode baixar os pacotes na internet ;)
By Julio on dez 19, 2008
Pessoal estou tentando aqui com o ubuntu-eee no asus eeepc nao estou consguido conecar, baixe, dscompacter, setei como executael e executei, os passos coloquei abaxo, alguem pode ajudar a conectar?
rafarubert@yahoo.com.br =)
————————————
Pressione Enter para continuar (e usar a configuração salva) ou
pressione "c" (e depois Enter) se quiser reconfigurar o script.
Pressione Enter para continuar ou c para reconfigurar:
c
Modem Huawei E156/220/226 detectado, adicionando regras do UDEV…
Desconecte e em seguida reconecte o modem para que ele seja detectado
(pressione Enter para continuar)
Aguardando 15 segundos para que o modem seja ativado…
Este script permite conectar usando um modem 3G ligado na porta USB (ou um
smartphone ligado na porta USB) ou um smartphone ligado via Bluetooth.
Para os modems USB, você provavelmente não precisará fazer nada, já que o script
é capaz de detectar o modem sozinho. Para conectar via Bluetooth, é necessário
fazer o pareamento entre o PC e o smartphone, o que faremos no passo seguinte.
O script usa o wvdial para fazer a conexão, por isso é necessário que ele
esteja instalado. Você pode instalá-lo usando o gerenciador de pacotes, basta
fazer uma busca por "wvdial."
Qual tipo de aparelho você está usado?
1) Modem USB, ou um smartphone ligado na porta USB
2) Smartphone com o Windows Mobile 6, com o Compartilhamento de Internet
3) Smartphone da Nokia ou outro com suporte a DUN via Bluetooth
(responda 1, 2 ou 3)
1
mkdir: não é possível criar o diretório `/home/root/': O arquivo já existe
Qual operadora você está usando?
1) Vivo
2) Claro
3) TIM
4) Oi
5) Giro
6) Outra (configuração manual)
(responda 1, 2, 3, 4, 5 ou 6)
1
Certifique-se de que seu modem GSM ou smartphone está ligado à porta USB.
Detectando o modem USB…
Modem encontrado em /dev/ttyUSB0
Muitas distribuições antigas (anteriores a 2008) usam uma versão bugada do
wvdial que não altera a rota padrão depois de conectado, o que faz com que o
sistema continue tentando acessar através da placa de rede ou outra conexão já
existente em vez de acessar usando a conexão 3G, o que causa o famoso "conecta
mas não navega". Nesses casos, é necessário rodar o comando "route del default"
antes de estabelecer a conexão. Se este é o seu caso, responda "s" e farei isso
para você.
Remover a rota padrão antes de conectar? (s/n)
s
Ativar o firewall para a conexão da Internet? (s/n)
n
Usar os servidores DNS do provedor? (s/n)
s
Desativando rota padrão (para que seja usada a conexão 3G)
route del default
SIOCDELRT: Não existe o processo
discando…
Pressione Ctrl+C para encerrar a conexão.
wvdial 3g
--> WvDial: Internet dialer version 1.60
--> Cannot open /dev/ttyUSB0: Invalid argument
--> Cannot open /dev/ttyUSB0: Invalid argument
--> Cannot open /dev/ttyUSB0: Invalid argument
./conectar-vivozap: 757: /etc/init.d/NetworkManager: not found
root@asus:/home/alexandre/Área de Trabalho/vivozap# * Reconfiguring network interfaces… [ OK ]
By Rafael Cruz Rubert on dez 19, 2008
Pelo visto o modem não foi detectado ou não está aceitando os comandos. Qual modem você está usando e em qual distribuição?
By Carlos Morimoto on dez 19, 2008
O modem é um HUAWEI Mobile Connect model: E156
Sra que não falta augum pacote por o ubuntu-eee nao ser tao completo quanto o ubuntu?
Estou usando um ubuntu-EEE
By Rafael Cruz Rubert on dez 19, 2008
Olá, eu tenho um modem Aiko 82D que estava bloqueado, consegui na VIVO o código de desbloqueio, mas, levei na loja da OI para desbloquear e comprar o chip, porém, o pessoal da loja conseguiu apenas desbloquear o aparelho, ao tentar conectar com chip da OI o modem não conecta. Alguém sabe se este modem da VIVO tem algum outro tipo de bloqueio? Porque mesmo desbloqueado ele não conecta? Desde já agradeço a atenção.
By Alexcz on dez 26, 2008
Salve Morimoto e todos, consegui fazer funcionar o E156 da Huawei no Ubuntu 8.10. Mas preciso ir além: preciso garantir a escolha da rede WCDMA (3G). Caso contrário, o bicho cata uma rede GSM qq e se arrasta… len..ta..men..te. No programinha que vem no E156 (para o Ruindows) dá para escolher acesso somente em WCDMA (na aba ferramentas). Alguém saberia me dizer quais parâmetros uso para isso. obrigado. Bom 2009 a todos!
By Mário on dez 30, 2008