Die folgende Doku beschreibt die Installation der Distribution openwrt auf einem Linksys-WRT54G.

der leichte Weg

Bevor du anfängst, solltest du unbedingt folgende Seite für einen groben Überblick lesen: http://openwrt.org/GettingStartedTips

Vorbereitung

Programme auf dem Host installieren

Unter debian genügt: apt-get install tftp telnet

Falls du das Image selbst bauen willst, dann brauchst du noch ein paar mehr Pakete, unter anderem:

gcc binutils patch bzip2 flex bison make gettext unzip zlib1g-dev libc6-dev 

boot_wait aktivieren

Die einfache Methode, ein neues Image hochzuladen, ist per tftp während des Bootvorgangs.

Dafür musst du das boot_wait-Flag des Routers aktivieren. DAS IST SEHR WICHTIG!

(Infos: http://openwrt.org/OpenWrtDocs/Installing#head-76921c79e7c7ed3b03d3bc9a40b1a2c792c215b0)

Folgendes Kommando nutzt einen Bug des Linksys-APs aus, um das boot_wait-Flag zu setzen, während er noch die originales Firmware enthält:

for PING_IP in '%3Btrue' '%3Bcp%24%7BIFS%7D*%2F*%2Fnvram%24%7BIFS%7D%2Ftmp%2Fn' '%3B*%2Fn%24%7BIFS%7Dset%24%7BIFS%7Dboot_wait%3Don' '%3B*%2Fn%24%7BIFS%7Dcommit' '%3B%2Fsbin%2Freboot'
#for PING_IP in '%3B%2F*%2Fcp%24%7BIFS%7D%2F*%2F*%2Fnv*%24%7BIFS%7D%2Ftmp%2Fn' '%3B%2F*%2Fn%24%7BIFS%7Dset%24%7BIFS%7Dboot_wait%3Don' '%3B%2F*%2Fn%24%7BIFS%7Dcommit' # '%3B%2Fsbin%2Freboot'
                        do
                        POST_DATA='submit_button=Ping&submit_type=start&action=Apply&change_action=gozila_cgi&ping_ip='"$PING_IP"'&ping_times=5'
    #echo "Aktion: $PING_IP"
    #echo -e "$POST_DATA\n---" | lynx -auth=admin:admin -post_data http://192.168.1.1/apply.cgi > /dev/null
                        wget -q -O /dev/null --http-user=admin --http-passwd=admin --post-data="$POST_DATA" http://192.168.1.1/apply.cgi
                        [ $? != 0 ] && {
                                        echo -e '\nFehler beim Aktivieren von boot_wait!'
                                        exit 1
                        }
                        echo -n "."
                done 

Vorher musst du dem WAN-Interface eine IP-Adresse geben.

Das Original-Skript zum setzen des boot_wait-Flags findest du unter: http://aachen.uni-dsl.de/download/wrt/Releases/rev90/buildroot-rev90/takeover

ROM-Image

Entweder installierst du ein fertiges Image - das geht schön schnell.

Oder du baust dir dein eigenes: dauert zwei Stunden länger und ist flexibler.

fertiges Image verwenden

Unter http://openwrt.org/downloads/experimental/bin/ liegen fertige Images.

Welches der beiden Dateisysteme (jffs2 oder squashfs) du wählst, ist eigentlich egal. Allerdings scheint es so, als würde das squashfs per Komprimierung platzsparender sein.

Das Hochladen des Images ist unter http://openwrt.org/GettingStartedTips sehr gut beschrieben.

selberbauen

Das ist ziemlich einfach geworden - also keine Angst :)

Das Quellen-Paket (tar.bz2) liegt unter http://openwrt.org/downloads/experimental/.

  1. auspacken: tar xjf experimental.tar.bz2

  2. konfigurieren: cd openwrt; make menuconfig

Die Voreinstellungen sind schon ziemlich sinnvoll. Falls du Veränderungen vornehmen willst, dann solltest du auf folgende Punkte achten:

Zum Erstellen der Pakete tippe einfach make. Beim ersten Mal werden dabei die Quellen der gewählten Pakete aus dem Netz geholt.

Die fertigen Pakete liegen anschließend unter bin/.

Das Skript zum Hochladen ist scripts/flash.sh:

cd bin; ../scripts/flashs.sh openwrt-wrt54g-squashfs.bin linksys ; cd .. 

Hinweise:

Die genaue Anleitung für den Upload findest du unter: http://openwrt.org/GettingStartedTips.

Spezial-Zeug

Platzprobleme

Falls du zuviel Pakete im openwrt-Menü ausgewählt hast, dann kannst du mit dem AP kaum noch etwas machen (z.b: scheitert das Setzen eines neuen Passworts). Alos: aufräumen!

Unter bin/packages/ findest du nach dem Erstellen eines Images alle installierten Pakete. Anhand deren Größe kannst du dann die harten Entscheidungen der Verschlankung sicherlich objektiv treffen :)

PPTP

PPTP ist für manche DSL-Modems erforderlich.

Es ist als Teil des openwrt-Pakets im boot-ROM auswählbar.

Bei der Nutzung hatte ich folgende Probleme:

WLAN und LAN trennen

Wenn der Verkehr über das Kabel- und das Funknetz gesondert behandelt werden soll (firewall-technisch), dann kannst du die virtuelle Bridge, die automatisch eingerichtet wird, auflösen: brctl delif br0 eth1


mehr Handarbeit

Dieser Abschnitt ist etwas älter (Mitte 02004) - damals war noch etwas mehr Handarbeit erforderlich. Also es ist wahrscheinlich nur noch als Referenz für spezielle Probleme geeignet.

BEWARE: selbst nochmal die docs lesen, sonst ist das Teil schnell Schrott!

Ich habs selbst geschafft, als ich versucht hab, das Ganze auf ppc zu compilen -> siehe naechsten Ansatz.

auf dem host

compilieren

installieren

Administration

kismet

config-Beispiele

allgemeine URLS

misc

WRT54GmitOpenWRT (zuletzt geändert am 2012-06-13 21:26:27 durch anonym)


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.