Freifunk-Gateway aufsetzen/Batman-adv: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
Zeile 62: Zeile 62:


Wenn dies erfolgreich durchläuft, sollte beim nächsten Kernelupdate automatisch die neue Version gebaut werden.
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)

Version vom 28. August 2018, 23:12 Uhr

Batman-adv

Funktion

B.A.T.M.A.M. wird bei uns als Layer2 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

Die Version, die beim Kernel von Debian Stretch mit dabei ist (v2016.4) ist Compat15, was die aktuell verwendete Compat-Version ist. (siehe hier)

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


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


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.

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 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 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)