Nils Schneider

February 03, 2013

ffmap Quickstart

Diese Anleitung ist veraltet und so nicht mehr anwendbar!

ffmap ist eine Software zur Visualisierung von Meshs. Beispiel: Freifunk Lübeck. Zur Zeit werden nur batman-adv Meshes unterstützt.

Sie besteht aus zwei Teilen:

Installation des Frontends

Installation nach /var/www/ffmap-d3:

cd /var/www
git clone git://github.com/tcatm/ffmap-d3.git
cd ffmap-d3
make

Jetzt fehlt nur noch eine nodes.json, die vom Backend generiert wird.

Installation des Backends

git clone git://github.com/tcatm/ffmap-backend.git

Generieren der nodes.json

Ins Verzeichnis des Backends wechseln:

cd ffmap-backend

Batman-adv Visualisierungsdaten generieren:

batctl vd json -n > batman.json

Dazu muss ggf. in den Servermodus gewechselt werden:

batctl vm server

nodes.json erzeugen:

./bat2nodes.py batman.json > /var/www/ffmap-d3/nodes.json

Namen und GPS Koordinaten eintragen

bat2nodes.py kann mehrere alias-Dateien einlesen:

./bat2nodes.py -a aliases.json -a aliases_gateways.json batman.json

Diese sind wie folgt aufgebaut:

{
    "00:11:22:33:44:55" {
        "name": "Knotenname",
        "vpn": true,
        "gps": "54.123 10.123"
    },
    "00:22:33:44:55:66" {
        "name": "zweiter Knoten"
    }
}

Dabei sind alle Felder optional. Es muss also nicht bei jedem Knoten vpn = false stehen.

Knoten als Gateway markieren

Knoten können auch als Gateway markiert werden:

./bat2nodes.py -a alias.json -g 00:11:22:33:44:55 batman.json

Dies kann in einem Shellscript automatisiert werden:

GWL=`batctl gwl -n`

SELF=`echo "$GWL" | head -n 1 | sed -r -e 's@^.*MainIF/MAC: [^/]+/([0-9a-f:]+).*$@\1@'`
GWS=`(echo "$GWL" | tail -n +2 | grep -v '^No' | sed 's/=>//' | awk '{ print $1 }') | while read a; do echo -n "-g $a "; done`

if [ `cat /sys/class/net/bat0/mesh/gw_mode` = server ]; then
    GWS="$GWS -g $SELF"
fi

$GWS kann danach wie folgt verwendet werden:

./bat2nodes.py -a alias.json $GWS batman.json