Skip to content

Instantly share code, notes, and snippets.

@nonchip
Created July 23, 2015 16:53
Show Gist options
  • Save nonchip/018a86dddae423badc80 to your computer and use it in GitHub Desktop.
Save nonchip/018a86dddae423badc80 to your computer and use it in GitHub Desktop.
giessen.freifunk.net on raspbian (can be easily ported to other OSes)
#!/bin/sh
IFACE=wlan0
SHELLUSER=pi
IP=87.239.143.000 # fill in
MASK=255.255.255.128
BC=87.239.143.127
SSID="giessen.freifunk.net"
FREQ=2412
HNA=""
UPLINK=false
UPLINK_MASQ=true
UPLINK_IF=eth0
UPLINK_MR=""
UPLINK_IR="-m state --state RELATED,ESTABLISHED"
UPLINK_OR=""
wpa_action $IFACE stop
ifup $IFACE
killall wpa_supplicant
cat > /tmp/wpa_supplicant.conf <<END
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
ap_scan=2
network={
ssid="$SSID"
key_mgmt=NONE
frequency=$FREQ
mixed_cell=1
mode=1
}
END
wpa_supplicant -B -i $IFACE -c /tmp/wpa_supplicant.conf
ifconfig $IFACE $IP netmask $MASK broadcast $BC up
if $UPLINK
then echo 1 > /proc/sys/net/ipv4/ip_forward
if $UPLINK_MASQ
then iptables -t nat -A POSTROUTING -o $UPLINK_IF $UPLINK_MR -j MASQUERADE
fi
iptables -A FORWARD -i $UPLINK_IF -o $IFACE $UPLINK_IR -j ACCEPT
iptables -A FORWARD -i $IFACE -o $UPLINK_IF $UPLINK_OR -j ACCEPT
fi
cat > /tmp/olsrd.conf <<END
DebugLevel 1
IpVersion 4
LinkQualityFishEye 0
Hna4{
$HNA
}
Interface "$IFACE" {}
END
if $UPLINK
then cat > /tmp/screenrc_freifunk <<END
hardstatus alwayslastline "%c %Y-%m-%d %l"
screen -t OLSR olsrd -f /tmp/olsrd.conf -d 1
split -v
focus
screen -t WIFI watch -t "ip addr show dev $IFACE ; echo ; ip route show dev $IFACE ; echo ; iwconfig $IFACE"
split
focus
screen -t UPLINK watch -t "echo ; ip addr show dev $UPLINK_IF ; echo ; ip route show dev $UPLINK_IF ; echo ; arp -ne"
focus
split
focus
screen -t SHELL su $SHELLUSER
END
else
cat > /tmp/screenrc_freifunk <<END
hardstatus alwayslastline "%c %Y-%m-%d %l"
screen -t OLSR olsrd -f /tmp/olsrd.conf -d 1
split -v
focus
screen -t IF watch -t "ip addr show dev $IFACE ; echo ; iwconfig $IFACE"
split
focus
screen -t ROUTE watch -t "ip route show dev $IFACE ; echo ; arp -ne"
focus
split
focus
screen -t SHELL su $SHELLUSER
END
fi
screen -c /tmp/screenrc_freifunk
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment