Raspberry Amok Installation: Unterschied zwischen den Versionen

Aus Agilos Wiki
Zur Navigation springen Zur Suche springen
Patrick (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Patrick (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 18: Zeile 18:
PAP_SECRETS="/etc/ppp/pap-secrets"
PAP_SECRETS="/etc/ppp/pap-secrets"
CHAP_SECRETS="/etc/ppp/chap-secrets"
CHAP_SECRETS="/etc/ppp/chap-secrets"
AMOK_PY="amok.py"




Zeile 45: Zeile 46:
PIN=$3
PIN=$3
if [ "$PIN" = "" ]; then
if [ "$PIN" = "" ]; then
        echo "missing SIM-PIN"
echo "missing SIM-PIN"
        echo $USAGE
echo $USAGE
        exit 12
exit 12
fi
fi


Zeile 54: Zeile 55:
# INSTALL PACKAGES
# INSTALL PACKAGES


if ! command -v wvdial >/dev/null 2>&1; then
INSTALL=""
echo "'wvdial' is not installed - installing it"
 
PACKAGE="wvdial"
if ! dpkg --get-selections $PACKAGE > /dev/null 2>&1; then
echo "'$PACKAGE' is not installed"
INSTALL="$INSTALL $PACKAGE"
   
   
RESULT=`grep "$REPOSITORY" $APT_SOURCES 2> /dev/null`
RESULT=`grep "$REPOSITORY" $APT_SOURCES 2> /dev/null`
Zeile 64: Zeile 69:
echo "repository already in $APT_SOURCES"
echo "repository already in $APT_SOURCES"
fi
fi
else
echo "'$PACKAGE' is already installed"
fi
PACKAGE="python-dev"
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
PACKAGE="python-rpi.gpio"
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
if [ "$INSTALL" != "" ]; then
echo "installing$INSTALL"
apt-get update
apt-get update
apt-get install -y wvdial
apt-get install -y $INSTALL
else
else
echo "'wvdial' is already installed"
echo "nothing new to install"
fi
fi


Zeile 111: Zeile 141:
chown $USERNAME:$GROUPNAME $PAP_SECRETS
chown $USERNAME:$GROUPNAME $PAP_SECRETS
chown $USERNAME:$GROUPNAME $CHAP_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('pwd &')"
SCRIPT="${SCRIPT}\n\tif ( GPIO.input(24) == False ):"
SCRIPT="${SCRIPT}\n\t\tos.system('pwd &')"
SCRIPT="${SCRIPT}\n\tif ( GPIO.input(25)== False ):"
SCRIPT="${SCRIPT}\n\t\tos.system('pwd &')"
SCRIPT="${SCRIPT}\n\tsleep(1);"
echo -e "$SCRIPT" > $AMOK_PY
chmod u=rwx,go= $AMOK_PY
echo "wrote '$AMOK_PY'"
</source>
</source>

Version vom 16. Januar 2013, 10:25 Uhr

<source lang="bash">

  1. !/bin/bash


  1. CONFIG

REPOSITORY="deb http://security.debian.org testing/updates main contrib non-free" 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"


  1. CHECK PARAMETERS

USAGE="USAGE: $0 USERNAME GROUPNAME SIM-PIN" 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


  1. INSTALL PACKAGES

INSTALL=""

PACKAGE="wvdial" if ! dpkg --get-selections $PACKAGE > /dev/null 2>&1; then echo "'$PACKAGE' is not installed" INSTALL="$INSTALL $PACKAGE"

RESULT=`grep "$REPOSITORY" $APT_SOURCES 2> /dev/null` if [ "$RESULT" != "$REPOSITORY" ]; then echo "adding repository to $APT_SOURCES" echo -e "\n$REPOSITORY" >> $APT_SOURCES else echo "repository already in $APT_SOURCES" fi else echo "'$PACKAGE' is already installed" fi


PACKAGE="python-dev" 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


PACKAGE="python-rpi.gpio" 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


if [ "$INSTALL" != "" ]; then echo "installing$INSTALL" apt-get update apt-get install -y $INSTALL else echo "nothing new to install" fi


  1. 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'"


  1. 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


  1. 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('pwd &')" SCRIPT="${SCRIPT}\n\tif ( GPIO.input(24) == False ):" SCRIPT="${SCRIPT}\n\t\tos.system('pwd &')" SCRIPT="${SCRIPT}\n\tif ( GPIO.input(25)== False ):" SCRIPT="${SCRIPT}\n\t\tos.system('pwd &')" SCRIPT="${SCRIPT}\n\tsleep(1);"

echo -e "$SCRIPT" > $AMOK_PY chmod u=rwx,go= $AMOK_PY echo "wrote '$AMOK_PY'" </source>