Firmware: Unterschied zwischen den Versionen

Aus Freifunk Köln, Bonn und Umgebung
Zur Navigation springen Zur Suche springen
(32 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{TOCright}}
{{TOCright}}
[[Datei:github-sc.png|200px|thumb|right|link=https://github.com/ff-kbu]]


Diese Wiki-Seite erläutert, wie Du Deine eigene Firmware bauen kannst. So kannst Du selber mit Setups experimentieren
Diese Wiki-Seite erläutert, wie Du Deine eigene Firmware bauen kannst. So kannst Du selber mit Setups experimentieren
oder Firmware für neue Geräte bauen.
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]]
 
Fertige Downloads findest auf den Seiten [[Firmware_herunterladen | Firmware herunterladen]] und [[Alternative_Firmware | Alternative Firmware]].


== Gluon/Linux ==
== Gluon/Linux ==
Zeile 10: Zeile 9:
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.  
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.
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.
Es gibt:
 
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)
* Hood BonnV2 (Gluon 2018.2)
** Fastd: https://github.com/ff-kbu/site-ffkbu-bonn-v2/tree/fastd
** Fastd: https://github.com/ff-kbu/site-ffkbu-bonn-v2/tree/fastd
Zeile 25: Zeile 29:
* Hood Euskirchen (u.a. Gluon 2018.2 - Branch auswählen)
* Hood Euskirchen (u.a. Gluon 2018.2 - Branch auswählen)
** https://github.com/freifunkeu/site/tree/2018.x-fastd
** 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


* Continuous Integration (CI) - regelmäßige Testbuilds für alle Hoods (Gluon 2018.2.x, multisite)
** IBSS-Treiber: https://git.kbu.freifunk.net/ff-kbu/gluon-build
** 802.11s-Treiber: https://git.kbu.freifunk.net/ff-kbu/gluon-build/tree/master-11s
= Notizblock für altes Zeug ==
== Kompatible Hardware ==
Grundsätzlich können alle OpenWRT-fähigen Geräte im Freifunk-KBU-Netz genutzt werden. Hierbei gibt es leider eine wesentlich Einschränkung:
* Jedes Gerät '''muss''' zwei  WLAN-Netze  (ad-hoc + Infrastruktur) betreiben.
# [http://de.wikipedia.org/wiki/Ad-hoc-Netz  Ad-hoc], um zu meshen
# [http://de.wikipedia.org/wiki/Infrastruktur-Netzwerk Infrastruktur], um die Clients zu bedienen.
Viele ältere Geräte können dies nicht (z.B. WRT54G).
Dies kann grundsätzlich durch die Nutzung mehrere Geräte umgangen werden. Bitte wende Dich an uns, wenn Du hieran Interesse hast - es wird jedoch kompliziert.
[[Datei:openwrt-sc.png|250px|thumb|right]]
Diese Artikel beschreibt die im Freifunk-KBU-Netz von uns verwendete Firmware.<br />
Hierbei verwenden wir [http://openwrt.org OpenWRT "Attitude Adjustment" (12.09)] & [http://openwrt.org OpenWRT "Barrier Breaker" (14.07)].
Die Firmware basiert auf der [http://freifunk.metameute.de/ Lübecker Freifunk Firmware] (LFF).
Für folgende TP-Link Geräte gibt es vorkonfigurierte Downloads (Siehe  [[Mitmachen]]):
* WDR4300
* WDR3500
* WR1043ND
* WR841N(D)
* WR842N
* WR740N-v4
* WR741ND
Für andere, ebenfalls "Atheros"-basierte Geräte bieten wir ebenfalls [http://jenkins.kbu.freifunk.net/files/release/latest/untested/ Downloads] an, die wir - mangels Hardware - jedoch nicht testen können.
Falls keine Downloads für Dein Gerät existieren ist Handarbeit und Expertenwissen notwendig. 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]]


== Freifunk-Firmware auswählen ==
* ''Die URL zu Deiner site-config, falls Du auch firmware baust''
{{:Firmware:Freifunk-Firmware auswählen}}


=== Gluon-Firmware ===
== Linux (sonstiges) ==
{{:Firmware:Gluon-Firmware}}
 
=== Classic-Firmware ===
{{:Firmware:Classic-Firmware}}
 
== Upgrade Classic auf Gluon ==
{{:Firmware:classic2gluon}}
 
== Releases ==
 
Aktuelle Version
 
* [https://kbu.freifunk.net/files/release/1.2.1/ Version 1.2.1]
Bitte zur Zeit folgende [[Ath9k-Probleme|Hinweise zum Ath9k-Problem]] beachten
 
Namensraumen für zukünftige Releases: Freie Filme (http://wiki.creativecommons.org/Films)
Das Release 1.2 hat noch keinen Namen (Vorschläge sind willkommen).
 
== Konfiguration ==
[[Datei:expert-stuff.jpg|300px|thumb|right]]
[[Datei:expert-stuff.jpg|300px|thumb|right]]
Alle Nodes, die am Freifunk-Netz betrieben werden, müssen wie folgt konfiguriert sein:
* Wlan
** Infrastruktur-Netz: SSID: kbu.freifunk.net
** Ad-Hoc-Netz: ESSID / BSSID: 02:d1:11:37:fc:39 - Kanal: 1
* Netzwerk- / IP-Adressen
** batman-adv, Infrastruktur-Netz müssen in einer Bridge zusammen gefasst werden
** Kein DHCP
** Keine IPv4-Adressen konfigurieren - auch keinen DHCP-Client.
* VPN / fastd:
** [https://github.com/ff-kbu/fff/tree/v0.3-generic/files/lib/freifunk/mesh-vpn/backbone Peers]
** [https://github.com/ff-kbu/fff/blob/v0.3-generic/files/lib/freifunk/mesh-vpn/fastd.conf Konfiguration:] - Hinweis: Das wget-Applet in Busybox < 1.19 unterstützt keine Post-Request. Es muss das wget(-no-ssl) Paket verwendet werden.
* batman-adv
** Zugewiesene Interfaces: ad-hoc, VPN
Die einzelnen Konfigurationsdatein können im [https://github.com/ff-kbu/fff/tree/v0.3-generic/files github] heruntergeladen werden. Bitte beachte, dass einige Dateien erst durch Scripts beim ersten Boot generiert werden.
Hinweis: fastd ist in OpenWRT nicht enthalten und muss zusätzlich kompiliert werden.
== Optionale Erweiterungen ==
=== Statistiken ===
Es besteht die Möglichkeit, dass wir statistische Daten (Don't Panic) <!-- Sollten wir näher erläutern, damit kein falscher Eindruck entsteht --> deines Nodes zentral von deinem Node geschickt bekommen und dann graphisch darstellen. Damit wir die Daten von deinem Node erhalten können, benötigst du ssh Zugriff auf deinen Node, sowie die Pakete ''collectd'', ''collectd-mod-interface'' und ''collectd-mod-network''.
'''Hinweis:''' <br />
Die Pakete sind bei der aktuellen Firmwareversion (1.x) default installiert und konfiguriert . Brauchen also derzeit nicht nachinstalliert zu werden!<br />
'''Andernfalls:'''<br />
* Installation der Pakete: (<span style="color:red; font-weigh:tbold;">Achtung: Die Installation funktioniert nicht mit der 1.2.1b, weil der Server jenkins-v6.kbu.freifunk.net nicht gefunden wird.</span>
<pre>
root@node # opkg update
root@node # opkg install collectd collectd-mod-interface collectd-mod-network
</pre>
* Kopiere folgende Datei nach /tmp/collectd.conf.sh und führe sie mit ''sh /tmp/collectd.conf.sh'' aus:
<pre>
#!/bin/sh
#Include lib_node.sh for accessing node_id
. /lib/freifunk/lib_node.sh
# This script creates collectd.conf after flashing.
# collectd uses node_id.nodes.kbu.freifunk.net as hostname
# nodes.kbu.freifunk.net does not exists at this time (2012-01-15).
# However, if needed, it can be set up using register / mysql- or ldap-based bind9 easily - or -
# mdns if avahi is configured to resove nodes.kbu.freifunk.net and not .local
local hostname="$(get_node_id).nodes.kbu.freifunk.net"
cat > /etc/collectd.conf <<EOF
Hostname "${hostname}"
BaseDir "/var/lib/collectd"
PIDFile "/var/run/collectd.pid"
Interval 10
ReadThreads 2
LoadPlugin network
LoadPlugin interface
<Plugin interface>
Interface "br-wan"
Interface "wlan0-1"
IgnoreSelected false
</Plugin>
<Plugin network>
Server "collectd.kbu.freifunk.net" "25827"
</Plugin>
EOF
</pre>


'''Anschließend starte deinen Node neu.'''
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.


== Sourcecode-Quellen ==
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.
[[Datei:github-sc.png|200px|thumb|left|link=https://github.com/ff-kbu/fff]]
Mesh-ID, wlan Kanal und VPN-Daten findest Du in der Gluon site-config zu Deiner Hood.
Falls Du unsere OpenWRT-Quellen verwenden möchtest (inkl. fastd), dann forke bitte https://github.com/ff-kbu/fff. <br />
Für jedes (beta)-Release gibt es einen Tag.  


feeds.conf.default enthält bereits neuere batman-adv und fastd-Pakete.<br />
Eine Anleitung für Debian Supernodes findest auf der Wiki-Seite [[Supernode]] - für Nodes auf [[Node]].
Somit ist es bspw. möglich, auf dem Router ein gewöhnliches OpenWRT zu installieren und die selbstgebauten Pakete (z.B. fastd) nachträglich einzuspielen.


Bitte beachte die Hinweise zum Kompilieren von [http://wiki.openwrt.org/doc/howto/build OpenWRT (howto build) ] - Es gibt keine Abweichungen bei dem Build unseres Forks  - abgesehen vom git-Repository - es ist kein svn update erforderlich.
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]]

Version vom 10. Februar 2020, 12:28 Uhr

Github-sc.png

Diese Wiki-Seite 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:

Es gibt site-Konfigurationen für verschiedene Gebiete (Hoods):


  • Die URL zu Deiner site-config, falls Du auch firmware baust

Linux (sonstiges)

Expert-stuff.jpg

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.

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