Eigenen Rechner in das Freifunk-Netz: Unterschied zwischen den Versionen

Aus Freifunk Kiel
Zur Navigation springen Zur Suche springen
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
 
Außerdem konfiguriert dieses Script den eth0-Ausgang so um (wenn vorhanden), dass man '''über den Netzwerk-Ausgang an deinem Rechner Internet an weitere Geräte freigeben''' kann.
 
Außerdem konfiguriert dieses Script den eth0-Ausgang so um (wenn vorhanden), dass man '''über den Netzwerk-Ausgang an deinem Rechner Internet an weitere Geräte freigeben''' kann.
  
===Installation===
+
===Anleitung im Git Repository Readme===
Es werden die Pakete ''batctl'' für batman-adv und ''bridge-utils'' für ''brctl''
 
sudo apt-get install batctl bridge-utils
 
  
===neuere Batman version aus Repo===
+
Diese Seite ist verlegt ins GitHub: https://github.com/rubo77/batman-connect
erstelle die datei `/etc/apt/sources.list.d/batman-adv-universe-factory.net.list` mit dem repository https://projects.universe-factory.net/projects/fastd/wiki für die neueste version:
 
 
sudo bash -c 'echo "deb http://repo.universe-factory.net/debian/ sid main">/etc/apt/sources.list.d/batman-adv-universe-factory.net.list'
 
gpg --recv-keys 0x16EF3F64CB201D9C
 
gpg --export 0x16EF3F64CB201D9C|sudo apt-key add -
 
# TODO: Hier sollte man aus Sicherheitsaspekten noch den Fingerprint auf Korrektheit überprüfen
 
sudo apt-get update
 
sudo apt-get install batman-adv-dkms
 
 
 
Wenn du den Fehler erhäst
 
 
 
Error! Module version 2013.4.0 for batman-adv.ko
 
is not newer than what is already found in kernel 3.14.1-031401-generic (2014.1.0).
 
You may override by specifying --force.
 
 
 
 
 
Dann muss dkms mit --force aufgerufen werden (bis dies gefixt ist), wenn force dies nicht geht, dann muss das Modul von Hand kopiert werden ([TAB] für jeweils den aktuellen Kernel):
 
 
 
sudo cp /var/lib/dkms/batman-adv/kernel-[TAB]/module/batman-adv.ko /lib/modules/3.[TAB]-generic/kernel/net/batman-adv/batman-adv.ko
 
 
 
{{Achtung|Achtung: Dies muss nach jedem Kernel-update neu ausgeführt werden, da die Datei ''`/lib/modules/3.[TAB]-generic/kernel/net/batman-adv/batman-adv.ko`'' jedes mal neu überschrieben wird.}}
 
 
 
 
 
===Kernelmodul laden:===
 
sudo modprobe batman-adv
 
 
 
===Version prüfen:===
 
sudo batctl -v
 
 
 
Nicht alle Batman Versionen sind kompatibel - siehe: http://www.open-mesh.org/projects/batman-adv/wiki/Compatversion
 
Du brauchst '''genau'' die Version 2013.4.0:
 
 
 
batctl debian-2013.4.0-2 [batman-adv: 2013.4.0]
 
 
 
 
 
 
===Start-Script erstellen===
 
Um sich mit <code>batman.kiel.freifunk.net</code> auf der Schnittstelle wlan0 mit der [[bssid]] <code>02:ca:ff:ee:ba:be</code> zu verbinden erstelle folgendes script und nenne es <br>
 
'''<code>`/usr/local/sbin/freifunk-connect`</code>''':
 
 
 
[http://pastebin.com/a1J1Wx5U download script]
 
 
 
{{Achtung|Breite=100% |Dieses Script ist noch experimentell: Ein Fehler ist, dass es nur einmal funktioniert. Man kann sich dann zwar wieder trennen mit <br><code>`freifunk-connect stop`</code> <br>
 
aber meist funktioniert ein erneutes Verbinden erst nach einem Rechner neustart}}
 
 
 
'''<pre style="color:#222233">
 
#!/bin/bash
 
 
 
# this script connects as a node in a B.A.T.M.A.N. network.
 
# call this script with --help for help
 
 
 
IFACE=wlan0
 
ESSID=02:ca:ff:ee:ba:be
 
CHANNEL=11
 
CELLID=02:ca:ff:ee:ba:be
 
NODELINK=http://freifunk.in-kiel.de/ffmap/nodes.html
 
# initiating nameserver in your freifunk:
 
NAMESERVER=fda1:384a:74de:4242::1
 
 
 
 
 
if [ "$1" = "hh" ]; then
 
  ESSID=f8:d1:11:87:52:2e
 
  CHANNEL=1
 
  CELLID=f8:d1:11:87:52:2e
 
  NODELINK=http://10.130.10.1/ffhh/nodes.html
 
fi
 
 
 
channel_map=(XYZZY 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 2484)
 
FREQUENCY=${channel_map[$CHANNEL]}
 
 
 
if [ "$1" = "--help" ]; then
 
  echo "[start](default) [stop] or [hh] for connection with the hamburg network"
 
  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"
 
#NETWORKMANAGER="service wicd"
 
# 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 $NETWORKMANAGER"
 
  $NETWORKMANAGER restart
 
 
 
  echo "turn network bridge off"
 
  ifconfig br-freifunk down
 
  brctl delif br-freifunk bat0
 
  brctl delif br-freifunk eth0
 
  brctl delbr br-freifunk
 
  ifconfig bat0 down -promisc
 
  ifconfig eth0 down -promisc
 
 
  echo "turn wlan iface off"
 
  batctl if del $IFACE
 
  echo "it can take a few minutes until $NETWORKMANAGER 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 $NETWORKMANAGER"
 
  echo "pls wait about 10 seconds"
 
  while true;do echo -n .;sleep 1;done &
 
$NETWORKMANAGER stop
 
    sleep 10 # or do something else here
 
  kill $!; trap 'kill $!' SIGTERM
 
  echo
 
  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 "optional starting bridge to share internet connection over eth0 (if eth0 exists)"
 
  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 "The message 'Rather than invoking init scripts through /etc/init.d...' can be ignored in the following"
 
  echo "-------------------------------------"
 
  echo "tail -f -n 1 /var/log/syslog|grep freifunk"
 
  tail -f -n 1 /var/log/syslog|grep freifunk &
 
  echo dhclient br-freifunk
 
  dhclient br-freifunk
 
  # without bridge: dhclient bat0
 
  ifconfig|grep '10\.'
 
  killall tail
 
  echo "------------------------------------- end of syslog"
 
if [ "$1" != "hh" ]; then
 
 
 
  echo "Optional: You can add a nameserver $NAMESERVER to /etc/resolv.conf with"
 
  echo "nameserver $NAMESERVER">>/etc/resolv.conf
 
fi
 
 
 
  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
 
 
 
</pre>'''
 
  
 
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 [[Ubuntu|NetworkManager unter Ubuntu]])
 
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 [[Ubuntu|NetworkManager unter Ubuntu]])
Zeile 199: Zeile 13:
 
Alternative im Hamburger Wiki [http://wiki.freifunk.net/Freifunk_Hamburg/%C3%9Cber#B.A.T.M.A.N. hier]
 
Alternative im Hamburger Wiki [http://wiki.freifunk.net/Freifunk_Hamburg/%C3%9Cber#B.A.T.M.A.N. hier]
  
Siehe auch: [http://askubuntu.com/questions/205337/how-do-i-install-batman-adv-under-ubuntu-12-04-to-start-a-mesh-network Askubuntu]
+
== Siehe auch ==
 +
 
 +
* [http://askubuntu.com/questions/205337/how-do-i-install-batman-adv-under-ubuntu-12-04-to-start-a-mesh-network Askubuntu:how-do-i-install-batman-adv-under-ubuntu]
 +
* http://askubuntu.com/a/426305/34298
  
 
== Todo ==
 
== Todo ==

Aktuelle Version vom 23. September 2014, 11:58 Uhr

So einfach kann man seinen Laptop in das Freifunk-Netz als Knoten mit integrieren. (Unter Ubuntu 12.04 bis 14.04 getestet):

Außerdem konfiguriert dieses Script den eth0-Ausgang so um (wenn vorhanden), dass man über den Netzwerk-Ausgang an deinem Rechner Internet an weitere Geräte freigeben kann.

Anleitung im Git Repository Readme

Diese Seite ist verlegt ins GitHub: https://github.com/rubo77/batman-connect

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

Todo

fastd installieren und eine Verbindung vom eigenen Rechner aus aufbauen: