| Hinweis: Dies ist eine Anleitung für Interessierte und Technik-Begeisterte. Willst du einfach nur OpenWRT installieren, empfehle ich dir entweder ein offizielles Binary unter http://downloads.openwrt.org/whiterussian/ zu laden oder die auf OLSR spezialisierte Freifunk Firmware. |
Voraussetzungen
Folgende Dinge werden benötigt, um diese Beschreibung nachvollziehen zu können:
- Einen PC. Keine Antiquitäten. Komplett mit CD-Rom-Laufwerk, leitungsgebundener Netzwerk-Karte und 128 Mb RAM.
- Eine Knoppix-CD. Kann man kaufen z.B. die LinuxTag?-DVD bei Lehmanns Buchhandlung für 10,- Euro. Man kann Knoppix (http://www.knopper.net/knoppix/) auch herunterladen und die knoppix.iso-Datei z.B. mit Nero auf eine CD brennen.
- Eine Internet-Verbindung. Für die vielen Downloads (ca. 1000 Mb). Klinkt Euch in ein Firmennetzwerk ein, nehmt ein DSL-Modem oder eine ISDN-Karte. Bekommt Ihr Internet nur mit Windows-Spezialtreibern hin, wird es schwierig, denn die Internet-Verbindung muss unter Knoppix hergestellt werden.
- Den Linksys WRT54G (wird mit Netzteil und Netzwerk-Kabel geliefert). In Deutschland steht häufig WRT54G-DE auf der Schachtel. Dieses Gerät (Version 2) ist auch OK. Kein WAP54G, kein ADSL-Gateway. Höchstens einen WRT54GS (edel, gibt es aber noch nicht überall zu kaufen).
- Eine zweite Netzwerkleitung. Diese wird benötigt, um eine aktive Internet-Verbindung am Internet-Port zu simulieren.
Den Rückweg sichern
Wenn mal was schief geht, ist es wirklich prima wenn man die Original-Software wieder einspielen kann. Dazu muss am WRT54G eine kleine Änderung in der Konfiguration vorgenommen werden, die nicht über die Web-Oberfläche vorgenommen werden kann. Außerdem kann man mit diesem Vorgehen wunderbar den Umgang mit Knoppix und Linux erproben.
- Mit dem PC das Archiv der Batbox nach C:\TMP downloaden: http://www.batbox.org/wrt54g-0.6.tar.gz (oder neuere Version von http://www.batbox.org/wrt54g-linux.html)
- Den WRT54G aus der Packung nehmen und einschalten
- Evt. durch langen Druck auf den "Reset"-Schalter (mit Kugelschreiber o.ä.) die Grundkonfiguration herstellen. Ausschalten und neu einschalten.
- Eine Ethernet-Leitung zwischen WRT54G und PC herstellen.
- Eine weitere Ethernet-Leitung am Internet-Port des WRT54G und einem anderen freien Anschluss des WRT54G anschließen. Dies simuliert eine Internet-Verbindung, so dass auf dem WRT54G die Konfigurationsseite mit dem "Ping-Test" funktioniert.
-
Starte nun Deinen Rechner neu. Auf dem Start-Textbildschirm des Rechners wird angezeigt, ob Du nun [F1], [F2] oder [Del] für das BIOS-Konfigurationsprogramm drücken musst (siehe Bild rechts). Es ist nötig, das CD-ROM-Laufwerk als Bootlaufwerk konfigurieren, damit Knoppix von CD-ROM gestartet werden kann. Das geht in der Regel unter "Erweiterte BIOS-Einstellungen" mit einem Menüpunkt ähnlich "First Boot Device". Danach das BIOS-Setup mit "Speichern" beenden.
Grafik anklicken für Zoom
Tipp: Für einige BIOS-Programme muss die Taste [z] für die Speicher-Bestätigung (engl.: "z" = "y") benutzt werden.
-
Lege nun die Knoppix-CD in das Laufwerk ein und starte Deinen Rechner nochmals. Nach kurzer Zeit sollte statt des gewohnten Betriebssytems der Knoppix-Startbildschirm angezeigt werden. Auf der Eingabezeile am besten "knoppix noscsi" eingeben (siehe Bild rechts). Dein Rechner hat höchstwahrscheinlich keine SCSI-Komponenten, und die SCSI-Treiber stürzen häufig bei der Auto-Hardware-Erkennung ab. Bestätige die Bootzeile mit [Ret]. Möglicherweise kann jetzt noch der Text-Modus ausgewählt werden. Überspringe dies mit zweimal [Ret].
Grafik anklicken für Zoom
Tipp: Drücke in der Bootzeile [F2] oder [F3], um eine kleine Hilfe zu der Bootzeile aufzurufen.
-
Wenn Knoppix gestartet ist, kannst Du eine Root-Eingabeaufforderung mit den vollen Administrator-Rechten aufrufen. Klicke in der Startzeile am unteren Bildrand den Pinguin an und wähle den Menüpunkt "Root Shell". In der Eingabeaufforderung den folgenden Befehle eingeben: "ping 192.168.1.1". Es müssen mehrere Antwort-Pakete angezeigt werden. Mit Ctrl-C abbrechen. Geht das nicht: Versuch die Ethernet-Karte selbst zu konfigurieren. Klicke den Pinguin und wähle im Menü "Netzwerk/Internet" den Befehl "Netzwerk-Karte konfigurieren". Wähle "Kein DHCP", eine IP-Adresse von "192.168.1.2", und bestätige die Vorgaben für "Netzwerk-Maske", "Broadcast-Adresse", "Default-Gateway" und "Nameserver". Versuche es dann noch mal. Falls es immer noch nicht klappt: Entferne eine vorhandene WLAN-Karte oder nimm eine andere Netzwerk-Karte.
Grafik anklicken für Zoom
Tipp: Auf Centrino-Noteboos wird die Centrino-WLAN-Karte ("eth0") von Knoppix mangels Treiber nicht zuverlässig betrieben. Die leitungsgebundene Netzwerk-Karte steht dann unter "eth1" zur Verfügung. Dekonfiguriere die Centrino-Karte mit dem Kommandozeilen-Befehl "ifconfig eth0 down" und konfiguriere die zweite Netzwerk-Karte.
- Irgendwo auf der Windows-Festplatte muss der Download von der Batbox gespeichert sein (siehe Punkt 1). Klicke nacheinander auf die Festplatten-Icons am linken Bildrand und suche die Datei wrt54g-0.5.tgz. Kopiere sie mit dem Dateimanager nach /tmp.
- Batbox aufsetzen (wieder in der Root-Eingabeaufforderung):
cd /tmp
Tipp: Die Eingabe von Befehlen und Verzeichnisnamen geht viel schneller, wenn Du nur einen Teil des Befehls/Verzeichnisnamen eingibst und mit der [Tab]-Taste dann die Vervollständigung des Namens befiehlst.
(Irgendwohin wechseln, wo Platz zum Schreiben ist)
wget http://www.batbox.org/wrt54g-0.51.tar.gz
(Optional: mein Knoppix-PC hat Internet - ich lade jetzt direkt)
tar xvzf wrt54g-0.5.tgz
(Die Batbox-Quellen auspacken)
cd wrt54g-0.5
(In das neue VZ wechseln)
./wrt54g.sh 192.168.1.1
(Kennwort eingeben, bei Grundkonfiguration="admin".
Nun wird die Batbox übertragen. Es dürfen keine
Fehler angezeigt werden. Falls Du eine andere IP oder ein
anderes Kennwort verwendest, den Befehl und die Kennwort-
Eingabe entsprechend ändern.)
telnet 192.168.1.1
(Wir schalten nun auf dem WRT54G um)
nvram get boot_wait
(Hier sollte "off" angezeigt werden)
nvram set boot_wait=on
nvram commit
(Bootwait muss eingeschaltet werden, damit später ein
Rettungsversuch über TFTP klappt)
reboot
(Ende der Sitzung)
OpenWRT kompilieren
Statt Knoppix kann natürlich auch jede andere Linux- Distribution verwendet werden. Es muss möglicherweise dann noch das eine oder andere Paket nachinstalliert werden. Bei Knoppix ist alles dabei.
- Lege die Knoppix-CD/DVD ein.
- Starte den Rechner neu. Auf dem Start-Textbildschirm wird angezeigt, ob Du nun [F1], [F2] oder [Del] für das BIOS-Konfigurationsprogramm drücken musst.
- Du musst das CD-ROM-Laufwerk als Bootlaufwerk konfigurieren. Das geht in der Regel unter "Erweiterte BIOS-Einstellungen". Danach das BIOS-Setup mit "Speichern" beenden.
- Beim nächsten Start des Rechners sollte statt Windows das Knoppix von CD starten. Es wird ein Startbildschirm und eine Kommandozeile angezeigt.
- Gib ein: "knoppix noscsi" [Ret]. SCSI-Geräte hat heute kaum noch jemand und die Hardware-Autoerkennung streikt öfters. Nach einer Weile sollte die Knoppix-Oberfläche angezeigt werden.
- Jetzt kommt der komplizierte Teil: Du benötigst jetzt den
Internet-Zugriff unter Knoppix. Betreibst Du den PC in einem
Internet-tauglichem Netzwerk, ist alles bereits eingerichtet. Andernfalls
klick den Pinguin an (unten in der Startleiste) und versuche Dich an
Modem/ISDN/Netzwerk-Installation. Klick das Steuerrad an (Konqueror-Browser)
und versuche zu "http://www.google.de/" zu surfen. Klappt das gar nicht,
kannst Du immer noch folgende Alternativen probieren:
- Über Festplatte:
- Download der benötigten Dateien unter Windows. Speichern z.B. auf C:\TMP. Der Zugriff erfolgt dann unter Knoppix über die Harddisk-Icons auf dem Desktop.
- Über USB-Stick:
- Download der Dateien über einen zweiten Windows-PC. Speichern auf einen USB-Stick. USB-Stick auf den Knoppix-Rechner einstecken. Der Zugriff erfolgt dann über das Harddisk-Icon was nach dem Einstecken automatisch auf dem Desktop angezeigt wird.
- Richte eine neue virtuelle Festplatte zum Kompilieren ein. Starte eine
Root-Kommandozeile und gib ein:
cd /mnt;ls
(In diesem VZ sind die Mount-Punkte für alle Platten/CDs)
mount hda3
(Bei mir ist die Windows-Platte C: auf 3.Partition: hda3)
ls hda3
(Erst mal sehen, ob wir die richtige Partition erwischt
haben. Bei mir gibt es dort ein C:\TMP, das als "tmp"
angezeigt wird.)
cd hda3/tmp;ls
(In das Windows-Verzeichnis wechseln)
dd if=/dev/zero of=linux.dsk bs=1000000 count=1000
(Erzeuge 1 Mb grosse leere Datei im C:\TMP, dient als
virtuelle Disk wo eine neue WRT54G-Firmware erstellt wird)
mke2fs linux.dsk
(Erzeuge ein Linux-Dateisystem in der neuen Datei.
Die Abfrage mit "y" [ret] bestätigen!)
mkdir /mnt/mnt
(Neues VZ anlegen)
mount -o loop linux.dsk /mnt/mnt
(Die virtuelle Disk in das Dateisystem einhängen)
wget http://openwrt.org/cgi-bin/\
viewcvs.cgi/buildroot/buildroot.tar.gz
(Herunterladen der ersten Archivdatei. Sie enthält die
ersten Quelldateien für OpenWRT. Bitte entweder den
Rückwärts-Schrägstrich mit eingeben oder den Umbruch in
der Befehlszeile löschen!)
cd /mnt/mnt;ls
(In diesem VZ steht "lost+found" und sonst ist die Disk leer)
tar xvzf /mnt/hda3/tmp/buildroot.tgz
(Die gerade geladenen Quelltexte auspacken) - Ab hier ist es einfach. Weil ich von einem früheren Kompilier-Lauf noch
die heruntergeladenen Dateien auf C:\TMP\sources-dl gespeichert habe,
benutze ich einen Link, damit die Dateien nicht noch mal heruntergeladen
werden.
cd buildroot
(Das Verzeichnis wurde durch das Auspacken
des Quellarchivs angelegt)
cd sources
(Hier wir beim Download ein Verzeichnis
"dl" mit den Dateien angelegt)
ln -s /mnt/hda3/tmp/sources-dl dl
(Ich habe schon alles und mache mir einen Link darauf)
cd ..
(Wieder in ./buildroot/)
make
(Das dauert jetzt, je nach Rechner eine Stunde oder mehr.
Wenn etwas fehlt, dann wird es aus dem Internet geladen.
Insbesondere die Quelldaten von Linksys dauern, es sind
immerhin 150 Mb)
ls *.bin
(Hier erwarten wir "openwrt-g-code.bin",
die neue Firmware-Datei. Die muss auf den WRT54G.)
OpenWRT-Firmware aufspielen
Ich bin faul: Die OpenWRT-Konfiguration kann man schon ganz gut mit der Original-Firmware vorbereiten. Die praktische Weboberfläche gibt es nämlich unter OpenWRT nicht. Mein WRT54G soll auf die IP- Adresse 104.65.65.97 hören und die ESSID "mitte.freifunk.net" haben. Wenn alles eingerichtet ist, kann die OpenWRT-Firmware draufgespielt werden. Ich benutze dazu nicht die Web-Oberfläche, sondern mache es auf die TFTP-Weise.
Vorbereitung
Die Netzwerk-Karte des PC muss auf 192.168.1.2 gesetzt werden. Der WRT54G lauscht beim Start immer auf 192.168.1.1, ob eine Firmware über TFTP eingespielt wird. Auf der Kommandozeile kann dies mit "ifconfig eth0 192.168.1.2" erreicht werden.
Achtung! Die Zeit, in der das passiert ist viel zu kurz (ca. 0,5 Sekunden) und muss vorher mit "boot_wait=on" verlängert werden (siehe oben)!
Firmware aufspielen
- Start von tftp.
ifconfig eth0 192.168.1.2
(Die Netzwerk-Karte des PC passend einrichten)
cd /mnt/mnt/buildroot
(Dahin wechseln, wo die neue Firmware-Datei steht)
tftp 192.168.1.1
(Ruft TFTP auf. Die IP-Adresse ist hart verdrahtet. Wenn
der WRT54G neu startet, wir bei "boot_wait=on" auf der
192.168.1.1 für ca. 5 Sekunden auf einen TFTP-Transfer
gewartet.)
binary
rexmt 1
(Mit diesen TFTP-Kommandos das Programm einrichten)
put openwrt-g-code.bin (Aber noch kein [Ret]!)
(Jetzt: WRT54G ausschalten, und wieder einschalten.
Sobald die Netzwerk-Karten LED aufleuchtet [ret] drücken) - Jetzt beten! (Warten bis die Power-LED aufhört zu blinken)
- Ab hier hört der WRT54G wieder auf die eingerichtete IP-Adresse. Darum
konfiguriere ich die Netzwerk-Karte nochmals um.
ifconfig eth0 104.65.65.98
telnet 104.65.65.97
(Wenn alles klappt, wird die Kommandozeile auf dem
WRT54G angezeigt)
Wenn es mal nicht klappt
Wenn eine neuere Version von OpenWRT aufgespielt wird oder wenn man sich OpenWRT verkonfiguriert hat (z.B. eine wichtige Konfigurationsdatei gelöscht) dann passiert folgendes:
- Per TFTP spielt man eine neue openwrt-g-code.bin ein (die wird im der schreibgeschützten "cramfs"-Partition geschrieben)
- Die alten Konfigurationsdaten liegen in einer jffs2-Partition, die beim Firmware-Upgrade nicht überschrieben wird.
- Wenn jetzt der Boot mit der neuen FW schief geht, folgendes tun:
- WRT54G neu starten
- Warten bis die DMZ-Leuchtdiode angeht
- Reset-Taste drücken für etwa 5 Sekunden. Die vorhandene jffs2-Partition wird ignoriert und OpenWRT startet in der Default-Konfiguration. Die DMZ-Leuchtdiode geht wieder aus
- Nun die Netzwerk-Karte des PC umkonfigurieren: "ifconfig eth0 192.168.1.2".
- Dann "telnet 192.168.1.1" eingeben und weiter mit "firstboot" und "reboot".
Weiter: OpenWRT konfigurieren
Vorbereitung: Das komplette Verzeichnis mit allen Dateien von http://openwrt.org/ipkg/ auf die Festplatte speichern, z.B. nach C:\TMP\ipkg. So geht das unter Knoppix:
cd /mnt/hda3/tmp
(Wechseln in das C:\TMP auf der Windows-Festplattenpartition)
wget -nH -r --no-parent http://openwrt.org/ipkg/
(Keine Kopie des Verzeichnisses auf der Webseite im aktuellen
Verzeichnis ablegen)
0. Die Erstkonfiguration erledigen. Rufe eine Befehlszeile auf und gib ein:
telnet 192.168.1.1
(Dieser Befehl ruft die Kommandozeile auf dem
WRT54G auf. Falls Du eine andere IP auf dem WRT54G
verwendest, musst Du evt. erst auch die PC-Netzwerk-
Karte umkonfigurieren. Das geht bei mir mit
"ifconfig eth0 104.65.65.98". Ich muss dann
auch ein "telnet 104.65.65.97" eingeben)
firstboot
(Formatiert die jffs2-Partition und setzt Links auf die
Read-Only-Partition)
reboot
(Die Verbindung zum WRT54G wird beendet und es wird wieder
die Kommandozeile auf Deinem Rechner angezeigt.)
Hinweis: Ab jetzt läuft der DHCP-Server von OpenWRT. Dieser konfiguriert die Netzwerk-Karte des PCs? automatisch, wenn man den PC neu startet.
- Den Knoppix-Webserver starten. Gib ein: "/etc/init.d/apache start".
- Die heruntergeladenen *.ipk-Paketdateien veröffentlichen.
cd /var/www
(Dort hat Knoppix sein Web-Root)
ln -s /mnt/hda3/tmp/ipkg ipkg
(Einen Link auf die von http://openwrt.org/ipkg/
heruntergeladenen Pakete setzen) - Ausprobieren, ob die Veröffentlichung auf dem Web-Server funktioniert:
telnet 104.65.65.98 80
(Wir rufen manuell eine Webseite ab. Als IP gib natürlich
die IP Deines eigenen Rechners an)
GET /ipkg/
(Dies sollte das Verzeichnis mit den Pakten anzeigen) - Nun das erste Paket installieren und die /etc/ipkg.conf von OpenWRT
bearbeiten:
telnet 104.65.65.97
(Falls dein WRT54G eine andere IP hat,
musst Du nun auch diese angeben)
cd /etc
(In das Verzeichnis auf dem WRT54G wechseln, in dem die
Konfigurationsdateien gespeichert sind)
rm ipkg.conf
cp /rom/etc/ipkg.conf .
(Die Konfigurationsdatei beschreibbar machen. Den Punkt
am Ende der Befehlszeile nicht vergessen!)
vi ipkg.conf
(Bearbeite diese Textdatei. [i] drücken für Insert-Modus.
Nun funktioniert das Eingeben und Löschen von Zeichen.
Die Zeile mit "http://openwrt.org/" ändern in
"http://104.65.65.98/" ändern bzw. auf die IP des Deines
Web-Servers ändern. Drücke [esc] für den VI-Kommando-Modus.
Dann ":wq" und [ret] um VI zu verlassen. Verlassen ohne
Speichern mit ":q!" [ret] und löschen einer Zeile mit
[d][d] im Kommando-Modus.) - Ipkg einrichten und den SSH-Klient "dropbear" installieren. SSH ist eine
sichere Form von Telnet und ich emfehle dringend die Verwendung von SSH zur
Verwaltung des WRT54G.
ipkg update
(Holt die Packages-Datei vom Deinem Web-Server. Sollte
hier eine Fehlermeldung angezeigt werden, überprüfe die
IP-Adressangabe in /etc/ipgk.conf)
ipkg install dropbear
(Installiert das Paket mit dem SSH-Server. Dabei wird
auch das neue Kennwort für eine SSH-Verbindung abgefragt.)
cd /etc/init.d
(Wechsel in das Start-Konfigurations-Verzeichnis)
rm S50services
cp /rom/etc/init.d/S50services .
(Diese Datei beschreibbar machen)
vi S50services
(Hinter der Zeile "telnetd" eine neue Zeile mit
"/usr/bin/dropbear" einbauen. Beim Neustart des
WRT54G wird diese Skript-Datei abgearbeitet. Mit
[esc]:wq[ret] die Änderungen speichern.)
reboot
(Du landest wieder auf Deinem Rechner)
ssh 104.65.65.97
(Nach dem Reboot eine SSH-Verbindung aufbauen. Das
sollte nun funktionieren. Die Abfrage mit "yes"
beantworten. Hattest Du schon früher eine SSH-
Verbindung zu dieser IP musst Du evt. auf Deinem
Rechner die Datei ~/.ssh/authorized_keys bearbeiten
und zunächst den alten Schlüsseleintrag entfernen.)
cd /etc/init.d;vi S50services
(SSH hat geklappt. Bearbeite diese Datei und trage
ganz am Anfang der "telnetd"-Zeile ein "#"-Zeichen
ein. Damit ist der Telnet-Zugang nach dem nächsten
Neustart des WRT54G nicht mehr vorhanden.)
Und jetzt?
Jetzt habe ich keine Zeit mehr weiterzuschreiben. Als nächstes steht bei mir folgendes auf der Liste:
- Einrichten des Modem-Notzugangs via serieller Schnittstelle.
- Einrichten des OLSR-Programms für die Verbindung zum HDL und anbinden
meines WAP54G-AP. Ein IPK dafür gibt es unter http://www.wildcatwireless.net/wrt54g/.
Eine IP-Adresse um am BBB (Berlin-Back-Bone) teilzunehmen habe ich unter
http://olsr.freifunk.net/
eingetragen. Ein erster Test mit OLSR funktionierte mit folgender
Skript-Datei, die ich unter
/usr/bin/connect-olsrgespeichert habe:#!/bin/sh
WLDEV=eth1
ESSID=olsr.freifunk.net
test -n "$1" && IPADR=$1
test -n "$IPADR" && exit
brctl delif br0 $WLDEV
wl ap 0
wl scan
echo Scanning for $ESSID...
sleep 5
#wl scanresults
wl join $ESSID
sleep 1
wl status
ifconfig $WLDEV $IPADR
iptables -F
iptables -t nat -F
#iptables -t nat -A POSTROUTING -s ! 104.0.0.0/8 -j MASQUERADE
olsrd - Evt. Einrichten von NoCatSplash um das Pico-Peering-Agreement zu publizieren.
- Schau doch einfach auf die Seite OpenWRT fuer WAP54G, da habe ich ganz am Ende das Einrichten des OLSR-Daemons für ein ähnliches Gerät schon beschrieben. Du musst allerdings die Befehle "brctrl delbr br0" -> "brctrl delif eth" und du benötigst nur einen "ifconfig eth1 104.x.x.x" weil auf dem WRT54G das WLAN-Interface eben eth1 ist...
Siehe Auch
- Eine kurze Übersicht über Hersteller und freie Projekte, die Linux Firmware-Images für verschiedene Access Points anbieten - LinuxAufDemAccessPoint
- Linksys WRT54G
- Freifunk Firmware
Freifunk Firmware (English)
- Linksys WRT54G Installation besserer Firmware
- Linksys WRT54G Konfiguration der Freifunk Firmware
- OLSR mit Windows

- Konfiguration Freifunk Firmware
- IP Grundwissen

- OpenWRT fuer WAP54G

Weblinks
- Liste der OpenWRT Pakete, http://openwrt.org/OpenWrtPackages
- PuTTY - Windows SSH-Klient (OpenSource? Freeware), http://putty.obengelb.de
- NetStumbler - Windows WLAN-Scanner (Freeware), http://www.stumbler.net
Dieses Werk ist unter einer Creative Commons
Lizenz lizensiert.
20.1.2005, erstellt von Sven-Ola


