Dies ist die Beschreibung wie man selber die Firmware baut und ist eher etwas für geübte Leute.
Die Bielefelder Freifunk-Software besteht aus einer OpenWRT Installation mit Zusatzmodulen.
Unsere Konfiguration befindet sich hier.
Um selber die Firmware zu bauen, wird ein GNU/Linux-System wie z.B. Debian/Ubuntu/Arch/Gentoo benötigt.
Unter Debian oder Ubuntu müssen noch folgende Programme installiert werden (hier mittels apt-get über die Kommandozeile):
sudo apt-get install git subversion g++ libncurses5-dev gawk zlib1g-dev build-essential
Falls noch Pakete fehlen sollten, kann hier nachgeschaut werden, welche das sind.
Für das Bauen der Firmware muss nun folgendes auf der Kommandozeile eingegeben werden:
git clone git://git.openwrt.org/12.09/openwrt.git cd openwrt git clone https://github.com/freifunk-bielefeld/firmware.git cp -rf firmware/{files,package,feeds.conf.default,.config} . git am --whitespace=nowarn firmware/patches/*.patch rm -rf firmware ./scripts/feeds update -a ./scripts/feeds install -a make defconfig make menuconfig
In dem folgenden Menu muss nun das „Target System“ und „Target Profile“ ausgewählt werden:
Z.B. für den TL-WR841ND:
# Target System => <*> Atheros AR7xxx/AR9xxx # Target Profile => <*> TP-LINK TL-WR841ND
Z.B. für den DIR-300:
# Target System => <*> AR231x/AR5312 # Target Profile => <*> Default
Für andere Router kann der Chipsatz („Target System“) im OpenWrt Wiki nachgeschaut werden.
Zu guter Letzt wird die Firmware erzeugt:
make
Die fertige Firmware liegt nun im Ordner bin/<Chipsatz>/ und sollte im Namen die Modellbezeichnung des Routers, das zu verwendete Dateisystem („squashfs“) enthalten und auf „factory.bin“ enden.
Bei einem Update muss die Datei genommen werden die auf „sysupgrade.bin“ endet.
Eine Anleitung zum Flashen des Routers http://openwrt.org konsultieren oder mit uns Kontakt aufnehmen (siehe unten auf der Hauptseite).
Um erneute Kompiliervorgänge zu beschleunigen reicht es oft aus nur die Dateien zu aktualisieren. Dafür müssen folgende Befehle ausgeführt werden:
cd openwrt git pull ./scripts/feeds update -a ./scripts/feeds install -a rm -rf files rm -rf package/{freifunk-bielefeld,autoupdater,next-node,simple-tc,fastd,libuecc} git clone git://github.com/freifunk-bielefeld/firmware.git cp -rf firmware/* . make defconfig make
Sollte das neue System nicht mehr über das Web-Frontend aktualisierbar sein, so kann der OpenWrt Failsafe-Modus verwendet werden um den Router wiederzubeleben.
Mit einem TL-WR841N funktioniert das wie folgt:
1. Gerät neustarten und dabei den reset-Knopf im Sekundentakt drücken bis eine Status-LED schnell blinkt. Der Router ist nun im Failsafe-Modus.
2. Da kein DHCP aktiv ist, muss dem Computer von dem aus der Flash-Vorgang vorgenommen werden soll selbst eine IP-Adresse gegeben werden z.B. mit:
sudo ifconfig 192.168.1.2 eth0 up
3. Um das funktionstüchtige Image auf den Router zu übertragen, wird auf dem Computer ein Webserver geöffnet:
cd /home/path/to/firmware-dir python2 -m SimpleHTTPServer # oder mit Version 3 von Python: python -m http.server 8000
4. Der Router hat im Failsafe-Modus die IP 192.168.1.1 und kann per Telnet angesprochen werden.
telnet 192.168.1.1
5. Nun sind folgende Befehle notwendig um das Root-Dateisystem zu mounten und wegen mangelndem Flash-Speicher nach /tmp (liegt im RAM) zu wechseln:
mount_root cd /tmp
Dann kann das Image auf den Router geladen und geflasht werden.
wget 192.168.1.2:8000/name.der.firmware.bin sysupgrade -n name.der.firmware.bin