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.

Router flashen[Bearbeiten | Quelltext bearbeiten]

Vor dem Routerkauf[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

Einführung[Bearbeiten | Quelltext 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/en/v2016.1.5/index.html).

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 | Quelltext 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 | Quelltext bearbeiten]

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

Neues Image für neue Hardware[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

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

Hinweise zum Router[Bearbeiten | Quelltext 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 | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

Experte gefragt

Hinweise zum Router[Bearbeiten | Quelltext bearbeiten]

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

batman-adv[Bearbeiten | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

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

Hinweise zum Router[Bearbeiten | Quelltext bearbeiten]

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

currentsite[Bearbeiten | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext bearbeiten]

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

uci-Parameter[Bearbeiten | Quelltext 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 | Quelltext bearbeiten]

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

Hinweise zum Router[Bearbeiten | Quelltext bearbeiten]

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

dhcp[Bearbeiten | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

Experte gefagt

Hinweise zum Router[Bearbeiten | Quelltext bearbeiten]

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

dropbear[Bearbeiten | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

Experte gefagt

Hinweise zum Router[Bearbeiten | Quelltext bearbeiten]

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

fastd[Bearbeiten | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

Experte gefragt!

Hinweise zum Router[Bearbeiten | Quelltext bearbeiten]

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

firewall[Bearbeiten | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

Experte gesucht!

Hinweise zum Router[Bearbeiten | Quelltext bearbeiten]

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

fstab[Bearbeiten | Quelltext bearbeiten]

gluon-core[Bearbeiten | Quelltext bearbeiten]

gluon-node-info[Bearbeiten | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

Experte gefragt!

Hinweise zum Router[Bearbeiten | Quelltext bearbeiten]

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

luci[Bearbeiten | Quelltext bearbeiten]

network[Bearbeiten | Quelltext bearbeiten]

simple-tc[Bearbeiten | Quelltext bearbeiten]

socat[Bearbeiten | Quelltext bearbeiten]

system[Bearbeiten | Quelltext bearbeiten]

ucitrack[Bearbeiten | Quelltext bearbeiten]

uhttpd[Bearbeiten | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext 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 | Quelltext bearbeiten]

Bedeutung[Bearbeiten | Quelltext 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 | Quelltext bearbeiten]

Ansprechpartner und Chat[Bearbeiten | Quelltext 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