Hier ein paar kurze Stichpunkte, wie man sich sein eigenes Gluon-Image für seine Hardware bauen kann. Ich habe damit angefangen, da mein TP-LINK TL-WDR4300 einfach zu langsam war. Daher hatte ich .den Plan mit einen Gluon-Offloader zu bauen bauen. Über das Virtualbox-Image und x86-Image bin ich später beim RaspberryPi 2 gelandet. Um das Image zu bauen wird ein lauffähiges Linux benötigt (wer hätte es gedacht). Die Anleitung ziehlt auf Debian/Ubuntu-User die grundsätzlich schon Erfahrungen mit diesem Betriebssystem gesammelt haben.
Inhaltsverzeichnis
Benötigten Pakete installieren
Installiert die benötigten Pakete. Hier für Debian/Ubuntu.
sudo apt-get install build-essential git-core subversion gawk libncurses5-dev lib32z1-dev libssl-dev
Build Verzeichnis erstellen
Es werden ca. 8-15 GB zum erstellen des Images benötigt. Sucht am besten einen Platz mit genügend Speicherplatz. In meinem Fall mein Home-Dir:
mkdir ~/build-gluon cd ~/build-gluon
Checkout
Gluon
Nun Gluon mit Git auschecken und in das Verzeichnis wechseln:
git clone https://github.com/freifunk-gluon/gluon.git cd gluon
Site
Jede Freifunkgemeinschaft hat ihre eigene Site-Konfiguration. Das liegt daran, dass jeder seine eigene Infrastruktur betreibt.
Schaut am besten auf die Webseite von Freifunkern in eurer Nähe, wo diese Ihre Konfiguration haben. Eine Liste findet ihr im Freifunk-Wiki. Meist liegt diese Bei GitHub.
Beispiele:
Freifunk Karlsruhe: https://github.com/ffka/site-ffka
Freifunk Stuttgart: https://github.com/freifunk-stuttgart/site-ffs
Dort solltet ihr immer die aktuelle Konfiguration herunterladen. Dazu schaut euch am besten die verschiedenen Branches.
Beispiel Karlsruhe:
git clone https://github.com/ffka/site-ffka.git site -b gluon-master
In der Karlsruher Konfiguration fehlt leider das Paket „gluon-luci-wifi-config“ in der „GLUON_SITE_PACKAGES“ Liste (site/site.mk). Diese muss man noch hinzufügen:
if [ ! "$(grep 'gluon-luci-wifi-config' site/site.mk)" ]; \ then sed -i 's/gluon-luci-private-wifi\s*\\/gluon-luci-private-wifi \\\n\tgluon-luci-wifi-config \\/g' site/site.mk; \ else echo "gluon-luci-wifi-config already exists in site/site.mk!"; fi
Beispiel Stuttgart:
git clone https://github.com/freifunk-stuttgart/site-ffs.git site -b beta
Image bauen
Das Image für euren Hardware kann nun mit drei Zeilen gebaut werden. Je nachdem welche Hardware ihr verwendet sehen die leicht anders aus. Die Möglichen Targets findet ihr in „targets/targets.mk“.
Bitte beachtet, das ihr die Zahl hinter dem „-j“ der Anzahl eurer CPU-Cores anpassen müsst. Solltet ihr Fehler beim bauen erhalten, dann fügt der Zeile ein „V=s“ an um genauer zu sehen was gerade schief läuft.
Beispiel X86, Virtualbox & VMWare:
make -j8 update GLUON_RELEASE=master GLUON_TARGET=x86-generic make -j8 clean GLUON_RELEASE=master GLUON_TARGET=x86-generic make -j8 V=s GLUON_RELEASE=master GLUON_TARGET=x86-generic
Beispiel KVM:
make -j8 update GLUON_RELEASE=master GLUON_TARGET=x86-kvm_guest make -j8 clean GLUON_RELEASE=master GLUON_TARGET=x86-kvm_guest make -j8 V=s GLUON_RELEASE=master GLUON_TARGET=x86-kvm_guest
Beispiel RaspberryPi 2 Model B:
Ich baue für meinen RaspberryPi gerne gleich meine benötigten Software-Module mit, da ich an meinem noch eine Ugreen USB 3.0 Netzwerkkarte und TP-Link TL-WDN3200 WLAN-Stick betreibe. Ihr könnt das natürlich weglassen:
sed -i 's/GluonProfile,RaspberryPi2)/GluonProfile,RaspberryPi2, kmod-libphy kmod-mii kmod-usb-net kmod-usb-net-asix-ax88179 kmod-rt2x00-lib kmod-rt2x00-usb kmod-rt2800-lib kmod-rt2800-usb kmod-usb-core kmod-usb2 libusb-1.0 usb-modeswitch usbreset)/' targets/brcm2708-bcm2709/profiles.mk
Und dann kann es losgehen:
make -j8 update GLUON_RELEASE=master GLUON_TARGET=brcm2708-bcm2709 make -j8 clean GLUON_RELEASE=master GLUON_TARGET=brcm2708-bcm2709 BROKEN=1 make -j8 V=s GLUON_RELEASE=master GLUON_TARGET=brcm2708-bcm2709 BROKEN=1
Beispiel BananaPi:
make -j8 update GLUON_RELEASE=master GLUON_TARGET=sunxi make -j8 clean GLUON_RELEASE=master GLUON_TARGET=sunxi BROKEN=1 make -j8 V=s GLUON_RELEASE=master GLUON_TARGET=sunxi BROKEN=1
Image verwenden
Sollte bis hier alles glatt gelaufen sein, dann findet ihr in Verzeichnis „images“ sowohl das factory-Image also auch das sysupgrade-Image für eure Hardware.
Image mit dd auf Festplatte, USB-Stick oder SD-Karte schreiben
Sollte das Image wie des RaspberryPis gepackt sein, dann müsst ihr dieses erst entpacken:
gunzip gluon-ffka-master-raspberry-pi-2.img.gz
Danach findet heraus, welches euer Ziel-Laufwerk ist. Bei mit „/dev/sdi“. Sollte eine Partition auf dem Laufwerk gemounted sein, dann unmounted es erst:
sudo umount /dev/sdi1
Und schreibt danach das Image auf das Laufwerk:
sudo dd if=gluon-ffka-master-raspberry-pi-2.img of=/dev/sdi
Image in Virtualbox einbinden
In Virtualbox ein neue Maschine erzeugen.
Typ: Linux
Version: Other Linux (32-bit)
RAM: 256 MB
Festplatte: gluon-*-master-x86-virtualbox.vdi
Danach müsst ihr die Maschine noch einmal anpassen. Unter Netzwerk muss für den Adapter 1 bei „Angeschlossen an“ Netzwerkbrücke und bei „Namen“ eure Netzwerkkarte für eure LAN ausgewählt werden.
6. Mit Hardware verbinden und Konfigurieren
Ihr müsst nun eure Hardware per LAN mit eurem PC verbinden. Wichtig ist zu wissen, dass beim ersten Start im Konfigurations-Modus startet. Dabei ist es unter der IP-Adresse 192.168.1.1 erreichbar. Aber bringt keinen DHCP mit. Daher müsst ihr in eurem PC eine statische IP zwischen 192.168.1.2 – 192.168.1.254 vergeben. Solltet ihr einen anderen Router (z.B. eine FRITZ!Box) im Netzwerk haben, dann kann es sein, dass er bereits die IP-Adresse 192.168.0.1 belegt. In diesen Fall solltet ihr ihn aus dem Netzwerk entfernen oder eure Freifunk-Hardware direkt mit eurem PC verbinden (bei neueren PCs/Netzwerkkarten reicht dafür ein Patchkabel und ein Twisted-Pair-Kabel wird nicht benötigt).
Ist alles richtig verbunden und eingestellt, dann könnt ihr über http://192.168.1.1/ auf euren neuen Freifunk-Router zugreifen und ihn Konfigurieren.
Optional: Manuelle Konfiguration
Manuell:
Wer Probleme damit hat auf das WebInterface zuzugreifen und Zugriff auf die lokale Konsole oder Serielle Konsole hat, der kann seinen Freifunk-Router auch manuell konfigurieren. Hier ein kleines Beispiel:
uci set gluon-setup-mode.@setup_mode[0].configured=1 uci set fastd.mesh_vpn.enabled=1 uci set network.mesh_wan.auto=1 uci set system.@system[0].hostname=Knotenname uci commit reboot
Mesh on LAN:
Da mein RaspberryPi 2 mein Gluon-Offloader ist, betreibe ich an diesem eine Ugreen USB 3.0 Netzwerkkarte um für meinen TP-LINK TL-WDR4300 zu entlasten. Der RaspberryPi 2 ist mit seinem Netzwerkport (eth0) mit dem Internet/Router verbunden und meshed auf der USB-Netzwerkkarte (eth1) mit dem WDR4300:
uci set network.client.ifname="bat0 eth1" uci set network.mesh_lan=1 uci set network.mesh_lan.auto=1 uci commit network
Reboot to configmode
uci set "gluon-setup-mode.@setup_mode[0].enabled=1" uci commit reboot
Quellen:
https://freifunk-muensterland.de/wiki/doku.php?id=technik:virtualisiertes_gluon
http://gluon.readthedocs.org/
https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration