#!/bin/sh # use gainroot to become root and relaunch itself if [ `id -u` != 0 ] ; then #if not already root, call itself as root exec sudo gainroot <<EOF exec $0 $* EOF exit $? fi # real script follows BTADDR='00:16:41:B7:B9:07' BTNAME="FRANTA" IP=192.168.2.2 GW=192.168.2.1 NS=10.6.101.1 IFACE=bnep0 PAN_ROLE=GN # remote PAN role, one of PANU, NAP, GN #thanks to inz on #maemo IRC channel for this infoprint(){ dbus-send >/dev/null 2>&1 --system --print-reply --dest=com.nokia.statusbar /com/nokia/statusbar com.nokia.statusbar.system_note_infoprint "string:$*" & } dummy_wlan_down(){ if ifconfig wlan0 | grep -q "UP BROADCAST RUNNING" ; then # OK wlan is up, do we have IP set up? if not (=our dummy ad-hoc) bring wlan0 down ifconfig wlan0 | grep -q "inet addr" || ifconfig wlan0 down fi } bnep_start(){ dummy_wlan_down #insmod just to be sure insmod /mnt/initfs/lib/modules/current/bnep.ko #start PAN Bluetooth connection pand --connect $BTADDR -d $PAN_ROLE # wait for the interface created by pand s=60 echo -n "Waiting $s secs for $IFACE" while [ $s -gt 0 ] ; do ifconfig $IFACE >/dev/null 2>&1 && break s=$((s-1)) [ -t 1 ] && echo -n "." sleep 1 done echo if ifconfig $IFACE >/dev/null 2>&1 ; then # bring it up echo "OK, bringing $IFACE up" ifconfig $IFACE $IP up route add default gw $GW echo "nameserver $NS" >/tmp/resolv.conf.lo [ -t 1 ] || infoprint "Connected to $BTNAME" else echo "Error: $IFACE not available." [ -t 1 ] || infoprint "Connection failed" fi } bnep_stop(){ echo "OK, bringing $IFACE down" echo -n '' >/tmp/resolv.conf.lo pand -K sleep 1 rmmod bnep [ -t 1 ] || infoprint "Disconnected" } COMMAND=$1 if [ "$COMMAND" = "" ] ; then if ifconfig $IFACE >/dev/null 2>&1 ; then COMMAND=stop else COMMAND=start fi fi case $COMMAND in start) bnep_start ;; stop) bnep_stop ;; esac
#!/bin/sh if [ `id -u` != 0 ] ; then #if not already root, call itself as root exec sudo gainroot <<EOF exec $0 $* EOF exit $? fi #real script follows cd `dirname $0` SHORTCUT=franta-bnep.desktop SHORTCUT_NAME="PAN connection to FRANTA" SHORTCUT_SCRIPT=`pwd`/franta-bnep cat >$SHORTCUT <<EOF [Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Application Name=$SHORTCUT_NAME X-Osso-Type=application/x-executable Exec=$SHORTCUT_SCRIPT EOF mv $SHORTCUT /usr/share/applications/hildon/