Raspberry Amok Installation: Unterschied zwischen den Versionen
| Zeile 6: | Zeile 6: | ||
./install-wvdial-amok.sh USERNAME GROUPNAME SIM-PIN HTTP HTTP-USER HTTP-PASS<br> | ./install-wvdial-amok.sh USERNAME GROUPNAME SIM-PIN HTTP HTTP-USER HTTP-PASS<br> | ||
<br> | <br> | ||
USERNAME Name des Benutzers der später die GSM-Verbindung nutzen soll | {| class="wikitable" | ||
GROUPNAME Name der Gruppe die später die GSM-Verbindung nutzen soll | ! Feld !! Beschreibung | ||
SIM-PIN Pin der Sim-Karte für die GSM-Verbindung | |- | ||
HTTP http-Adresse für die Alarmierung | | USERNAME || Name des Benutzers der später die GSM-Verbindung nutzen soll | ||
HTTP-USER Benutzername für die http-Alarmierung | |- | ||
HTTP-PASS Passwort für die http-Alarmierung | | GROUPNAME || Name der Gruppe die später die GSM-Verbindung nutzen soll | ||
|- | |||
| SIM-PIN || Pin der Sim-Karte für die GSM-Verbindung | |||
|- | |||
| HTTP || http-Adresse für die Alarmierung | |||
|- | |||
| HTTP-USER || Benutzername für die http-Alarmierung | |||
|- | |||
| HTTP-PASS || Passwort für die http-Alarmierung | |||
|} | |||
==Skript== | ==Skript== | ||
Version vom 16. Januar 2013, 11:08 Uhr
Parameter
Aufruf:
./install-wvdial-amok.sh USERNAME GROUPNAME SIM-PIN HTTP HTTP-USER HTTP-PASS
| Feld | Beschreibung |
|---|---|
| USERNAME | Name des Benutzers der später die GSM-Verbindung nutzen soll |
| GROUPNAME | Name der Gruppe die später die GSM-Verbindung nutzen soll |
| SIM-PIN | Pin der Sim-Karte für die GSM-Verbindung |
| HTTP | http-Adresse für die Alarmierung |
| HTTP-USER | Benutzername für die http-Alarmierung |
| HTTP-PASS | Passwort für die http-Alarmierung |
Skript
<source lang="bash">
- !/bin/bash
- CONFIG
WVDIAL_CONF="/etc/wvdial.conf" APT_SOURCES="/etc/apt/sources.list" USB_DEV="/dev/ttyUSB0" USB_BAUD="9600" GSM_DST="internet.t-d1.de" GSM_USER="internet" GSM_PASS="t-d1" GSM_NUMBER="*99#" PPPD="/usr/sbin/pppd" PAP_SECRETS="/etc/ppp/pap-secrets" CHAP_SECRETS="/etc/ppp/chap-secrets" AMOK_PY="amok.py"
- CHECK PARAMETERS
USAGE="USAGE: $0 USERNAME GROUPNAME SIM-PIN HTTP HTTP-USER HTTP-PASS" if [ $UID != 0 ]; then echo "only root can execute this script!" exit 1 fi
USERNAME=$1 if [ "$USERNAME" = "" ]; then echo "missing USERNAME" echo $USAGE exit 10 fi
GROUPNAME=$2 if [ "$GROUPNAME" = "" ]; then echo "missing GROUPNAME" echo $USAGE exit 11 fi
PIN=$3 if [ "$PIN" = "" ]; then echo "missing SIM-PIN" echo $USAGE exit 12 fi
HTTP=$4 if [ "$HTTP" = "" ]; then echo "missing HTTP" echo $USAGE exit 13 fi
HTTP_USER=$5 if [ "$HTTP_USER" = "" ]; then echo "missing HTTP-USER" echo $USAGE exit 14 fi
HTTP_PASS=$6 if [ "$HTTP_PASS" = "" ]; then echo "missing HTTP-PASS" echo $USAGE exit 15 fi
HTTP="$HTTP?user=$HTTP_USER\&pass=$HTTP_PASS\&button="
- ADD REPOSITORIES
REPOS="deb http://security.debian.org testing/updates main contrib non-free"
echo "$REPOS" | while read REPO; do RESULT=`grep "$REPO" $APT_SOURCES 2> /dev/null` if [ "$RESULT" != "$REPO" ]; then echo "adding '$REPO' to $APT_SOURCES" echo -e "\n$REPO" >> $APT_SOURCES else echo "'$REPO' already in $APT_SOURCES" fi done
- INSTALL PACKAGES
PACKAGES="wvdial python-dev python-rpi.gpio curl" INSTALL=""
for PACKAGE in $PACKAGES; do if ! dpkg --get-selections $PACKAGE > /dev/null 2>&1; then echo "'$PACKAGE' is not installed" INSTALL="$INSTALL $PACKAGE" else echo "'$PACKAGE' is already installed" fi done
if [ "$INSTALL" != "" ]; then echo "installing$INSTALL" apt-get update apt-get install -y $INSTALL else echo "nothing new to install" fi
- WRITE CONFIG
CONFIG="" CONFIG="${CONFIG}\n[Dialer Defaults]" CONFIG="${CONFIG}\nInit2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0" CONFIG="${CONFIG}\nModem Type = Analog Modem" CONFIG="${CONFIG}\nISDN = 0" CONFIG="${CONFIG}\nInit1 = ATZ" CONFIG="${CONFIG}\nModem = $USB_DEV" CONFIG="${CONFIG}\nBaud = $USB_BAUD" CONFIG="${CONFIG}\n" CONFIG="${CONFIG}\n[Dialer pin]" CONFIG="${CONFIG}\nInit3 = AT+CPIN=$PIN" CONFIG="${CONFIG}\n" CONFIG="${CONFIG}\n[Dialer connect]" CONFIG="${CONFIG}\nCarrier Check = no" CONFIG="${CONFIG}\nInit4 = AT+CGDCONT=1,\"IP\",\"$GSM_DST\"" CONFIG="${CONFIG}\nStupid Mode = 1" CONFIG="${CONFIG}\nPhone = $GSM_NUMBER" CONFIG="${CONFIG}\nDialer Command = ATD" CONFIG="${CONFIG}\nDial Attemps = 2" CONFIG="${CONFIG}\nUsername = $GSM_USER" CONFIG="${CONFIG}\nPassword = $GSM_PASS"
echo -e "$CONFIG" > $WVDIAL_CONF chmod u=rw,go=r $WVDIAL_CONF echo "wrote '$WVDIAL_CONF'"
- CHANGE SOME PERMISSIONS TO BE ABLE TO EXECUTE AS NON-ROOT
adduser $USERNAME dip adduser $USERNAME dialout
echo "changing permissions of ppp-files" chmod o+x,g+s $PPPD chown $USERNAME:$GROUPNAME $PAP_SECRETS chown $USERNAME:$GROUPNAME $CHAP_SECRETS
- WRITE amok-script
cd `dirname $0` SCRIPT="" SCRIPT="${SCRIPT}\n#!/usr/bin/env python" SCRIPT="${SCRIPT}\n" SCRIPT="${SCRIPT}\nfrom time import sleep" SCRIPT="${SCRIPT}\nimport os" SCRIPT="${SCRIPT}\nimport RPi.GPIO as GPIO" SCRIPT="${SCRIPT}\n" SCRIPT="${SCRIPT}\nGPIO.setmode(GPIO.BCM)" SCRIPT="${SCRIPT}\nGPIO.setup(23, GPIO.IN)" SCRIPT="${SCRIPT}\nGPIO.setup(24, GPIO.IN)" SCRIPT="${SCRIPT}\nGPIO.setup(25, GPIO.IN)" SCRIPT="${SCRIPT}\n" SCRIPT="${SCRIPT}\nwhile True:" SCRIPT="${SCRIPT}\n\tif ( GPIO.input(23) == False ):" SCRIPT="${SCRIPT}\n\t\tos.system('curl ${HTTP}23 &')" SCRIPT="${SCRIPT}\n\tif ( GPIO.input(24) == False ):" SCRIPT="${SCRIPT}\n\t\tos.system('curl ${HTTP}24 &')" SCRIPT="${SCRIPT}\n\tif ( GPIO.input(25)== False ):" SCRIPT="${SCRIPT}\n\t\tos.system('curl ${HTTP}25 &')" SCRIPT="${SCRIPT}\n\tsleep(1);"
echo -e "$SCRIPT" > $AMOK_PY chmod u=rwx,go= $AMOK_PY echo "wrote '$AMOK_PY'" </source>