Archiv:Freifunk Firmware/ImageBuilder
Der Freifunk-ImageBuilder ist nicht mit dem OpenWrt-ImageBuilder bzw. ImageGenerator zu verwechseln. |
Der Freifunk-ImageBuilder wurde von seiner Weiterentwicklung, dem Meshkit abgelöst. Er läuft jedoch immer noch und kann weiterhin verwendet werden, um Firmware für Router mit nur 16MB Ram zu generieren. |
Freifunk ImageBuilder
Der ImageBuilder ist ein Webinterface, das es mit wenigen Klicks ermöglicht, für Freifunk vorkonfigurierte Firmware-Images der OpenWrt-Software zu erstellen, die direkt nach dem Flashen ins (OLSR)-Freifunknetz integriert werden können. Derzeit gibt es Images für die Hardware-Plattformen brcm47xx, brcm63xx, x86, 'atheros und ar71xx. Weitere Targets evtl. auf Anfrage (s. Kontakt) und wenn jemand bereit ist die Builds zu testen. Der Imagebuilder wird beständig weiterentwickelt, daher ist Feedback sehr willkommen (s. Kontakt).
ImageBuilder benutzen
Die URL zum ImageBuilder ist http://imagebuilder.augsburg.freifunk.net/meshkit. Man sollte dazu noch die Webseite seiner Freifunk-Community öffnen, um einige der nötigen Einstellungen nachlesen zu können. Hat man ein Upgrade einer Firmware vor, die mit dem ImageBuilder 0.1 erstellt wurde, empfiehlt sich beim Upload auf den Router das Sichern und Überschreiben der bisherigen Konfiguration, weil es verschiedene Änderungen gab.
- In einem ersten Schritt muss man seine Freifunk-Community angeben und ein Target für die verwendete Hardware wählen. Gibt es noch kein passendes Community-Profil, dann kann man entweder irgendeins wählen und die Einstellungen später manuell ändern, oder besser man erstellt selber ein Profil (s.u.), damit es im ImageBuilder integriert werden kann.
- Im nächsten Schritt werden dann die Einstellungen für den eigenen Freifunk-Knoten vorgenommen. Einige Felder können dabei auf den vorgeschlagenen Defaultwerten bleiben, andere sollte man unbedingt mit eigenen Werten ausfüllen:
Einstellungen unter System
- Keine Preconfig erzeugt unkonfigurierte Images. Dies kann praktisch sein, um unkonfigurierte Images zu erstellen, die aber bestimmte Pakete enthalten (um Platz zu sparen oder für sysupgrade). Diese Option sollte man meist deaktiviert lassen.
- Profil ist eine Einstellung für ein spezielles Hardware-Profil für den eigenen Router. Wenn man sich nicht sicher ist, welches Profil für den eigenen Router zutrifft, dann kann man das entweder im OpenWrt-Wiki erfahren, oder man verwendet die Einstellung Default
- Webinterface wählt die Konfigurationsoberfläche im Router. Der Eintrag sollte eigentlich immer auf luci bleiben. Will man jedoch einen Router ohne Webinterface kann man hier auch "none" wählen.
- Theme legt das zu verwendende Design für luci fest. Gibt es kein besonderes Theme für die eigene Community, empfiehlt sich die Einstellung luci-theme-freifunk-generic.
- Hostname definiert den Namen des Routers, der in der Community eindeutig sein muss. Lässt man den Wert auf auto stehen, wird automatisch ein Name erzeugt.
- Geografische Breite/Länge: Die GPS-Koordinaten des eigenen Access Points, damit dieser richtig auf den verschiedenen Freifunk-Karten dargestellt wird. Wenn man kein GPS-Gerät hat, kann man seine Standort-Koordinaten bspw. über Google-Maps erfahren. Die Schreibweise muss in der Form vorgenommen werden, dass der Grad mit einem Punkt von den Minuten, Sekunden etc. getrennt wird, z.B. 49.78900
Einstellungen unter Freifunk
- Wlan IP ist die netzweit eindeutige IP-Adresse des Routers im Mesh. Sie muss von der jeweiligen Community bezogen oder dort registriert werden (siehe Community-Webseite). Dieses Feld sollte unbedingt ausgefüllt werden! Ein Klick auf das +/- öffnet weitere Optionen, die bei einem bestehenden Community-Profil bereits richtig vorausgefüllt sind (und daher nicht geändert werden müssen) und auf der Community-Webseite nachgelesen werden können:
- Kanal: Zu verwendender Kanal. Die BSSID wird entsprechend dem IP-Schema generiert, solange im Profil kein eigenes BSSID-Schema hinterlegt ist (Siehe weiterführende Links unten)
- DHCP aktivieren erlaubt, Gäste (z.b. Notebooks) per Ad-Hoc Konfiguration ins Netz aufzunehmen und diesen automatisch eine IP-Adresse zuzuweisen.
Einstellungen unter LAN
Hier kann die LAN-Schnittstelle des Routers konfiguriert werden.
- static: statische IP-Einstellungen, dies ist der Default
- olsr: Das Interface wird für OLSR-Betrieb konfiguriert. Dazu muss es eine IP aus dem Meshnetzwerk erhalten. Dann wird olsr auf dem Interface gestartet, das Interface wird der Firewallzone "Freifunk" hinzugefügt und der per Default aktivierte DHCP-Server wird abgeschaltet.
Einstellungen unter WAN
Erlaubt die Konfiguration der WAN-Schnittstelle des Routers.
- dhcp-client: Default. Netzwerksettings für WAN werden von einem DHCP-Server bezogen.
- static: Statische Netzwerkeinstellungen
- olsr: WAN fird für OLSR-Betrieb konfiguriert und der Firewallzone "Freifunk" hinzugefügt. Es muss eine IP aus dem meshnetzwerk verwendet werden.
Einstellungen unter Pakete
- extra installieren: erlaubt die Angabe von Paketnamen, die in das Firmware-Image von vornherein integriert werden sollen, z.B. Druckdienst, Telefonie, Netzwerktools, u.a. Dadurch wird das Image natürlich größer. Die dort aufgelisteten Pakete können bei Bedarf auch nachträglich installiert werden, wenn die Firmware einmal aufgespielt wurde. Nützliche Pakete stehen im nächsten Abschnitt. Hinweise:
- Per Default werden ppp, ppp-mod-pppoe, kmod-ppp für DSL-Einwahl und nas bzw. wpad-mini (für wlan-crypto) nicht mit ins Image gebaut. Wenn man ein integriertes DSL-Modem o.ä. hat, sollte man die passende Einwahlsoftware wie kmod-ppp jetzt hier eintragen.
- Bei Images für die RouterStation der Firma Ubiquiti wird beim Profil UBNTRS kein Wifi-Kernelmodul mit ins Image kompiliert, weil man verschiedene Karten ins Gerät einbauen kann. Daher sollte man die passenden Kernelmodule für seine Netzwerkkarte jetzt hier eintragen.
Einstellungen unter UPLOAD
Hier kann ein tar.gz-Archiv hochgeladen werden, das dann im Root-verzeichnis des Routers entpackt wird.
Beispiel: Man will das Logo im freifunk-generic theme durch ein eigenes Logo ersetzen:
cd /tmp mkdir -p www/luci-static/resources cp meinlogo.gif www/luci-static/resources/custom_logo_only.gif tar -cvzf meinlogo.tar.gz files
Das File meinlogo.tar.gz läd man dann hoch und es wird nach /www/luci-static/resources/custom_logo_only.gif auf dem Router entpackt.
Einstellungen unter Kontakt
- Hier gibt man seine Kontaktdaten an, damit man von anderen Leuten/Freifunkern erreicht werden kann. Die Daten können auch nachträglich noch geändert werden. Zur Zeit werden Sonderzeichen und Umlaute herausgefiltert, deshalb muss man ggf. seine Daten auch nachträglich in luci korrigieren.
Einstellungen unter Absenden
- Wurden alle notwendigen Einstellungen gemacht kann man hier das Formular absenden. Es folgt eine Übersichtsseite mit allen gewählten Einstellungen und man kann diese dann korrigieren oder bestätigen. Danach wird ein entsprechendes Image kompiliert und zum Download angeboten.
Weitere Informationen:
- Es gibt immer ein factory- und ein sysupgrade-Image für das gewählte Target. Die factory-Version benutzt man, um die Standardfirmware des Herstellers auszutauschen und die sysupgrade-Version benutzt man, um einen Router mit OpenWrt/Freifunk zu aktualisieren. Die Firmware aktualisiert man am besten über das Webinterface. Bei OpenWrt kann man auch das sysupgrade-Kommando auf der Shell des Routers benutzen.
- Das Passwort zum Login wird auf admin gesetzt und sollte bei der ersten Anmeldung geändert werden.
- DHCP für WLAN kann automatisch konfiguriert werden. Dazu wird eine Alias-IP für das WLAN-Interface generiert, derzeit aus dem 6.0.0.0/8-Netz. Dabei wird so vorgegangen, dass aus w.x.y.z dann 6.y.z.1 wird. Das heisst das funktioniert gut für Netze die nicht größer als /16 sind. Bei größeren Netzen wird es zu Dopplern kommen. Man beachte, dass die Netz mit gößer werdender Zahl kleiner wird, siehe z.B. http://www.heise.de/netze/tools/netzwerkrechner/
- Bei Geräten mit mehr als einem Netzwerkinterface wird nur das erste Netzwerkinterface für ad-hoc Betrieb konfiguriert.
- Der ImageBuilder legt ein Startscript /etc/init.d/wizard im Image an, das nach dem ersten Start des Routers ausgeführt wird, d.h. nachdem der erste Bootprozess komplett abgeschlossen ist (inkl. Initialisierung des Dateisystems). Es setzt dann alle notwendigen Optionen mit UCI und startet die Systemdienste danach neu, weshalb der erste Start einige Minuten dauern kann.
Nützliche Pakete
- luci-app-qos und qos-scripts erlauben, QoS zu nutzen, was eine Traffic-Priorisierung ist. In der Standardeinstellung wird Filesharing am niedrigsten eingestuft, Mail, http, Messenger u.a. sind höher gewichtet. Dadurch kann man "ruckelfrei" surfen, während man Downloads laufen hat, die an sich schon die Leitung voll ausnutzen.
- luci-app-upnp und miniupnpd erlauben, UPnP zu nutzen, durch das Programme im Heimnetz bei Bedarf automatisch Portweiterleitungen einstellen können.
- luci-ssl ist ein Plugin, das das Webinterface des Routers auch verschlüsselt per https erreichbar macht. Daten wie das Admin-Passwort werden dadurch nicht mehr unverschlüsselt zum Router gesendet (oder man verwendet einen SSH-Tunnel (SOCKS5-Proxy) über das bereits eingebaute SSH).
- darkstat liefert auf dem Routerport 667 einfache Verbindungsstatistiken, ohne viel Last zu verursachen
Community-Profile
Seit Version 0.2.0 werden keine eigenen Profile für den Imagebuilder mehr verwendet, sondern die Communityprofile aus dem Luci Repository. Für mögliche Einstellungen dort und Infos wie man so ein profil für die eigene Community bekommt sie die weiterführenden Links unten.
Kamikaze/ImageBuilder/svn_profiles
Seit Version 0.1.1 ist es auch möglich, eigene Dateien mit ins Image bauen zu lassen. Dazu werden diese im Ordner profiles/$COMMUNITY/files/ genauso abgelegt, wie sie später im Image landen sollen. Eigene Files können entweder an soma geschickt werden. Alternativ kann man auch einen svn-Zugang erhalten, um diese selbst bearbeiten zu können.
Download per svn
Der Quellcode des ImageBuilders kann heruntergeladen werden:
- Stable, zum Benutzen: https://svn.augsburg.freifunk.net/kamikaze/contrib/imagebuilder/tags/0.2.1
- Trunk, für Entwickler : https://svn.augsburg.freifunk.net/kamikaze/contrib/imagebuilder/trunk/
Trac / Bugreports
Auf https://trac.augsburg.freifunk.net läuft ein Trac. Dort kann man bequem den Source-Code anschauen und Fehler via Ticket melden.
Kontakt
Per Mail an freifunk at somakoma dot de oder s0ma im #freifunk Chatraum.
Weiterführende Links
Kamikaze/Meshwizard/BSSID-Schema Kamikaze/Profile Kamikaze/ImageBuilder/svn