Batman-adv
Funktion
B.A.T.M.A.N. wird bei uns als Layer-2-Routing-Protokoll (ja, klingt kaputt – ist es auch) eingesetzt, um WLAN-Mesh zu ermöglichen. Für Linux gibt es dafür das B.A.T.M.A.N.-Advanced-Kernel-Modul.
Installation
B.A.T.M.A.N. Advanced wird mit dem Tool batctl gesteuert. Das muss entsprechend installiert werden. Hier kann ebenfalls die Version aus den Debian Paketquellen oder die selbstkompilierte verwendet werden.
sudo apt-get install batctl
Die Version, die beim Kernel von Debian Stretch mit dabei ist (v2016.4) ist Compat15, was die aktuell verwendete Compat-Version ist. (siehe hier). Für unser KeyXchangeV2 Setup wird zum aktuellen Zeitpunkt ausschließlich Compat Version 15 verwendet.
Wenn man möchte, kann man sich die aktuellste Version aus dem Open-Mesh Git kompilieren und installieren.
Hinweis: Wird der Kernel aktualisiert, müssen alle selbstkompilierten Kernelmodule erneut gegen die aktualisierte Kernelversion gebaut und danach installiert werden! Folglich muss ein selbstkompiliertes batman_adv nach jedem Kernelupdate neu gebaut und installiert werden. Für den Anfang empfiehlt es sich, mit dem mitgelieferten batman_adv zu arbeiten.
Das Kernel-Modul kann testweise mit folgendem Befehl geladen werden:
modprobe batman-adv
Im Kernel Log sollte das Laden protokolliert werden:
~# dmesg | grep batman_adv batman_adv: B.A.T.M.A.N. advanced 2018.0 (compatibility version 15) loaded
Die aktuell eingesetzte Version erfährt man mit
batctl -v
Das Kernelmodul von B.A.T.M.A.N. kann dann bei jedem Neustart des Systems geladen werden, indem in die Datei /etc/modules der Eintrag "batman-adv" hinzugefügt wird:
batman-adv
DKMS für batman-adv
Wenn man Batman-adv aus dem Quellen selbst kompiliert, wird bei einem Kernelupdate wieder eine alte Version installiert. Damit hier automatisch wieder die aktuelle Version gebaut wird, kann DKMS verwendet werden.
Unter /usr/src einen Ordner anlegen mit NAME-Version z.b. batman-adv-2018.2 (zum aktuellen Zeitpunkt die aktuelle Version). Hier hinein entpackt man nun die Batman-adv sourcen und legt eine dkms.conf ebenfalls in dem Ordner an:
PACKAGE_NAME=batman-adv PACKAGE_VERSION=2018.2 DEST_MODULE_LOCATION=/extra BUILT_MODULE_NAME=batman-adv BUILT_MODULE_LOCATION=net/batman-adv MAKE="'make'" CLEAN="'make' clean" AUTOINSTALL="yes"
danach kann man das ganze Testen mit
dkms add -m batman-adv -v 2018.2 dkms build -m batman-adv -v 2018.2 dkms install -m batman-adv -v 2018.2
Wenn dies erfolgreich durchläuft, sollte beim nächsten Kernelupdate automatisch die neue Version gebaut werden.
(Zum aktuellen Zeitpunkt noch ungetestet da noch kein Kernelupdate rein kam, wird dann hier wegeditiert sobald es soweit ist)
batctl
Wenn man eine sehr neue Batmanversion verwendet und nur ein altes batctl, scheitern u.U. manche batctl Kommandos. Daher ist es empfehlenswert batctl aus den Quellen selbst zu bauen:
Debian benötigt noch 2 Abhängigkeiten: libnl-genl-3-dev & libnl-3-dev
Danach das git clonen: https://github.com/open-mesh-mirror/batctl make && make install und evtl. Pfad anpassen