Firmware: Unterschied zwischen den Versionen
Yanosz (Diskussion | Beiträge) |
|||
(125 dazwischenliegende Versionen von 13 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{TOCright}} | |||
[[Datei:github-sc.png|200px|thumb|right|link=https://github.com/ff-kbu]] | |||
Firmware ist der Begriff für eine Software die zum Betrieb eines (embedded/unabhängigen) Gerätes benutzt wird. Ein Router, ein Accesspoint, ein Smartphone aber auch inzwischen Autos und vielleicht schon der Toaster oder die Mikrowelle. | |||
Die Firmware hat Versionsnummern und wurde auch für verschiedene Hardware (Versionsnummern gebaut). Hersteller verbauen im laufe der Zeit immer mal wieder andere Komponenten (WLAN-Modul, Speicher) in die Geräte, die zB größer und besser oder aber von einem anderen (nicht von FF unterstützten) Komponentenhersteller sind. | |||
'''Deshalb immer auch auf die Hardware-Version achten!''' | |||
[[Firmware_herunterladen|KBU Firmware herunterladen]] | |||
== | == Geschichte == | ||
(FFF,OpenWRT,Kamikaze,Gluon) | |||
=== Früher === | |||
...war alles einfacher. Da gab es eine Firmware, die "Freifunk Firmware"/FFF, die hauptsächlich von Sven-Ola entwickelt wurde. Die FFF war ein Fork auf Basis von OpenWrt White Russian. Als 2007 das wesentlich verbesserte OpenWrt Kamikaze erschien, unter anderem gab es nun Support für andere Plattformen als Broadcom (WRT54G und Co), stellte sich heraus, dass man die FFF nicht einfach auf Kamikaze würde portieren können. Daher wurde begonnen, Freifunk auf Kamikaze lauffähig zu machen. Man wollte diesmal keinen neuen Fork von OpenWrt machen, sondern alle für Freifunk benötigten Funktionalitäten als Zusatzpakete zu einem ansonsten unveränderten Kamikaze und entsprechende Konfiguration bereitzustellen. Aus dieser Motivation heraus entstand auch das LuCI-Webinterface für OpenWrt, das mittlerweile nicht nur Freifunkfunktionalitäten anbietet, sondern zum Standard-Webinterface für OpenWrt wurde. Da es keine inkompatiblen Änderungen in den nachfolgenden OpenWrt Releases (Backfire und bald Attitude Adjustment) gab, war es nun auch ohne größere Probleme möglich, die Freifunk-Funktionalität auf diese neuen Releases zu übertragen. | |||
Da OpenWrt ein flexibles Framework für die Erstellung angepasster Firmwareimages ist und eine eigene Firmware relativ leicht zu erstellen ist, begannen immer mehr Freifunk-Communities damit, eigene Firmware-Versionen auf der Basis von OpenWrt zu veröffentlichen. =>> [https://wiki.freifunk.net/Freifunk-Firmware#Geschichtliches wiki.freifunk.net] | |||
=== Gluon === | |||
ist die auf OpenWRT basierende Freifunk-Firmware der neueren Generation. (9/'21) | |||
* [https://github.com/freifunk-gluon/gluon Gluon Quellcode @Github] | |||
* [https://gluon.readthedocs.io/ Gluon Dokumentation (englisch)] | |||
== Firmware bauen / kompilieren / backen == | |||
(für Fortgeschrittene) | |||
Dieser Abschnitt erläutert, wie Du Deine eigene Firmware bauen kannst. So kannst Du selber mit Setups experimentieren | |||
oder Firmware für neue Geräte bauen. Fertige Downloads findest auf den Seiten [[Firmware_herunterladen | Firmware herunterladen]] und [[Alternative_Firmware | Alternative Firmware]]. Falls Du Lust und Zeit hast, vorkonfigurierte Firmware-Dateien für Dein Gerät zu bauen und zu testen, stellen wir die Images gerne ebenfalls online. Frage uns einfach über die [[Mailingliste]] | |||
=== Gluon/Linux === | |||
Fast alle Nodes im KBU-Netz verwenden [https://github.com/freifunk-gluon Gluon/Linux], das auf [https://openwrt.org OpenWRT] basiert. Das Bauen von Gluon wird in der Dokumentation [https://gluon.readthedocs.io https://gluon.readthedocs.io] unter [https://gluon.readthedocs.io/en/latest/user/getting_started.html Getting Started] beschrieben. Für Gluon wird eine site-Konfiguration benötigt, die verschiedene Parameter (IP-Adressen, VPN-Server, usw.) codiert. | |||
Die gültigen Parameter hängen stark von der Gluon-Version ab - Site-Konfigurationen können mit älteren oder neuen Version nicht einfach wiederverwendet werden. | |||
Schnellstart-Anleitungen gibt es für: | |||
* Bonn V2: [[Firmware_kompilieren | Firmware kompilieren]]. | |||
* Alle Hoods mit Gluon 2016.2 [[KBU_Gluon_Firmware | KBU Gluon Firmware]] | |||
Es gibt site-Konfigurationen für verschiedene Gebiete (Hoods): | |||
* Hood BonnV2 (Gluon 2018.2) | |||
** Fastd: https://github.com/ff-kbu/site-ffkbu-bonn-v2/tree/fastd | |||
** Wireguard: https://github.com/ff-kbu/site-ffkbu-bonn-v2/tree/wireguard | |||
* Alte Hood Bonn (Gluon 2016.2) | |||
** https://github.com/ff-kbu/site-ffkbu/tree/v2016.2 | |||
** https://github.com/ff-kbu/site-ffkbu/tree/v2016.2-noautoupdate | |||
* Hood Köln (Gluon 2016.2) | |||
** https://github.com/ff-kbu/site-ffkbuk/tree/v2016.2 | |||
** https://github.com/ff-kbu/site-ffkbuk/tree/v2016.2-noautoupdate | |||
* Hood Umland (Gluon 2016.2) | |||
** https://github.com/ff-kbu/site-ffkbuu/tree/v2016.2 | |||
** https://github.com/ff-kbu/site-ffkbuu/tree/v2016.2-noautoupdate | |||
* Hood Euskirchen (u.a. Gluon 2018.2 - Branch auswählen) | |||
** https://github.com/freifunkeu/site/tree/2018.x-fastd | |||
* Continuous Integration (CI) - regelmäßige Testbuilds für alle Hoods (u.a. Gluon 2019.1.x, 2018.2.x, multisite, hoodselector geolocator) | |||
** Gluon 2018.2.x | |||
*** IBSS-Treiber ([https://kbu.freifunk.net/files/gluon-weekly/v2018.2/ Downloads]): https://git.kbu.freifunk.net/ff-kbu/gluon-build/tree/2018.2 | |||
*** 802.11s-Treiber ([https://kbu.freifunk.net/files/gluon-weekly/v2018.2-11s/ Downloads]): https://git.kbu.freifunk.net/ff-kbu/gluon-build/tree/2018.2-11s | |||
** Gluon 2019.1.x | |||
*** IBSS-Treiber ([https://kbu.freifunk.net/files/gluon-weekly/v2019.1/ Downloads]): https://git.kbu.freifunk.net/ff-kbu/gluon-build | |||
*** 802.11s-Treiber ([https://kbu.freifunk.net/files/gluon-weekly/v2019.1-11s/ Downloads]): https://git.kbu.freifunk.net/ff-kbu/gluon-build/tree/master-11s | |||
* ''Die URL zu Deiner site-config, falls Du auch firmware baust'' | |||
=== Linux (sonstiges) === | |||
[[Datei:expert-stuff.jpg|300px|thumb|right]] | |||
Neben Gluon werden auch andere Linux-Distributionen verwendet (u.a. Nodes mit routing, d.h. ''Offloader'', ''Supernodes''). | |||
Für Wlan-Router können grundsätzlich alle OpenWRT-fähigen Geräte genutzt werden. Da verschiedene Netze für Meshing und Client-Access genutzt werden, sollte das Geräte mehrere Netze betreiben können. | |||
Dabei liegen beide Netze auf einem einheitlichen Kanal - verfügt ein Geräte über mehrere Radios (d.h. wlan-Karten), können auch weitere Channels für Mesh oder Client-Access genutzt werden. | |||
Nodes nutzen ein [https://www.open-mesh.org/projects/batman-adv/wiki batman-adv]-Interface, in das alle mesh-Interfaces (z.B. VPN, wlan) aufgenommen werden. Das bat0-Interface wird mit client-access-Interfaces in einer Bridge zusammen gefasst. | |||
Mesh-ID, wlan Kanal und VPN-Daten findest Du in der Gluon site-config zu Deiner Hood. | |||
Eine Anleitung für Debian Supernodes findest auf der Wiki-Seite [[Supernode]] - für Nodes auf [[Node]]. | |||
Ein Anleitung für OpenWRT findest Du im Blog ("Supernodes sind Nodes") - SSID und Kanal musst Du evtl. anpassen. | |||
* https://kbu.freifunk.net/2016/02/SupernodesSindNodes_Teil1/ | |||
* https://kbu.freifunk.net/2016/02/SupernodesSindNodes_Teil2/ | |||
* https://kbu.freifunk.net/2016/02/SupernodesSindNodes_Teil3/ | |||
Eine andere Möglichkeit ist [https://kbu.freifunk.net/files/node-config/doc/ node-config] zum erstellen eigener Hoods oder unabhängiger Netze. | |||
=== Gitlab / Github / Infrastruktur === | |||
Unter https://gitlab.kbu.freifunk.net betreiben wir eine gitlab-Instanz. Ein Beispiel für einen Gluon-CI Job findest Du unter https://git.kbu.freifunk.net/ff-kbu/gluon-build/blob/master/.gitlab-ci.yml . | |||
Falls Du auf Github aktiv bist, findest Du die zughörige Organisation unter https://github.com/ff-kbu | |||
[[Kategorie:Netz-und-Technik]] | [[Kategorie:Netz-und-Technik]] |
Aktuelle Version vom 20. März 2022, 03:31 Uhr
Firmware ist der Begriff für eine Software die zum Betrieb eines (embedded/unabhängigen) Gerätes benutzt wird. Ein Router, ein Accesspoint, ein Smartphone aber auch inzwischen Autos und vielleicht schon der Toaster oder die Mikrowelle.
Die Firmware hat Versionsnummern und wurde auch für verschiedene Hardware (Versionsnummern gebaut). Hersteller verbauen im laufe der Zeit immer mal wieder andere Komponenten (WLAN-Modul, Speicher) in die Geräte, die zB größer und besser oder aber von einem anderen (nicht von FF unterstützten) Komponentenhersteller sind.
Deshalb immer auch auf die Hardware-Version achten!
Geschichte
(FFF,OpenWRT,Kamikaze,Gluon)
Früher
...war alles einfacher. Da gab es eine Firmware, die "Freifunk Firmware"/FFF, die hauptsächlich von Sven-Ola entwickelt wurde. Die FFF war ein Fork auf Basis von OpenWrt White Russian. Als 2007 das wesentlich verbesserte OpenWrt Kamikaze erschien, unter anderem gab es nun Support für andere Plattformen als Broadcom (WRT54G und Co), stellte sich heraus, dass man die FFF nicht einfach auf Kamikaze würde portieren können. Daher wurde begonnen, Freifunk auf Kamikaze lauffähig zu machen. Man wollte diesmal keinen neuen Fork von OpenWrt machen, sondern alle für Freifunk benötigten Funktionalitäten als Zusatzpakete zu einem ansonsten unveränderten Kamikaze und entsprechende Konfiguration bereitzustellen. Aus dieser Motivation heraus entstand auch das LuCI-Webinterface für OpenWrt, das mittlerweile nicht nur Freifunkfunktionalitäten anbietet, sondern zum Standard-Webinterface für OpenWrt wurde. Da es keine inkompatiblen Änderungen in den nachfolgenden OpenWrt Releases (Backfire und bald Attitude Adjustment) gab, war es nun auch ohne größere Probleme möglich, die Freifunk-Funktionalität auf diese neuen Releases zu übertragen.
Da OpenWrt ein flexibles Framework für die Erstellung angepasster Firmwareimages ist und eine eigene Firmware relativ leicht zu erstellen ist, begannen immer mehr Freifunk-Communities damit, eigene Firmware-Versionen auf der Basis von OpenWrt zu veröffentlichen. =>> wiki.freifunk.net
Gluon
ist die auf OpenWRT basierende Freifunk-Firmware der neueren Generation. (9/'21)
Firmware bauen / kompilieren / backen
(für Fortgeschrittene)
Dieser Abschnitt erläutert, wie Du Deine eigene Firmware bauen kannst. So kannst Du selber mit Setups experimentieren oder Firmware für neue Geräte bauen. Fertige Downloads findest auf den Seiten Firmware herunterladen und Alternative Firmware. Falls Du Lust und Zeit hast, vorkonfigurierte Firmware-Dateien für Dein Gerät zu bauen und zu testen, stellen wir die Images gerne ebenfalls online. Frage uns einfach über die Mailingliste
Gluon/Linux
Fast alle Nodes im KBU-Netz verwenden Gluon/Linux, das auf OpenWRT basiert. Das Bauen von Gluon wird in der Dokumentation https://gluon.readthedocs.io unter Getting Started beschrieben. Für Gluon wird eine site-Konfiguration benötigt, die verschiedene Parameter (IP-Adressen, VPN-Server, usw.) codiert. Die gültigen Parameter hängen stark von der Gluon-Version ab - Site-Konfigurationen können mit älteren oder neuen Version nicht einfach wiederverwendet werden.
Schnellstart-Anleitungen gibt es für:
- Bonn V2: Firmware kompilieren.
- Alle Hoods mit Gluon 2016.2 KBU Gluon Firmware
Es gibt site-Konfigurationen für verschiedene Gebiete (Hoods):
- Hood BonnV2 (Gluon 2018.2)
- Alte Hood Bonn (Gluon 2016.2)
- Hood Köln (Gluon 2016.2)
- Hood Umland (Gluon 2016.2)
- Hood Euskirchen (u.a. Gluon 2018.2 - Branch auswählen)
- Continuous Integration (CI) - regelmäßige Testbuilds für alle Hoods (u.a. Gluon 2019.1.x, 2018.2.x, multisite, hoodselector geolocator)
- Gluon 2018.2.x
- IBSS-Treiber (Downloads): https://git.kbu.freifunk.net/ff-kbu/gluon-build/tree/2018.2
- 802.11s-Treiber (Downloads): https://git.kbu.freifunk.net/ff-kbu/gluon-build/tree/2018.2-11s
- Gluon 2019.1.x
- IBSS-Treiber (Downloads): https://git.kbu.freifunk.net/ff-kbu/gluon-build
- 802.11s-Treiber (Downloads): https://git.kbu.freifunk.net/ff-kbu/gluon-build/tree/master-11s
- Gluon 2018.2.x
- Die URL zu Deiner site-config, falls Du auch firmware baust
Linux (sonstiges)
Neben Gluon werden auch andere Linux-Distributionen verwendet (u.a. Nodes mit routing, d.h. Offloader, Supernodes). Für Wlan-Router können grundsätzlich alle OpenWRT-fähigen Geräte genutzt werden. Da verschiedene Netze für Meshing und Client-Access genutzt werden, sollte das Geräte mehrere Netze betreiben können. Dabei liegen beide Netze auf einem einheitlichen Kanal - verfügt ein Geräte über mehrere Radios (d.h. wlan-Karten), können auch weitere Channels für Mesh oder Client-Access genutzt werden.
Nodes nutzen ein batman-adv-Interface, in das alle mesh-Interfaces (z.B. VPN, wlan) aufgenommen werden. Das bat0-Interface wird mit client-access-Interfaces in einer Bridge zusammen gefasst. Mesh-ID, wlan Kanal und VPN-Daten findest Du in der Gluon site-config zu Deiner Hood.
Eine Anleitung für Debian Supernodes findest auf der Wiki-Seite Supernode - für Nodes auf Node.
Ein Anleitung für OpenWRT findest Du im Blog ("Supernodes sind Nodes") - SSID und Kanal musst Du evtl. anpassen.
- https://kbu.freifunk.net/2016/02/SupernodesSindNodes_Teil1/
- https://kbu.freifunk.net/2016/02/SupernodesSindNodes_Teil2/
- https://kbu.freifunk.net/2016/02/SupernodesSindNodes_Teil3/
Eine andere Möglichkeit ist node-config zum erstellen eigener Hoods oder unabhängiger Netze.
Gitlab / Github / Infrastruktur
Unter https://gitlab.kbu.freifunk.net betreiben wir eine gitlab-Instanz. Ein Beispiel für einen Gluon-CI Job findest Du unter https://git.kbu.freifunk.net/ff-kbu/gluon-build/blob/master/.gitlab-ci.yml .
Falls Du auf Github aktiv bist, findest Du die zughörige Organisation unter https://github.com/ff-kbu