ffmap Quickstart
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:
- dem Javascript-Frontend ffmap-d3
- dem Python3-Backend ffmap-backend
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