#!/bin/bash # purpose: connect to WLAN-IAI # autor: Timo Schlüter (schlueter@rz.tu-clausthal.de) # changed for SPK usage: rhalbauer 20081216 # changed for IAI usage: m.kaessemodel 20120313 if [ $# -lt 2 ] ; then echo ""; echo "*** To few options/arguments. ***"; echo ""; echo "#######################################################"; echo "# Usage: $basename $0 [WLAN-Interface] [SSID] #"; echo "#######################################################"; echo ""; exit 1; fi AWK=`which awk` IFCONFIG=`which ifconfig` IWCONFIG=`which iwconfig` IF=$1 SSID=$2 WPA_SUPPLICANT=`which wpa_supplicant` DHCLIENT=`which dhclient` SUPP_CONF="/etc/wlan_iai_wpa_supplicant.conf" SUPP_DRIVER="wext" quit-with-error () { echo echo "WLAN-IAI konnte nicht gestartet werden." echo exit 1 } sanity-checks () { echo "Prüfe Vorhandensein von..." echo -n " ${IFCONFIG}..." [ -x ${IFCONFIG} ] && { echo " OK." } || { echo " NICHT GEFUNDEN." ; quit-with-error } echo -n " ${IWCONFIG}..." [ -x ${IWCONFIG} ] && { echo " OK." } || { echo " NICHT GEFUNDEN." ; quit-with-error } echo -n " ${WPA_SUPPLICANT}..." [ -x ${WPA_SUPPLICANT} ] && { echo " OK." } || { echo " NICHT GEFUNDEN." ; quit-with-error } echo -n " ${DHCLIENT}..." [ -x ${DHCLIENT} ] && { echo " OK." } || { echo " NICHT GEFUNDEN." ; quit-with-error } echo -n " ${SUPP_CONF}..." [ -f ${SUPP_CONF} ] && { echo " OK." } || { echo " NICHT GEFUNDEN." ; quit-with-error } echo -n "Überprüfe, ob das Interface ${IF} existiert..." ${IFCONFIG} -s ${IF} >/dev/null 2>&1 && { echo " OK." } || { echo " INTERFACE NICHT GEFUNDEN." ; quit-with-error } echo -n "Überprüfe, ob ${IF} ein WLAN-Interface ist..." ${IWCONFIG} ${IF} | grep "no wireless extensions" >/dev/null 2>&1 && { echo "FEHLER: kein WLAN-Interface." ; quit-with-error } || { echo " OK." } } greet-user () { cat </dev/null 2>&1 ; sleep 2 ; echo -n "." kill -9 ${i} >/dev/null 2>&1 ; echo -n "." done ${IFCONFIG} ${IF} down >/dev/null 2>&1 ; echo -n "." ${IWCONFIG} ${IF} essid $SSID >/dev/null 2>&1 ; echo -n "." ${IWCONFIG} ${IF} mode Managed >/dev/null 2>&1 ; echo -n "." ${IWCONFIG} ${IF} enc off >/dev/null 2>&1 ; echo -n "." } start-supplicant () { ${WPA_SUPPLICANT} -i${IF} -D${SUPP_DRIVER} -c${SUPP_CONF} -B >/dev/null 2>&1 && { echo " OK." } || { echo " FEHLER: wpa_supplicant ließ sich nicht starten" ; quit-with-error } } do-dhcp () { ${DHCLIENT} ${IF} >/dev/null 2>&1 && { echo " OK." } || { echo " FEHLER: dhclient ließ sich nicht starten." ; quit-with-error } } ## ## ## MAIN ## ## greet-user echo "Führe Sanity-Checks durch:" ; sanity-checks ; echo " OK." ; echo echo -n "Initialisiere Netzwerkkarte ${IF}" ; initialize ; echo " OK." echo -n "Starte 802.1x-Supplicant.." ; start-supplicant & sleep 10 echo -n "Stelle DHCP-Anfrage... (Das sollte in maximal 30 Sekunden erledigt sein.)" ; do-dhcp echo "Die WLAN-SPK-Verbindung $SSID wurde erfolgreich gestartet!" echo exit 0