Raspberry Amok Installation: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
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 $USAGE | |||
exit 12 | |||
fi | fi | ||
| Zeile 54: | Zeile 55: | ||
# INSTALL PACKAGES | # INSTALL PACKAGES | ||
if ! | INSTALL="" | ||
echo "' | |||
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 | apt-get install -y $INSTALL | ||
else | else | ||
echo " | 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">
- !/bin/bash
- 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"
- 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
- 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
- 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('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>