Firmware

Aus Freifunk München
Wechseln zu: Navigation, Suche

Unter Firmware versteht man Software, die in elektronischen Geräten eingebettet ist. Sie ist zumeist in einem Flash-Speicher, einem EPROM, EEPROM oder ROM gespeichert und durch den Anwender nicht oder nur mit speziellen Mitteln bzw. Funktionen austauschbar. In diesem Artikel ist mit Firmware ausschließlich die Firmware von Freifunk-Routern gemeint.

Die Firmware von Freifunk München kann bei https://firmware.ffmuc.net/ herunter geladen werden.

Derzeit (Stand Juni 2018) gibt es keine offizielle Firmware für einige Geräte bzw. neuere Hardware-Versionen, u.a. für den populären Router TP-Link 1043 v5. Ein Community-Mitglied hat Firmware in Eigenregie erzeugt. Sie kann bei https://heimlich-online.net/ffmuc/gluon-v2017.1.5/factory/ herunter geladen werden. Die Installation erfolgt auf eigenes Risiko. Ein weiteres Community-Mitglied hat ebenfalls Images erzeugt, die bei https://kuenzler.io/dl/ffmuc/2017.1.8/ herunter geladen werden können. Zum Stand 1.8.2018 weist das Mitglied darauf hin, dass es keine umfangreichen Tests gegeben hat und von ihm nur nur sysupgrade und config über ssh & uci ausprobiert wurde. Auch hier erfolgt die Installation auf eigene Gefahr.

Router flashen[Bearbeiten]

Vor dem Routerkauf[Bearbeiten]

Bevor man einen Router kauft sollte man prüfen, ob es für diesen Router auch eine Firmware gibt. Dies wird beim flashen eines Routers beschrieben, der von dort wird auf die Firmware-Auswahlseite für den Download vom Freifunk-Server verwiesen. Sofern man keine stabile ("stable") Version auf der Auswahlseite findet, kann nach einer experimentellen Version bei https://firmware.ffmuc.net/ gesucht werden. Eine Aussage über die Zuverlässigkeit einer experimentellen Version kann hier nicht getroffen werden. Man kann in der Nodelist prüfen, wie häufig eine Firmware-Version eingesetzt wird oder im Chat nach Meinungen fragen.

flashen[Bearbeiten]

Freifunk benutzt eine eigene Firmware. In der Einleitung hieß es, dass die Firmware nur "mit speziellen Mitteln bzw. Funktionen austauschbar" ist. Die Router-Firmware hat eine Aktualisierungsfunktion, und zwar sowohl bei einem neuen werkseitig (und nicht mit Freifunk-Firmware) konfigurierten Gerät als auch bei einem mit Freifunk-Firmware vorkonfigurierten Gerät.

Das flashen eines Routers wird auf der Freifunk-Website beschrieben.

Bei Routern, die nicht mehr über die Oberfläche mit einer Firmware versorgt werden können, kann man auch den Router mit TFTP flashen.

Firmware-Entwicklung[Bearbeiten]

Einführung[Bearbeiten]

Dieser Abschnitt Firmware-Entwicklung richtet sich ausschließlich an Software-Entwickler und Entwicklerinnen bzw. Firmware-Spezialisten und Spezialistinnen, die vorhandene Firmware-Images modifizieren oder ergänzen wollen oder für neue Geräte neue Images bauen wollen.

Die Konfiguration einer von Freifunk-München angebotenen fertigen und auf einem Router installierten Firmwware wird nicht hier sondern im Artikel Routerkonfiguration via SSH für Interessierte mit SSH-Kenntnissen bzw. in Routerkonfiguration via UI für Einsteiger und Nur-Anwender beschrieben.

Die Firmware basiert auf OpenWrt (https://www.openwrt.org/) und Gluon (https://gluon.readthedocs.io/).

Die Abnahmekriterien für die Freifunk-Firmware sollten beim Selbstbau bzw. Umbau einer Firmware beachtet werden.

Grundsätzlich sollte noch ein Techi beschreiben, welche Know-How-Kenntnisse für welchen Abschnitt benötigt werden.

Firmware selbst bauen[Bearbeiten]

Vorausgesetztes Know-how: Rudimentäre Linux-Kenntnisse (Anfängerniveau).

Die Quellcodes finden sich auf Github. Im Artikel Firmware selberbauen werden die Arbeitsschritte und Systemanforderungen sowie Erfahrungswerte beschrieben, um eine eigene Firmware zu erzeugen. Die Beschreibung kann mit einem neu aufgesetzten Linux nachvollzogen werden.

Empfohlene Entwicklungsumgebung[Bearbeiten]

Eine besondere Entwicklungsumgebung ist nicht erforderlich und wird auch nicht empfohlen. Ein Texteditor reicht.

Neues Image für neue Hardware[Bearbeiten]

Wenn für ein von Freifunk-München unterstütztes Routermodell ein neues Hardware-Modell erscheint bzw. ein neuer Router in die Liste unterstützter Modelle aufgenommen werden soll, muss für dieses Modell ein eigenes Image erzeugt werden, das die Hardware-spezifischen Eigenheiten unterstützt. Beschrieben wird dies in der Gluon-Dokumentation bei https://gluon.readthedocs.io/en/v2016.1.5/dev/hardware.html.

Wann mal wieder so etwas gemacht wird, könnten hier beispielhaft die Arbeiten von einem Entwickler Schritt für Schritt dokumentiert werden! Ideal wäre dabei sowohl ein einfacher Fall (ich glaube, beim 841-er war dem Umstieg von V10 auf V11 sehr einfach), ein mittelschwerer und auch ein schwerer Fall. Das sollte damit beginnen, dass die Analyseschritte beschrieben werden, mit denen in Erfahrung gebracht wird, was zu tun ist, dann wie es gemacht wird (eigentliche Arbeit) und soweit angebracht auch warum manches nicht getan wird.

Komponenten der Firmware[Bearbeiten]

Dieser Abschnitt ist noch nicht fertig und es bedarf technischen Inputs.

Von einem Techi durchzusehen und zu korrigieren! Ohne Experten ist für mich (karls, 25.7.2016) jeder Dokumentationsversuch aussichtslos.

Bei den UCI-Parametern sollte ein Experte sagen,

  • was der einzelne Parameter bedeutet (bzw. ein Querverweis auf die batman-Doku)
  • was man ändern darf und was nicht,
  • was die Änderung bewirkt,
  • wie die Voreinstellungen sind,
  • welche Einstellungen in bei der Web-Konfiguration hier was bewirken,
  • wo im Quellcode (bei Hinweise zum Quellcode) was gesetzt wird,
  • wo auf dem Router (bei Hinweise zum Router) die korrespondierenden Daten zu finden sind.


Einleitung[Bearbeiten]

In diesem Abschnitt werden die wesentlichen Komponenten der Firmware von Freifunk-München vorgestellt.

Die Firmware selbst basiert auf OpenWrt.

Die Routerkonfiguration via SSH erfolgt über uci, das Unified Configuration Interface von OpenWrt. Ein uci show zeigt mehrere Dutzend einstellbare Parameter für 20 Software-Komponenten. Auf dem Router finden sich die meisten dieser Parameter in den Dateien im Verzeichnis /etc/config/.

alfred[Bearbeiten]

Bedeutung[Bearbeiten]

Der Abschnitt über Alfred wird nicht weiter gepflegt, da demnächst Alfred durch respondd ersetzt werden soll. (karls, Stand 25.7.2016)

A.L.F.R.E.D (Almighty Lightweight Fact Remote Exchange Daemon) ist dafür zuständig, dass der Router Daten wie Geo-Location o.ä. für die Knotenkarte zur Verfügung stellt.

Die Projektseite findet sich bei https://www.open-mesh.org/projects/alfred/wiki/Alfred. In einer Unterseite findet sich auch die Architektur und die technischen Details des Protokolls.

Zumindest ein Teil der Daten, die übermittelt werden, werden per uci bei gluon-node-info gesetzt.

Die via Alfred gesammelten Daten, die Basis für die Knotenkarte sind, finden sich bei https://ffmuc.net/data/.

uci-Parameter[Bearbeiten]

Hier sollte ein Experte sagen was Sache ist

alfred.alfred=alfred
alfred.alfred.batmanif='bat0'
alfred.alfred.start_vis='1'
alfred.alfred.mode='slave'

Gibt an, welche Rolle der lokal laufenden Alfred-Server gemäß Beschreibung einnehmen soll. Alternative wäre z.B. 'master', was aber nicht mit der Architektur im FF-MUC Bereich zusammenpasst. Eintrag so lassen.

alfred.alfred.run_facters='0'
alfred.alfred.interface='br-client'

Hinweise zum Quellcode[Bearbeiten]

Ein Experte sollte hier ergänzen, was wo im Quellcode FFMuc-spezifisch modifiziert wird.

Hinweise zum Router[Bearbeiten]

Die uci-Parameter finden sich in /etc/config/alfred

Woher Alfred weiß, dass der z.B. Daten aus gluon-info-node übermitteln soll, kann ich nicht mehr erraten und ist von einem Experten zu dokumentieren (karls, 25.7.2016)

autoupdater[Bearbeiten]

Bedeutung[Bearbeiten]

Der Router kann automatisch mit Updates versorgt werden. Dies kann sowohl bei der Konfiguration über die Web-Oberfläche als auch Konfiguration via SSH eingestellt werden. Automatische Updates sind eingeschaltet, wenn autoupdater.settings.enabled=1.

Für den laufenden Betrieb kommen für Manipulationen nur die Parameter enabled (automatische Updates ein- und ausschalten) und branch (soll das experimental oder das stable Image genommen werden?) zur Änderung in Frage, die auch in der Web-Oberfläche eingestellt werden können.

Der Autoupdate ist ein Pull-Verfahren. Der Router überprüft seine Firmware-Version und besorgt sich sein Update selbst. Es macht folglich nichts, wenn ein Router offline ist, wenn eine neue Firmware-Version zur Verfügung steht. Nur, wenn die Firmware so veraltet ist, dass er keine Mesh-Verbindung mehr aufnehmen kann oder wenn die Update-Urls (UCI-Parameter mirror) veraltet sind, schlägt der Firmware-Update fehl. Der Router prüft regelmäßig für den eingestellten Branch (stable oder experimental) bei der in autoupdater.{branch}.mirror eingestellten Adresse, ob es eine neuere Firmware gibt. Falls ja, dann lädt der Router diese Firmware herunter, installiert sie (sofern genügend gültige Signaturen vorhanden sind) und startet neu.

uci-Parameter[Bearbeiten]

http://gluon.readthedocs.io/en/v2016.1.5/user/site.html sieht nach einer Doku aus dem Umfeld aus. Wo gibt es eine doku dazu? Konfiguriert werden können die Bezugsquellen (Server) für die Update-Images sowohl für die Branches stable als auch experimentell (beim beispielhaft verwendeten Router lief ein experimentelles Image: autoupdater.settings.branch='experimental'). Da bereits ein Image vorhanden ist, kommt auch nur sysupgrade in Frage, nicht factory. Ebenfalls einstellbar ist die Anzahl der notwendigen Signaturen sowie die erlaubten Signaturen.

autoupdater.stable=branch
autoupdater.stable.mirror='http://firmware.ffmuc.net/stable/sysupgrade/' 'http://[fdef:ffc0:4fff::130]/stable/sysupgrade/'
autoupdater.stable.good_signatures='3'
autoupdater.stable.name='stable'
autoupdater.stable.pubkey='2a74ed02120a7d48bb2dc9be988b3480ed99844054b3d7f3e5d3df27d19d814b' '7e3bd782e40189b903b3fb1e488d64b23aa04bc353b1a521b4cd50e70b299113' '56c4201f6ce2994678b0142e19099dd28d6ed17775d35ca9a7f12d9235890ffc' '2f92051ac4452d6026061e6c3719ffbd4f34ba7fbc474439fc6f857b76159bae'
autoupdater.experimental=branch
autoupdater.experimental.mirror='http://firmware.ffmuc.net/experimental/sysupgrade/' 'http://[fdef:ffc0:4fff::130]/experimental/sysupgrade/'
autoupdater.experimental.good_signatures='2'
autoupdater.experimental.name='experimental'
autoupdater.experimental.pubkey='2a74ed02120a7d48bb2dc9be988b3480ed99844054b3d7f3e5d3df27d19d814b' '7e3bd782e40189b903b3fb1e488d64b23aa04bc353b1a521b4cd50e70b299113' '56c4201f6ce2994678b0142e19099dd28d6ed17775d35ca9a7f12d9235890ffc' '2f92051ac4452d6026061e6c3719ffbd4f34ba7fbc474439fc6f857b76159bae'
autoupdater.settings=autoupdater
autoupdater.settings.enabled='1'
autoupdater.settings.branch='experimental'
autoupdater.settings.version_file='/lib/gluon/release'

Hinweise zum Quellcode[Bearbeiten]

Experte gefragt

Hinweise zum Router[Bearbeiten]

Die uci-Parameter finden sich in /etc/config/autoupdater.

batman-adv[Bearbeiten]

Bedeutung[Bearbeiten]

B.A.T.M.A.N. (better approach to mobile ad-hoc networking) ist ein Routingprotokoll und die Funktionalität für das Meshing. Batman ermittelt, welche Knoten in dem Netz aktuell über welchen Weg erreichbar sind.

Eine Einführung findet sich in der Deutschen Wikipedia im Artikel B.A.T.M.A.N., die Projektseite ist https://www.open-mesh.org/.

UCI-Parameter[Bearbeiten]

Experte gefragt

batman-adv.bat0=mesh
batman-adv.bat0.gw_mode='client'
batman-adv.bat0.orig_interval='5000'
batman-adv.bat0.hop_penalty='15'
batman-adv.bat0.gw_sel_class='3'
batman-adv.bat0.multicast_mode='0'

Hinweise zum Quellcode[Bearbeiten]

Ein Experte sollte hier ergänzen, was wo im Quellcode FFMuc-spezifisch modifiziert wird.

Hinweise zum Router[Bearbeiten]

Die uci-Parameter finden sich in /etc/config/batman.

currentsite[Bearbeiten]

Bedeutung[Bearbeiten]

Bedeutung und Verwendung muss ein Experte erklären. Mit google komme ich dazu nicht weiter. (karls, 25.7.2016)

uci-Parameter[Bearbeiten]

Was will mir das sagen? Wo wird das verwendet? Heißt das nur, dass der Router ffmuc gehört, oder ist das das Segment München?

currentsite.current=site
currentsite.current.name='ffmuc'


Hinweise zum Quellcode[Bearbeiten]

Von einem Experten zu ergänzen. Wo wird das gesetzt, wo wird es wofür verwendet?

Hinweise zum Router[Bearbeiten]

Die uci-Parameter finden sich in /etc/config/currentsite.

dhcp[Bearbeiten]

Bedeutung[Bearbeiten]

Dient als Client zur Besorgung der Eigenschaften des Netzwerk-Interfaces, also z.B. IP-Adresse, Netzmaske, Gateway, aber auch ggf. ntp-Server, tftp-Server (für diskless boot), usw. In einer typischen Heim-Installation werden diese Angaben von der Fritzbox mit dem Internet-Anschluss geholt.

uci-Parameter[Bearbeiten]

Die technische Referenz findet sich bei https://wiki.openwrt.org/doc/uci/dhcp.

dhcp.@dnsmasq[0]=dnsmasq
dhcp.@dnsmasq[0].domainneeded='1'
dhcp.@dnsmasq[0].filterwin2k='0'
dhcp.@dnsmasq[0].rebind_localhost='1'
dhcp.@dnsmasq[0].local='/lan/'
dhcp.@dnsmasq[0].domain='lan'
dhcp.@dnsmasq[0].expandhosts='1'
dhcp.@dnsmasq[0].nonegcache='0'
dhcp.@dnsmasq[0].authoritative='1'
dhcp.@dnsmasq[0].readethers='1'
dhcp.@dnsmasq[0].leasefile='/tmp/dhcp.leases'
dhcp.@dnsmasq[0].resolvfile='/tmp/resolv.conf.auto'
dhcp.@dnsmasq[0].localservice='1'
dhcp.@dnsmasq[0].boguspriv='0'
dhcp.@dnsmasq[0].localise_queries='0'
dhcp.@dnsmasq[0].rebind_protection='0'
dhcp.lan=dhcp
dhcp.lan.interface='lan'
dhcp.lan.start='100'
dhcp.lan.limit='150'
dhcp.lan.leasetime='12h'
dhcp.wan=dhcp
dhcp.wan.interface='wan'
dhcp.wan.ignore='1'
dhcp.client=dhcp
dhcp.client.ignore='1'
dhcp.client.interface='client'

Hinweise zum Quellcode[Bearbeiten]

Experte gefagt

Hinweise zum Router[Bearbeiten]

Die uci-Parameter finden sich in /etc/config/dhcp

dropbear[Bearbeiten]

Bedeutung[Bearbeiten]

Wikipedia:de:Dropbear Dropbear ist eine SSH-Implementierung für die Server-Seite und die Client-Seite inklusive SSH File Transfer Protocol. Wenn man sich per SSH auf einem Knoten einloggen möchte, muss dort ein SSH-Server laufen. Bei Freifunk-Routern ist dias Dropbear. Auf dem lokalen Rechner, von dem man sich einloggen will, muss ein SSH-Client installiert sein.

uci-Parameter[Bearbeiten]

Die technische Referenz findet sich bei https://wiki.openwrt.org/doc/uci/dropbear.

dropbear.@dropbear[0]=dropbear
dropbear.@dropbear[0].PasswordAuth='on'
dropbear.@dropbear[0].RootPasswordAuth='on'
dropbear.@dropbear[0].Port='22'

Hinweise zum Quellcode[Bearbeiten]

Experte gefagt

Hinweise zum Router[Bearbeiten]

Die uci-Parameter finden sich in /etc/config/dropbear

fastd[Bearbeiten]

Bedeutung[Bearbeiten]

Fast and Secure Tunnelling Daemon (fastd) ist für das VPN-Mesching zuständig.

Für den regulären Betrieb kommt nur das Ein- und Ausschalten des VPN Mesh in Betracht (vgl. fastd.mesh_vpn.enabled, via SSH Mesh via VPN konfigurieren).

Die Projektseite ist https://projects.universe-factory.net/projects/fastd/wiki.

Ein Experte könnte hier ergänzen, welche VPN-Software verwendet wird und (bei den Hinweisen zum Quellcode) wie der Weg eines vom Client entgegen genommenen Bytes durch die Router-SW bis zum Versand in den VPN-Tunnel bzw. zurück läuft.

UCI-Parameter[Bearbeiten]

Die Parameter (genauer: das configuratioin file format) wird bei http://fastd.readthedocs.io/en/v18/manual/config.html dokumentiert.

fastd.sample_config=fastd
fastd.sample_config.enabled='0'
fastd.sample_config.syslog_level='info'
fastd.sample_config.method='salsa2012+umac'
fastd.sample_config.mode='tap'
fastd.sample_config.interface='tap0'
fastd.sample_config.mtu='1426'
fastd.sample_config.forward='0'
fastd.sample_config.secure_handshakes='1'
fastd.sample_peer=peer
fastd.sample_peer.enabled='0'
fastd.sample_peer.net='sample_config'
fastd.sample_peer.key='0000000000000000000000000000000000000000000000000000000000000000'
fastd.sample_group=peer_group
fastd.sample_group.enabled='0'
fastd.sample_group.net='sample_config'
fastd.mesh_vpn=fastd
fastd.mesh_vpn.method='salsa2012+umac'
fastd.mesh_vpn.mtu='1426'
fastd.mesh_vpn.group='gluon-fastd'
fastd.mesh_vpn.status_socket='/var/run/fastd.mesh_vpn.socket'
fastd.mesh_vpn.packet_mark='1'
fastd.mesh_vpn.syslog_level='verbose'
fastd.mesh_vpn.mode='tap'
fastd.mesh_vpn.secure_handshakes='1'
fastd.mesh_vpn.interface='mesh-vpn'
fastd.mesh_vpn.enabled='1'
fastd.mesh_vpn.secret='98e5174ed7aa873fdab5bdec7c11143969e6ebcd75a21c482e55bb6a4b6cc757'
fastd.mesh_vpn_backbone=peer_group
fastd.mesh_vpn_backbone.enabled='1'
fastd.mesh_vpn_backbone.peer_limit='1'
fastd.mesh_vpn_backbone.net='mesh_vpn'
fastd.mesh_vpn_backbone_peer_gw09=peer
fastd.mesh_vpn_backbone_peer_gw09.enabled='1'
fastd.mesh_vpn_backbone_peer_gw09.key='b86f436c9bb13b308dc92c3889fd468c46679d9df0bf4892244372ab415694d0'
fastd.mesh_vpn_backbone_peer_gw09.net='mesh_vpn'
fastd.mesh_vpn_backbone_peer_gw09.remote='ipv4 "gw09.ffmuc.net" port 10000' 'ipv4 "gw09.freifunk-muenchen.de" port 10000'
fastd.mesh_vpn_backbone_peer_gw09.group='mesh_vpn_backbone'
fastd.mesh_vpn_backbone_peer_gw06=peer
fastd.mesh_vpn_backbone_peer_gw06.enabled='1'
fastd.mesh_vpn_backbone_peer_gw06.key='d6834aa47a14358d804139630812276b3297e767d159c9cfd13fa6fb638000e0'
fastd.mesh_vpn_backbone_peer_gw06.net='mesh_vpn'
fastd.mesh_vpn_backbone_peer_gw06.remote='ipv4 "gw06.ffmuc.net" port 10000' 'ipv4 "gw06.freifunk-muenchen.de" port 10000'
fastd.mesh_vpn_backbone_peer_gw06.group='mesh_vpn_backbone'
fastd.mesh_vpn_backbone_peer_gw03=peer
fastd.mesh_vpn_backbone_peer_gw03.enabled='1'
fastd.mesh_vpn_backbone_peer_gw03.key='4b856fca91077d08ea79f13e139c33b1d1a62e1566e0d447bbfd9cf640c74c41'
fastd.mesh_vpn_backbone_peer_gw03.net='mesh_vpn'
fastd.mesh_vpn_backbone_peer_gw03.remote='ipv4 "gw03.ffmuc.net" port 10000' 'ipv4 "gw03.freifunk-muenchen.de" port 10000'
fastd.mesh_vpn_backbone_peer_gw03.group='mesh_vpn_backbone'
fastd.mesh_vpn_backbone_peer_gw05=peer
fastd.mesh_vpn_backbone_peer_gw05.enabled='1'
fastd.mesh_vpn_backbone_peer_gw05.key='2242fe7fff1def15233a364487545e57c3c69e1b624d97bd5d72359b9851cb6e'
fastd.mesh_vpn_backbone_peer_gw05.net='mesh_vpn'
fastd.mesh_vpn_backbone_peer_gw05.remote='ipv4 "gw05.ffmuc.net" port 10000' 'ipv4 "gw05.freifunk-muenchen.de" port 10000'
fastd.mesh_vpn_backbone_peer_gw05.group='mesh_vpn_backbone'
fastd.mesh_vpn_backbone_peer_gw08=peer
fastd.mesh_vpn_backbone_peer_gw08.enabled='1'
fastd.mesh_vpn_backbone_peer_gw08.key='e476fb3a72365b550a23b587c0962eed362ed0c237175552b3261d22daaa2055'
fastd.mesh_vpn_backbone_peer_gw08.net='mesh_vpn'
fastd.mesh_vpn_backbone_peer_gw08.remote='ipv4 "gw08.ffmuc.net" port 10000' 'ipv4 "gw08.freifunk-muenchen.de" port 10000'
fastd.mesh_vpn_backbone_peer_gw08.group='mesh_vpn_backbone'
fastd.mesh_vpn_backbone_peer_gw10=peer
fastd.mesh_vpn_backbone_peer_gw10.enabled='1'
fastd.mesh_vpn_backbone_peer_gw10.key='c04358d4818ec108fa4715e4517300cb2d0fa848dfa872770c4b8487d525e8bf'
fastd.mesh_vpn_backbone_peer_gw10.net='mesh_vpn'
fastd.mesh_vpn_backbone_peer_gw10.remote='ipv4 "gw10.ffmuc.net" port 10000' 'ipv4 "gw10.freifunk-muenchen.de" port 10000'
fastd.mesh_vpn_backbone_peer_gw10.group='mesh_vpn_backbone'
fastd.mesh_vpn_backbone_peer_gw07=peer
fastd.mesh_vpn_backbone_peer_gw07.enabled='1'
fastd.mesh_vpn_backbone_peer_gw07.key='77b5f5189c360b245e1c934941468cc9cf57f0646465be5765593a95e54449d6'
fastd.mesh_vpn_backbone_peer_gw07.net='mesh_vpn'
fastd.mesh_vpn_backbone_peer_gw07.remote='ipv4 "gw07.ffmuc.net" port 10000' 'ipv4 "gw07.freifunk-muenchen.de" port 10000'
fastd.mesh_vpn_backbone_peer_gw07.group='mesh_vpn_backbone'
fastd.mesh_vpn_backbone_peer_gw04=peer
fastd.mesh_vpn_backbone_peer_gw04.enabled='1'
fastd.mesh_vpn_backbone_peer_gw04.key='adee58f70829e6a03e568ca8273070b38c1b4cfe0beb69c53eea429646908126'
fastd.mesh_vpn_backbone_peer_gw04.net='mesh_vpn'
fastd.mesh_vpn_backbone_peer_gw04.remote='ipv4 "gw04.ffmuc.net" port 10000' 'ipv4 "gw04.freifunk-muenchen.de" port 10000'
fastd.mesh_vpn_backbone_peer_gw04.group='mesh_vpn_backbone'

Hinweise zum Quellcode[Bearbeiten]

Experte gefragt!

Hinweise zum Router[Bearbeiten]

Die uci-Parameter finden sich in /etc/config/fastd

firewall[Bearbeiten]

Bedeutung[Bearbeiten]

Firewall basiert auf iptables (Linux-Standard) und erlaubt die Konfiguration der Firewall der Freifunk-Router.

Im praktischen Betrieb gibt es keinen Grund, die gewählten Einstellungen zu ändern. Daher ist auch bei der Routerkonfiguration via UI keine Einstellmöglichkeit vorgesehen.

Eine Dokumentation findet sich bei https://wiki.openwrt.org/doc/uci/firewall.

UCI-Parameter[Bearbeiten]

Die umfangreiche Liste kann per uci show auf jedem Router angezeigt werden. Auf eine Auflistung wird hier verzichtet, da im praktischen Betrieb keine Änderungen vorgenommen werden sollen.

Hier kann ein Experte ergänzen, wie beim Testbetrieb im Rahmen der Entwicklung an welchen Stellen sinnvollerweise gedreht werden kann.

Hinweise zum Quellcode[Bearbeiten]

Experte gesucht!

Hinweise zum Router[Bearbeiten]

Die UCI-Parameter finden sich in /etc/config/firewall.

fstab[Bearbeiten]

gluon-core[Bearbeiten]

gluon-node-info[Bearbeiten]

Bedeutung[Bearbeiten]

Dies sind die Geo-Koordinaten und Kontaktinformationen, die auf dem Knoten gespeichert sind und die in der Knotenkarte angezeigt werden. Den Datentransport übernimmt alfred.

share_location steuert, ob die Daten in der Knotenkarte angezeigt werden sollen, latitude und longitude sind die Geo-Koordinaten, wie sie bei der Konfiguration via UI erfasst werden, contakt ist die Kontaktinformation (z.B. Telefonnummer), wie sie ebenfalls bei der Konfiguration angegeben wird.

uci-Parameter[Bearbeiten]

Wo findet sich dazu Dokumentation?

gluon-node-info.@location[0]=location
gluon-node-info.@location[0].share_location='1'
gluon-node-info.@location[0].latitude='47.65432'
gluon-node-info.@location[0].longitude='12.34567'
gluon-node-info.@owner[0]=owner
gluon-node-info.@owner[0].contact='hier steht eine Kontaktinformation'
gluon-node-info.@system[0]=system

Hinweise zum Quellcode[Bearbeiten]

Experte gefragt!

Hinweise zum Router[Bearbeiten]

Die uci-Parameter finden sich in /etc/config/gluon-node-info.

luci[Bearbeiten]

network[Bearbeiten]

simple-tc[Bearbeiten]

socat[Bearbeiten]

system[Bearbeiten]

ucitrack[Bearbeiten]

uhttpd[Bearbeiten]

Bedeutung[Bearbeiten]

Eine einfache Implementierung eines Webservers aus dem OpenWRT-Projekt. https://wiki.openwrt.org/doc/howto/http.uhttpd sagt zu den Entwicklungszielen: effizient, stabil, einfache Integration in OpenWRT's UCI framework, für embedded-Anwendungen.

Fortsetzung folgt, Experte gefragt!

vnstat[Bearbeiten]

Bedeutung[Bearbeiten]

Laut http://humdi.net/vnstat/ ein Daemon-Prozess, der die Traffic-Statistikdaten der jeweiligen Netzwerk-Treiber abgreift, über längere Zeiträume abspeichert und auswertet, und z.B. für die Knotenstatistik zur Verfügung stellt.

Fortsetzung folgt auch hier, Experte gefragt!

wireless[Bearbeiten]

Ansprechpartner und Chat[Bearbeiten]

Im Chat von Freifunk München gibt es zum Thema Firmware einen Channel.

Ansprechpartner (Chat-Pseudonym):

  • awi - baut Firmware für Freifunk Kitzingen.
  • Sonst siehe Kontakt