No meu caso, quando ficamos sem sinal da NET colocamos o chaveiro 3G na porta USB do roteador e o mesmo passa a compartilhar internet com outros micros.
Dados do roteador:
Linux net-server 2.6.34-gentoo-r6 #13 SMP Fri Feb 25 18:45:39 Local time zone must be set–see zic x86_64 Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz GenuineIntel GNU/Linux
Dados do chaveiro via dmesg:
[217474.944179] usb 1-5: New USB device found, idVendor=19d2, idProduct=0031
[217474.944181] usb 1-5: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[217474.944184] usb 1-5: Product: ZTE CDMA Technologies MSM
[217474.944186] usb 1-5: Manufacturer: ZTE,Incorporated
...
[217474.946444] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB2
Automatizando a configuração e discagem:
Foi criado o arquivo em
/etc/udev/rules.d/10-local.rules com o seguinte conteúdo:
# cat /etc/udev/rules.d/10-local.rules
KERNEL=="ttyUSB2", ACTION=="add|change", RUN+="/root/3g-config-start"
KERNEL=="ttyUSB2", ACTION=="remove", RUN+="/root/3g-config-stop"
Esta dica foi acessada dia 28/02/2011 do seguinte site:
Com isso quando o chaveiro 3G é espetado na usb e o kernel cria a entrada /dev/ttyUSB2, o arquivo 3g-config-start é chamado. Lembre-se que o kernel deve estar devidamente configurado para reconhecer o hardware novo.
Conteúdo do arquivo 3g-config-start:
# cat /root/3g-config-start
#!/bin/bash
/etc/init.d/net.wan0 stop
/etc/init.d/net.ppp0 start
/usr/bin/wvdial 3g &
/bin/echo "wvdial subindo"
/etc/init.d/squid restart
Este arquivo para a NET cabo e sobe a interface ppp0, depois disca com o wvdial e reinicia o Squid.
Segue a configuração do
/etc/conf.d/net:
# cat /etc/conf.d/net
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!)
config_wan0=( "dhcp" )
config_wan1=( "dhcp" )
config_lan0=( "192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" )
# DNS servers line is only needed if your default servers are slow
# These servers below are from OpenDNS
# dns_servers_ppp0=" '8.8.8.8' '8.8.4.4' "
config_ppp0="ppp"
link_ppp0"=/dev/ttyUSB0"
# plugins_ppp0=""
username_ppp0="vivo"
password_ppp0="vivo"
pppd_ppp0="lock defaultroute noipdefault noauth usepeerdns 460800"
phone_number_ppp0="*99#"
chat_ppp0="
'ABORT' 'BUSY'
'ABORT' 'NO ANSWER'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'TIMEOUT' '5'
" 'ATZ'
# 'OK' 'AT+CPIN?'
'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2'
# 'READY-AT+CPIN=1234-OK' "
# 'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'#8242;
'OK' 'AT+CGDCONT=1,\"IP\",\"zap.vivo.com.br\"'
'OK' 'ATDT\T'
'CONNECT' "
# '~' "
Segue a configuração do wvdial 3g:
# cat /etc/wvdial.conf
[Dialer 3g]
Modem = /dev/ttyUSB2
Baud = 921600
DialCommand = ATDT
Check Def Route = on
FlowControl = Hardware(CRTSCTS)
Username = vivo
Password = vivo
Phone = *99#
Stupid mode = 1
Auto Reconnect = on
Auto DNS = on
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Init3 = AT+CGDCONT=1,"IP","zap.vivo.com.br"
ISDN = 0
Modem Type = Analog Modem
Entao, quando achamos que a NET voltou basta a retirarmos o chaveiro da USB que ele levanta a interface do cabo novamente.
Segue o conteúdo do arquivo 3g-config-stop:
# cat /root/3g-config-stop
#!/bin/bash
/usr/bin/killall -15 wvdial
/etc/init.d/net.ppp0 stop
/etc/init.d/net.wan0 start
/etc/init.d/squid restart
Fiz todos os testes e funcionou perfeitamente em aproximadamente 1 minuto e 30 segundos para fazer o chaveamento. Espero poder contribuir para aqueles que precisam apenas colocar net alternativa em casos raros.
Se você quiser fazer isso de modo constante, ou seja, trabalhar com duas ou mais entradas de internet: Estude balanceamento de link.
Abraço e bom divertimento.