#!/bin/bash # werner@copaya.yi.org WIFI=0 rm -f /etc/udev/rules.d/70-persistent-net.rules ifconfig | grep "wlan1" > /dev/zero 2>&1 ; if test $? = 0 ; then WIFI=1 ; TREIBER="wlan1" ; fi ; ifconfig | grep "ath1" > /dev/zero 2>&1 ; if test $? = 0 ; then WIFI=1 ; TREIBER="ath1" ; fi ; ifconfig | grep "ra1" > /dev/zero 2>&1 ; if test $? = 0 ; then WIFI=1 ; TREIBER="ra1" ; fi ; ifconfig | grep "wlan0" > /dev/zero 2>&1 ; if test $? = 0 ; then WIFI=1 ; TREIBER="wlan0" ; fi ; ifconfig | grep "ath0" > /dev/zero 2>&1 ; if test $? = 0 ; then WIFI=1 ; TREIBER="ath0" ; fi ; ifconfig | grep "ra0" > /dev/zero 2>&1 ; if test $? = 0 ; then WIFI=1 ; TREIBER="ra0" ; fi ; ifconfig | grep "192.168.1.9" > /dev/zero 2>&1 ; if test $? = 1 ; then WIFI=0 ; fi ; if test $WIFI = 1 ; then ifconfig $TREIBER 192.168.1.9 up > /dev/zero 2>&1 ; /etc/ppp/wifisetup ; exit ; fi ; # falls kein wifi da, hier weiter IP0=5 ADSL=0 INTERFACE=0 ; MODEM=0 ; IP=0 TST=0 # TST=1 Modo Teste TST=0 normal DNS01=8.8.8.8 ; DNS02=208.67.222.222 #DNS01=208.67.222.222 ; DNS02=208.67.220.220 # in jedem Fall an /etc/resolv.conf anzufuegenden NS damit Namens-Aufloesung immer geht #DNS01=217.175.160.106 ; DNS02=217.175.160.11 TESTSITE=www.yahoo.com ; TESTSITEIP=87.248.113.14 # irgendein site / IP zum Testen ob die Verbindung geht dialog --infobox " SYS ADSL SETUP Program www.copaya.yi.org esperar warten ... " 0 0 sleep 1 # Ohne nachf. ping 4 sec. warten rm -f ping.log route.txt scr > /dev/zero if test $TST = 1 ; then echo -e "Caminho da conexao -- \c" > route.txt route >> route.txt ; echo -e "\n Quando lido, aperta !" >> route.txt dialog --textbox route.txt 0 0 fi ; # 0. Testen von trivialen Verbindungen; vhd. Einstellung bzw. einfaches resolve,conf cat /etc/resolv.conf > /etc/resolv.conf.war # altes resolv.conf ohne Anhaenge # Ob vorhandenes resolv.conf schon geht echo "nameserver 192.168.1.1" >> /etc/resolv.conf # hintanstellen da oft altes resolv.conf schon 192.168.1.1 ping -c 2 -w 8 $TESTSITE > ping.log 2> /dev/zero ; grep "time=" ping.log > scr ; if test $? -eq 0 ; then ADSL=1 ; fi ; #cat ping.log ; echo $ADSL ; sleep 7 if test $ADSL = 0 ; then # einfaches neues resolv.conf nachen, testen #cat /etc/resolv.conf > /etc/resolv.conf.0 echo "nameserver 192.168.1.1" > /etc/resolv.conf # hintanstellen da oft altes resolv.conf schon 192.168.1.1 echo "nameserver " $DNS01 >> /etc/resolv.conf ; echo "nameserver " $DNS02 >> /etc/resolv.conf ; sync # sicherheitshalber ping -c 2 -w 8 $TESTSITE > ping.log 2> /dev/zero ; grep "time=" ping.log > scr ; if test $? -eq 0 ; then ADSL=1 ; fi ; #if test $ADSL = 0 ; then cat /etc/resolv.conf.0 > /etc/resolv.conf ; fi ; # hinten lassen, gefundene Modems nach vorne fi ; if test $ADSL = 0 ; then # falls alles erfolglos war, altes resolv.conf zurueckkopieren, aber falls erfolgreich, neues lassen cat /etc/resolv.conf.war > /etc/resolv.conf # Nachstellen schadet nichts: falls resolv.conf leer, werden diese defaults genommen, falls >3 schon vhd, werden diese defauls ignoriert # evtl. NS via ppp0 VORANstellen, daher hier kein 192.168.1.1 voranstellen echo "nameserver " $DNS01 >> /etc/resolv.conf ; echo "nameserver " $DNS02 >> /etc/resolv.conf ; sync # sicherheitshalber fi ; if test $ADSL = 0 ; then # 1. Verificar e configurar placas ethernet dialog --infobox " MODEM OU ROUTEADOR DEVE ESTAR CONECTADO COM O COMPUTADOR E COM A LINHA TELEFONICA / INTERNET, E A LAMPADA @ NAO DEVE PISCAR MAS ESTAR ASCESA Se uma lampada no modem pisca toda hora, a linha telefonica ainda nao funciona e o modem nao contactara, Tem de falar com o providor ! " 0 0 # Problem: bei mehr als 1 eth kann udev (in /eth/udev/rules.d) dasjenige (MAC-Adresse) als eth0 bezeichnet haben # an dem NICHT das modem ist. Dann geht pppoe / pon nicht, findet nichts #sleep 3 mkdir -p /etc/udev/rules.d/old > /dev/zero INTERFACE=0 # erstes gefundenes interface INTERFACE1=0 # zweites gefundenes Interface INTERFACE2=0 # zweites gefundenes Interface # erste beiden Netzwerk-Karten suchen for J in 0 1 ; do if test $INTERFACE = 0 ; then if test $J = 1 ; then mv -f /etc/udev/rules.d/*persistent-net.* /etc/udev/rules.d/old > /dev/zero mv -f /etc/udev/rules.d/*network-devices.* /etc/udev/rules.d/old > /dev/zero sync ; fi ; for I in 0 1 2 3 ; do ifconfig eth$I down > /dev/zero 2>&1 ifconfig eth$I 192.168.1.$IP0 up > /dev/zero 2>&1 if test $? -eq 0 ; then if test $INTERFACE = 0 ; then INTERFACE1=eth$I ; INTERFACE=eth$I ; fi ; if test $INTERFACE != 0 ; then INTERFACE2=eth$I ; fi ; fi ; ifconfig eth$I down > /dev/zero 2>&1 ; #echo " I= " $I "gefunden: " $INTERFACE $INTERFACE1 $INTERFACE2 done fi ; done # endgueltige IP erst nach Modem finden, da vorletzte Ziffer (Netz) abhaengig von diesem if test $INTERFACE1 != 0 ; then dialog --infobox " Foi achada a placa ethernet: /dev/$INTERFACE1 " 0 0 sleep 3 fi ; if test $INTERFACE2 != 0 ; then dialog --infobox " Foi achada a placa ethernet: /dev/$INTERFACE2 " 0 0 sleep 3 fi ; if test $INTERFACE = 0 ; then dialog --infobox " Nao foi achada nenhuma placa ETHERNET funcionando neste computador. Verifica, e compra uma (ca. de 10 Euro), coloca ela, e conecta seu modem com ela. Depois, usa este programa novamente Programa termina ! " 0 0 sleep 10 fi ; # 2. Modem suchen MODEM=0 # Es wird nur das erste Modem gesucht, jedoch an zwei eth Karten for INTERFACE in $INTERFACE1 $INTERFACE2 ; do if test $MODEM = 0 ; then dialog --infobox " Procura de modems no: $INTERFACE Se nao for achado, ou nao conectar, e se tiver mais que uma placa eth, coloca o modem numa outra e roda o pro- grama de novo " 0 0 # Pois ninguem sabe, qual placa udev identifica como eth0 ... sleep 3 for J in 0 1 ; do for I in 1 10 254 ; do if test $IP0 -eq $I ; then IP=$(($IP0-1)) ; fi ; if test $MODEM -eq 0 ; then MODEM=192.168.$J.$I ; IP=192.168.$J.$IP0 ifconfig $INTERFACE $IP up > /dev/zero route add $MODEM dev $INTERFACE > /dev/zero if test $TST = 1 ; then echo -e "Testar a conecao : \n" > route.txt echo " Placa da rede: " $INTERFACE " IP: " $IP >> route.txt echo " Modem: " $MODEM >> route.txt echo -e "\n Caminho da conexao -- \c" >> route.txt route >> route.txt ; echo -e "\n Quando lido, aperta !" >> route.txt dialog --textbox route.txt 0 0 fi ; ping -c 5 -w 4 $MODEM > ping.log ; grep "time=" ping.log > scr # in Linux alles total bescheuert , ANTWORT=$? # ping gibt nicht richtig $?=0 zurueck falls erfolgreich if test $ANTWORT != 0 ; then route del $MODEM > /dev/zero ; ifconfig $INTERFACE down > /dev/zero ; MODEM=0 ; fi ; sleep 1 fi ; done done if test $MODEM != 0 ; then dialog --infobox " Foi achado e sera usado o modem: IP: $MODEM Conectado com $INTERFACE IP: $IP " 0 0 sleep 3 fi ; fi ; # ob ein Modem schon gefunden done # beide Interfaces INTERFACE1,2 if test $MODEM = 0 ; then dialog --infobox " Nao foi achada nenhum modem ETHERNET conectado neste computador. que trabalhe como routeador " 0 0 sleep 5 fi ; if test $MODEM != 0 ; then cat /etc/resolv.conf > /etc/resolv.conf.0 echo "nameserver " $MODEM > /etc/resolv.conf # gefundenen Router vorne als ersten nameserver eintragen cat /etc/resolv.conf.0 >> /etc/resolv.conf #route add $MODEM gw $IP schon oben in Schleife echo "# Zusatz von adslsetup: " >> /etc/rc.d/rc.local echo "route add $MODEM dev $INTERFACE " >> /etc/rc.d/rc.local # route del default [dev eth0] route add default gw $MODEM > /dev/zero echo "route del default " >> /etc/rc.d/rc.local echo "route add default gw $MODEM " >> /etc/rc.d/rc.local # 3. Sehen ob Modem schon geht, zBsp mit pppoe in ihm und schon von Windows her laufend if test $TST = 1 ; then echo -e "Caminho da conexao -- \c" > route.txt route >> route.txt ; echo -e "\n Quando lido, aperta !" >> route.txt dialog --textbox route.txt 0 0 fi ; ping -c 2 -w 8 www.yahoo.com > ping.log ; grep "time=" ping.log > scr ; if test $? = 0 ; then ADSL=1 ; fi ; fi ; # test MODEM = 1 fi ; # test ADSL = 0 if test $ADSL = 0 ; then if test $MODEM != 0 ; then dialog --msgbox " CONFIGURAR O MODEM COMO ROUTEADOR - possivel p.ex. c/ livebox da Orange, impossivel modem speedtouch da Only - Nos entraremos agora no modem. Digita: USUARIO / SENHA * DO MODEM * , tenta: admin / admin , admin / password , ou consulta o manual do modem. Depois, dentre do modem, procura onde digitar: USUARIO / SENHA = USERNAME / PASSWORD * DA SUA CONEXAO ADSL * , que voce recebeu pelo providor - ver no seu contrato de internet/ADSL Depois, procura / clica la CONECTAR com ADSL/INTERNET Depois, se consegiu ou se nao conseguir saia do modem, atravez de fechar sua janela, para continuarmos aqui Quando pronto ler isso, aperta " 0 0 konqueror $MODEM > /dev/zero if test $TST = 1 ; then echo -e "Caminho da conexao -- \c" > route.txt route >> route.txt ; echo -e "\n Quando lido, aperta !" >> route.txt dialog --textbox route.txt 0 0 fi ; ping -c 2 -w 8 www.yahoo.com > ping.log ; grep "time=" ping.log > scr ; if test $? = 0 ; then ADSL=1 ; fi ; fi ; # MODEM = 1 fi ; # ADSL = 0 # 4. Modem geht noch nicht, Versuch mit pppoe im Computer if test $ADSL = 0 ; then # 2. configuracao Modem - Providora dialog --infobox " CONFIGURAR O MODEM COMO PASSARELA - possivel p.ex. c/ livebox da Orange, SAGEM speedtouch, e outros modems Modo unico p/ modem speedtouch da Only, neste caso se pode sair desta janela agora imediatamente sem adaptar nada aqui " 0 0 sleep 10 if test $MODEM != 0 ; then dialog --msgbox " Nos entraremos agora no modem. Digita: USUARIO / SENHA * DO MODEM * , tenta: admin / admin , admin / password , ou consulta o manual do modem. Dentre do modem, procurar colocar ele no modo bridge = passarela = acesso ADSL SEM usuario = user / senha = password Depois, se consegiu ou se nao conseguir saia do modem, atravez de fechar sua janela, para continuarmos aqui Quando pronto ler isso, aperta " 0 0 konqueror $MODEM > /dev/zero fi ; # MODEM = 1 dialog --infobox " Digita seu nome USUARIO recebido pela operadora internet e aperta ! Exemplo OOL: LP4/EFTNY@OOL Exemplo wanadoo: fti/abdef " 0 0 echo -e ">"\\c read USUARIO REST dialog --infobox " Digita sua SENHA recebido pela operadora internet e aperta ! Exemplo OOL: MOBMBLOB Exemplo wanadoo: xadfgj " 0 0 echo -e ">"\\c read SENHA REST dialog --infobox " INFO Voce digitou usuario: $USUARIO senha: $SENHA ! " 0 0 sleep 5 cat /etc/ppp/pap-secrets > /etc/ppp/pap-secrets.old echo '"'$USUARIO'"' " * " '"'$SENHA'"' > /etc/ppp/pap-secrets cat /etc/ppp/chap-secrets > /etc/ppp/chap-secrets.old echo '"'$USUARIO'"' " * " '"'$SENHA'"' > /etc/ppp/chap-secrets echo "lock ipparam ppp0 noipdefault noauth defaultroute noaccomp noccp nobsdcomp nodeflate nopcomp novj lcp-echo-interval 20 lcp-echo-failure 3 maxfail 5 updetach persist holdoff 4 " > /etc/ppp/options-without-user.new echo "noipdefault usepeerdns defaultroute hide-password lcp-echo-interval 20 lcp-echo-failure 3 maxfail 5 noauth persist mtu 1412 noaccomp default-asyncmap " > /etc/ppp/peers/provider-without-user.new fi ; # test ADSL = 0 for INTERFACE in $INTERFACE1 $INTERFACE2 ; do if test $MODEM = 0 ; then # falls schon ein Modem oder eine ADSL-Verbindung gefunden, nicht weitersuchen if test $ADSL = 0 ; then echo "user" '"'$USUARIO'"' " plugin rp-pppoe.so " $INTERFACE > /etc/ppp/user.new mkdir -p /etc/ppp/peers > /dev/zero cat /etc/ppp/options > /etc/ppp/options.old ; cat /etc/ppp/peers/provider > /etc/ppp/peers/provider.old rm /etc/ppp/options ; cat /etc/ppp/options.old > /etc/ppp/options # links loeschen und durch Datei ersetzen rm /etc/ppp/peers/provider ; cat /etc/ppp/peers/provider.old > /etc/ppp/peers/provider cp /etc/ppp/peers/provider-without-user.new /etc/ppp/peers/provider > /dev/zero # kein cp -f , nicht ueberschreiben falls da cp /etc/ppp/options-without-user.new /etc/ppp/options > /dev/zero # muessen ohne user und plugin ... eth0 sein cat /etc/ppp/user.new >> /etc/ppp/peers/provider # user-name anhaengen cat /etc/ppp/user.new >> /etc/ppp/options cp /usr/doc/ppp*/scripts/pon /usr/bin > /dev/zero ; chmod +x /usr/bin/pon cp /usr/doc/ppp*/scripts/poff /usr/bin > /dev/zero ; chmod +x /usr/bin/poff dialog --infobox " Procura dum modem ligado com: $INTERFACE Os parametros da conexao entre Modem e Providora foi configurada Sempre pode conectar com o internet digitando na console: pon e pode terminar digitando: poff Ou voce apertar no botao ADSL passarela na mesa Tentamos agora achar um modem e conectar ... " 0 0 ifconfig $INTERFACE $IP up > /dev/zero # ; ifconfig ; sleep 10 # killall pppd > /dev/zero 2>&1 # falls noch erfolgloses Suchen haengt ... sleep 8 pon & # > pon.log sleep 20 # 20 sek. Zeit lassen um zu verbinden if test $TST = 1 ; then dialog --textbox pon.log 0 0 ; fi ; sleep 3 cat /etc/resolv.conf.war > /etc/resolv.conf #grep "DNS" pon.log > scr ; read UNW1 UNW2 UNW3 DNS1 REST ; echo "nameserver " $DNS1 >> /etc/resolv.conf cat /etc/resolv.conf > /etc/resolv.conf.0 cat /etc/ppp/resolv.conf > /etc/resolv.conf # von pon gefundene DNS vorstellen, nicht nachstellen da nur 3 benutzt wd cat /etc/resolv.conf.0 >> /etc/resolv.conf echo "nameserver " $DNS01 >> /etc/resolv.conf ; echo "nameserver " $DNS02 >> /etc/resolv.conf ; sync # sicherheitshalber route add default dev ppp0 echo "route del default " >> /etc/rc.d/rc.local echo "route add default dev ppp0 " >> /etc/rc.d/rc.local ping -c 3 -w 12 $TESTSITE > ping.log ; grep "time=" ping.log > scr ; IFPING=$? # Auch noch $RESTSITEIP einbauen if test $IFPING = 0 ; then ADSL=1 ; if test $MODEM = 0 ; then MODEM=ppp0 ; fi ; fi ; if test $TST = 1 ; then cat ping.log > route.txt ; echo -e "Caminho da conexao -- \c" >> route.txt route >> route.txt ; echo -e "\n Quando lido, aperta !" >> route.txt #echo " IFPING: " $IFPING " ADSL: " $ADSL " MODEM: " $MODEM >> route.txt dialog --textbox route.txt 0 0 fi ; fi ; # test ADSL = 0 fi ; # irgendein Modem schon gefunden oder nicht done # beide Interfaces INTERFACE1,2 if test $ADSL = 0 ; then if test $MODEM = 0 ; then dialog --msgbox " Nao foi achada nenhum modem ETHERNET conectado neste computador. Liga seu modem com o cabo ETHERNET e depois relanca este programa ! Se voce nao tem, compra uma (ca. de 40 Euro), e conecta ela c/o computador Depois, usa este programa novamente " 0 0 sleep 10 fi ; # test MODEM = 0 if test $MODEM != 0 ; then dialog --infobox " Exista algum problema. Configuracao sem successo. Leia as informacoes em seguir. Se uma lampada no modem pisca toda hora, a linha telefonica nao funciona e o modem nao contacta Tem de falar com o providor. " 0 0 sleep 15 dialog --msgbox " ADSL Configurador SYS www.copaya.yi.org *** ATENCAO *** Este programa e para configurar uma nova conexao ADSL (inicialmente, ou se parou de funcionar). Ele nao e para ser usado se sua conexao ADSL ja funciona, p.ex. lancar o ADSL - para tal favor usa o simbolo ADSL na mesa ou a instrucao pon no terminal. Neste caso, sai agora deste programa, apertando no mesmo tempo os botoes e . Este programa tambem so e para ADSL via ethernet. Ele nao e para internet comum (baixa velocidade), hoje pouco usado. Se voce tiver internet comum, o melhor e ter um modem externo, ligado num porte serial. Neste caso, configuracao e uso sao extremamente facil com o programa kppp ou wvdial. wvdial procura e configura o modem sozinho. no kppp, so e necessario informar no qual porte serial o modem e ligado, e deixar todos outros valores como estao. Ademais e necessario digitar o numero telefone da providora (p.ex. 0860888080 no wanadoo), e usuario (p.ex. fti/abcdef) e senha (p.ex. xyzabc) recebido pela providora. Mais complicado e lento sao modems internos; e necessario procurar o programa driver no internet e a adaptacao e diferente para todo tipo, de modo que e melhor comprar um modem externo. Se nao tiver ADSL mas internet comum, tambem saia deste programa apertando e . Informacoes basicos A conexao ADSL e feita atravez um modem ou modem/routeador. Este, num lado e conectado com a rede eterna (cabo de telefone), no outro lado com o computador. A conexao com o computador possa ser via cabo ethernet, ou via cabo USB. A conexao via ethernet e preferivel, USB e lento e complicado. A maioria dos modens tem ethernet, se seu nao o tenha, e melhor comprar um outro modem. Este programa so serve para configurar a conexao ADSL via ethernet. Se voce nao o tiver, saia daqui com ! Ou antes ou, se antes nao funcionar depois de usar este programa: / conecta o modem no computador, via cabo ethernet / usa o explorer dos arquivos no computador, konqueror, ou um brauser-web p.ex. firefox, digita 192.168.1.1 (modem thomson/speedtouch da OOL) ou 192.168.1.10 (livebox wanadoo) , em seguir usuario: admin e senha: admin ou password . Dentre do modem, adjusta: disliga DHCP ; escolha o modo-de-funcionamento passarela / bridge ; mudar o IP para 192.168.1.1 . / conecta o modem com a rede de telefone, usando o filtro. Veja que a linha telefonica funciona para ADSL. A lampada ADSL do modem nao deve piscar, mas deve ficar ascesa pouco depois de conectar. Se nao for, sera necessario telefonar a providencadora do servico Internet/ADSL (i.e. OOL ou wanadoo) Entende que a conexao Modem-Rede/Providora e a conexao Modem-Computador sao duas coisas separadas, cada conexao deve funcionar independentemente da outra. Mesmo se o modem nao estiver conectado com um computador, deve funcionar a linha telefonica e a lampada nao piscar. E no contrario, mesmo nao conectado com o internet, deve-se conseguir entrar no modem pelo computador, digitando o IP 192.168.1.1 . Para funcionar o internet, alem de ter feita a conexao Modem-Internet e Modem-Computador, e necessario facer a configuracao. Isso e, escrever nome-usuario e senha nos lugares certos no computador, e fazer alguns adaptacoes assim como detectar e configurar as placas existentes no computador e os caminhos como os dados passam por eles e pelo modem para o internet. E isso que faz este programa, servindo-se os programas-do-sistema ifconfig e route, resp. Esta configuracao so precisa ser feita no inicio, ou se nao funciona mais. Uma vez funcionando a configuracao, para lancar o internet, usa-se o comando pon no terminal, e poff para terminar. Para chamar estes programas, na mesa esta um icon ADSL no que se clica . Para continuar e fazer a configuracao, aperta o butao " 0 0 fi ; # test MODEM = 1 fi ; # test ADSL = 0 if test $ADSL = 1 ; then dialog --infobox " Configuracao pronta ! Internet funciona. Para usar, clica / ou firefox " 0 0 sleep 5 fi ; # test ADSL = 1 if test $INTERFACE != 0 ; then ifconfig $INTERFACE $IP up ; fi ; # Nicht wenn Verbindung schon ging, auch sonst meist ueberfluessig ( echo -e "\c" if test $INTERFACE != 0 ; then echo -e "\n Placa da rede: " $INTERFACE " IP: " $IP "\n" ; ping -c 2 -w 5 $IP ; fi ; if test $MODEM != 0 ; then echo -e "\n Modem: " $MODEM "\n" ; if test $MODEM != ppp0 ; then ping -c 2 -w 5 $MODEM ; fi ; fi ; ifconfig echo -e "\n Caminho da conexao -- \c" route echo -e "\n Resoluçao de DNS -- \c" cat /etc/resolv.conf echo -e "\n" ; ping -c 2 -w 8 www.yahoo.com echo -e "\n Quando lido, aperta !" ) > route.txt dialog --textbox route.txt 0 0 sync if test $ADSL = 1 ; then konqueror www.yahoo.com & fi ; # test ADSL = 1 exit