Eigenen Rechner in das Freifunk-Netz
So einfach kann man seinen Laptop in das Freifunk-Netz als Knoten mit integrieren (Unter Ubuntu 12.04 getestet):
Installation
sudo apt-get install batctl
Kernelmodul laden:
sudo modprobe batman-adv
Version prüfen:
sudo batctl -v
Nicht alle Batmanversionen sind kompatibel - siehe: http://www.open-mesh.org/projects/batman-adv/wiki/Compatversion
Start-Script erstellen
Um sich mit batman.kiel.freifunk.net
auf der Schnittstelle wlan0 mit der bssid 02:ca:ff:ee:ba:be
zu verbinden erstelle folgendes script und nenne es
`/usr/local/sbin/freifunk-connect`
:
Dieses Script ist noch experimentell: Ein Fehler ist, dass es nur einmal funktioniert. Man kann sich dann zwar wieder trennen mit |
#!/bin/bash IFACE=wlan0 ESSID=batman.kiel.freifunk.net CHANNEL=11 FREQUENCY=2462 CELLID=02:ca:ff:ee:ba:be NODELINK=http://freifunk.in-kiel.de/ffmap/nodes.html if [ "$1" = "hh" ]; then ESSID=f8:d1:11:87:52:2e CHANNEL=1 FREQUENCY=2412 CELLID=f8:d1:11:87:52:2e NODELINK=http://10.130.10.1/ffhh/nodes.html fi if [ "$1" = "--help" ]; then echo "[start](default) or [stop]" echo to connect to hamburg call this script with option hh echo edit the options in the top section of this script to connect to another network echo your network devices: lspci|grep -i net exit fi NETWORKMANAGER="service network-manager" # some distributions have #NETWORKMANAGER="/etc/init.d/network-manager" if [ "$(whoami &2>/dev/null)" != "root" ] && [ "$(id -un &2>/dev/null)" != "root" ] ; then echo "You must be root to run this script!"; exit 1 fi if [ "$1" = "stop" ]; then echo "resuming normal networking..." echo "restart network-manager" $NETWORKMANAGER restart echo "turn network bridge off" brctl delif br-freifunk bat0 brctl delif br-freifunk eth0 brctl delbr br-freifunk ifconfig br-freifunk down ifconfig bat0 down -promisc ifconfig eth0 down -promisc echo "turn wlan iface off" batctl if del $IFACE sleep 10 echo "OK" echo "echo it can take a few minutes until network-manager gets a new route" echo exit elif [ "$1" = "restart" ]; then echo "not implemented. call this script first with stop and then with start" exit else # "start" echo "stopping network-manager" $NETWORKMANAGER stop echo "pls wait" sleep 10 echo "turn wlan iface off" ifconfig $IFACE down echo "set maximal transfer unit from standard 1500 to 1528" ifconfig $IFACE mtu 1528 echo "turn wlan encryption off" iwconfig $IFACE enc off echo "start ad-hoc mode" # mit HT40 bei 802.11n kann man potentiell auch mit 40MHz breiten kanälen senden, # falls da noch platz ist über oder unter jenem kanal und dann am besten noch HT40- statt HT40+ # das minus oder plus sagt, ob die zusätzlichen 20MHz kanalbreite über oder unter dem gewählten # kanal benutzt werden sollen #iw dev wlan0 ibss join $ESSID $FREQUENCY fixed-freq HT40- $CELLID # in case the iw doesent work, use: iwconfig $IFACE mode ad-hoc essid $ESSID ap $CELLID channel $CHANNEL echo "load module into kernel" modprobe batman-adv echo "adding iface to batman" batctl if add $IFACE echo "turn wlan iface on" ifconfig $IFACE up echo "turn batman iface on" ifconfig bat0 up echo "ESSID $ESSID on $IFACE should be ready" #sollte man eigentlich machen, geht aber nicht: #batctl gw client echo "starting bridge to share internet connection over eth0" ifconfig eth0 up promisc brctl addbr br-freifunk brctl addif br-freifunk bat0 brctl addif br-freifunk eth0 echo "internet starting, this may take some minutes due to latency..." echo "(use" echo "tail -f /var/log/syslog" echo "in another window for debugging)" echo echo dhclient br-freifunk echo "The error 'Rather than invoking init scripts through /etc/init.d...' can be ignored:" dhclient br-freifunk # without bridge: dhclient bat0 echo echo "internet connection IP:" ifconfig|grep Bcast echo you should have an IP like 10.x.x.x echo "after a minute your node should popup on the nodeGraph here $NODELINK" echo echo you can connect another device on eth0 if you like. there will be internet available via cable echo "if you use network-manager (ubuntu) you will have to set ipv6 method to \"ignore\"" echo see http://freifunk.in-kiel.de/wiki/Ubuntu echo echo "to resume normal networking call this script with option stop" echo fi
Wenn das script ausgeführt wird, dann ist dein Rechner Teil des Freifunk-Netzwerkes und mescht mit. Er kann so also auch als Brücke zwischen zwei Routern fungieren, die zu weit auseinander liegen. Außerdem kann man über den Netzwerkanschluss eth0 weitere clients anschließen, die dann über deinen Rechner Internet bekommen (beachte den Hinweis auf IPv6 beim NetworkManager unter Ubuntu)
Alternative im Hamburger Wiki hier
Siehe auch: Askubuntu
Todo
fastd installieren und eine Werbindung vom eigenen Rechner aus aufbauen:
- fastd installation: http://freifunk.in-kiel.de/wiki/Entwicklung/fastd#Debian