How to install DD-WRT on a Fonera box: Unterschied zwischen den Versionen

Aus DL8RDS Wiki
Wechseln zu: Navigation, Suche
(Der Serial Port)
(Flashen)
Zeile 67: Zeile 67:
  
 
=== Flashen ===
 
=== Flashen ===
Jetzt kommt
+
Jetzt kommt der spannendste Teil, der ziemlich viel Zeit verschlingt, aber wo man wenig tun muß:
 +
 
 +
* Die bestehende Konfiguration löschen
 +
* Das RedBoot netzwerkfähig konfigurieren
 +
* Die neue Firmware auf den Fonera runterladen und installieren (dauert!!!)
 +
* Die Boot-Reihenfolge setzen
 +
 
 +
Die aktuelle Config löschen mit:
 +
 
 +
fis init
 +
 
 +
Und einfach immer "y" eingeben. Warten!!!!!! Die Shell muß zurückkommen!
 +
 
 +
Das RedBoot netzwerkfähig machen mit:
 +
 
 +
ip_address -l 192.168.1.100/24 -h 192.168.1.20
 +
 
 +
wobei die 192.168.1.100 die IP-Adresse des Routers ist und die 192.168.1.20 nun die IP eures Rechners. Beide Rechner sollten im selben Netzwerksegment stehen. Die Router-IP ist nicht dauerhaft und wird nur für BIOS-Zwecke benötigt. Später ist sie egal!!!!
 +
 
 +
Das Herunterladen der Firmware geht mit TFTP, aber auch mit einem Webserver. Ich bevorzuge die Variante mit dem Webserver.
 +
 
 +
==== TFTP ====
 +
Auf dem PC starten wir nun den TFTP-Agent:
 +
 
 +
cd (in das Verzeichnis, in dem die Datei "linux.bin" liegt)
 +
tftp 192.168.1.100
 +
tftp> binary
 +
tftp> trace
 +
tftp> put linux.bin
 +
 
 +
und gleichzeitig geben wir auf der Fonera-Box folgenden Befehl ein:
 +
 
 +
RedBoot> load -r -v -b 0x80041000 linux.bin
 +
 
 +
Das müßte recht schnell gehen.
 +
 
 +
Using default protocol (TFTP)
 +
Raw file loaded 0x80041000-0x802e3fff, assumed entry at 0x80041000
 +
 
 +
Und jetzt befindet sich das Firmware-Image im RAM und muß noch in das Flash geschrieben werden. Flash-Chips sind bei Schreibvorgängen nicht so schnell, daher: Geduld!!
 +
 
 +
Folgendes eingeben und waaaarten!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 
 +
RedBoot> fis create linux
 +
 
 +
Der Router antwortet mit folgender Ausgabe:
 +
 
 +
... Erase from 0xa8030000-0xa82f0000: ............................................
 +
... Program from 0x80041000-0x80301000 at 0xa8030000: ............................................
 +
... Erase from 0xa83e0000-0xa83f0000: .
 +
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .
 +
 
 +
Das dauert wirklich eine Ewigkeit. Aber nicht verzagen! Solange die Pünktchen kommen, solange paßt alles.
 +
 
 +
==== Webserver ====
 +
Hier starten wir einen Apache und legen die Datei "linux.bin" in das Document Root.
 +
 
 +
Mit einem Browser können wir noch mal verifizieren, ob sie dort auch wirklich erreichbar ist:
 +
 
 +
http://192.168.1.20/linux.bin
 +
 
 +
Wohl gemerkt, 192.168.1.20 ist die IP unseres PCs. Wenn ihr eine andere IP habt, bitte dann jeweils diese verwenden.
 +
 
 +
Auf dem Router folgendes eingeben:
 +
 
 +
RedBoot> load -r -b 0x80041000 -m http -h 192.168.1.20 /linux.bin
 +
 
 +
Jetzt haben wir das Image im RAM und müssen es nur noch ins Flash speichern. Hier kommt dieselbe Prozedur wie zuvor beschrieben:
 +
 
 +
RedBoot> fis create linux
 +
 
 +
... das dauert... Und wenn der Prompt wieder da ist, können wir das RedBoot konfigurieren.
 +
 
 +
=== Boot-Reihenfolge setzen ===
 +
asd

Version vom 23. Dezember 2009, 05:59 Uhr

Hier gibt es eine kurze Beschreibung, wie man DD-WRT auf einer Fonera-Box installiert, um damit eine HAMNET-kompatible Linkstrecke aufzubauen.

Vorweg eine kleine Anmerkung: Wer mit Windows arbeitet, macht sich das Leben unnötig schwer. Mit Windows läßt sich gut Ballerspiele spielen, in Web surfen und kurze Briefchen schreiben. Wer sich ernsthaft mit Informatik beschäftigt, sollte auf ein Betriebssystem umsteigen, das dem User auch tatsächlich die vollständige Kontrolle über die Hardware gibt.

Ich gehe in diesem Artikel davon aus, daß der Leser damit vertraut ist, wie man einen TFTP-Server oder einen Webserver auf seinem Rechner installiert und betreibt. Unter Windows könnte das eine gewisse Schwierigkeit darstellen... Was aber nicht an den Windows-Usern liegt, sondern daran, daß dieses Betriebssystem den Usern den Blick auf die Analytik vernebelt.

1 Hardware

Benötigt wird:

  • eine Fonera-Box, die gibts bei Ebay für ca 10-15 Euro. Vorzugsweise die Board-Variante 2100A!
  • ein LevelShifter für 3,3V, den gibts bei Watterott für ca 11 Euro: http://www.watterott.com/FTDI-Basic-Breakout-33V
  • ein paar Drähte
  • optimalerweise ein Linux-Rechner

2 Software

  • Eine Terminal-Emulation, Minicom ist gut. Unter den neuen Windows-Systemen gibt es ja sowas gar nicht mehr. Früher gab es mal "Hyperterm".
  • Einen Webserver, alternativ einen TFTP-Server.
  • das Image von DD-WRT:
    • http://www.dd-wrt.com/site/support/router-database
    • "fonera" eingeben. Wir gehen davon aus, daß wir ein 2100A haben.
    • Wir wählen den Build 12533. In Zukunft wird man wohl auch jüngere Builds nehmen können, aber die Praxiserfahrung eines professionellen Informatikers sagt, daß man lieber nicht die allerneueste Software verwenden sollte.
    • Jetzt laden wir das File "linux.bin" herunter.
    • Und wir öffnen noch das File mit den Flash-Anweisungen. Das ist nämlich sehr nützlich.

3 Installation

3.1 Der Serial Port

Zuerst müssen wir an den Serial Port ran. Dazu müssen wir das Gehäuse öffnen. Auf der Unterseite des Fonera-Gehäuses befinden sich kleine gummierte Standfüße. Die zupfen wir mit einer kleinen Zange oder auch mit den Fingernägeln einfach weg. Sie sind nur angeklebt, es sollte recht einfach gehen.

Unter zweien befindet sich je eine kleine Schraube. Die schrauben wir auf.

Es kommt das Board zum Vorschein, und wir sehen auch gleich einen Pinout-Anschluß für den seriellen Port, die Stifftleiste. Das folgende Bildchen zeigt die Belegung, vom Rand des Boards aus gesehen: FoneraSerialPort.jpg

Den Vcc-Anschluß brauchen wir nicht, da der Programmer von Watterott über USB mit Spannung versorgt wird. Falls man einen LevelShifter selber baut, kann man ihn über den Vcc-Anschluß mit Spannung versorgen. Aber die 11 Euro sind wirklich gut investiert, so billig kann man selbst gar nicht arbeiten.

Beim Watterott-Levelshifter achten wir darauf, den RX-Ausgang mit dem RX-Pin, den TX-Ausgang mit dem TX-Pin und GND miteinander zu verbinden. Ich habe ein kleines Steckbrett genommen, aber jeder kann das machen wie er das für praktisch hält. Man braucht nur diese drei Kontakte.

3.2 Die Term-Emu

Nun brauchen wir eine Terminal-Emulation. Mit Minicom stelle man den serial Port ein, je nach Lage: /dev/ttyS0, /dev/ttyS1 oder /dev/ttyUSB0 oder wie auch immer. Die Default-Einstellung ist 9600 Baud/s und 8N1. Dann stecken wir das Netzteil in den Fonera ein und warten.

Daß das Gerätchen bootet, sollten wir mit einem "+..." sehen können. Irgendwann kommt dann die Redboot-Zeile und dann haben wir mit Ctrl-C die Möglichkeit, den Bootvorgang abzubrechen. Achtung: Man hat nur 1 Sekunde dazu Zeit! Aber wenn wir das Sekündlein nicht verpennen, sind wir quasi im "BIOS". Nur eben, daß es hier anders heißt, nämlich "RedBoot".

+PHY ID is 0022:5521
Ethernet eth0: MAC address xx:xx:xx:xx:xx:xx
IP: 0.0.0.0/255.255.255.255, Gateway: 0.0.0.0
Default server: 0.0.0.0

RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version v1.3.0 - built 16:57:58, Aug  7 2006

Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.

Board: ap51
RAM: 0x80000000-0x81000000, [0x80040450-0x80fe1000] available
FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.
== Executing boot script in 1.000 seconds - enter ^C to abort

== Executing boot script in 1.000 seconds - enter ^C to abort

== Executing boot script in 1.000 seconds - enter ^C to abort
^C
RedBoot> ^C
RedBoot> ^C
RedBoot>


Mit "help" kann man sich ein bisserl umsehen, aber das braucht man eigentlich nicht. Es geht gleich mit der Installation weiter.

3.3 Flashen

Jetzt kommt der spannendste Teil, der ziemlich viel Zeit verschlingt, aber wo man wenig tun muß:

  • Die bestehende Konfiguration löschen
  • Das RedBoot netzwerkfähig konfigurieren
  • Die neue Firmware auf den Fonera runterladen und installieren (dauert!!!)
  • Die Boot-Reihenfolge setzen

Die aktuelle Config löschen mit:

fis init

Und einfach immer "y" eingeben. Warten!!!!!! Die Shell muß zurückkommen!

Das RedBoot netzwerkfähig machen mit:

ip_address -l 192.168.1.100/24 -h 192.168.1.20

wobei die 192.168.1.100 die IP-Adresse des Routers ist und die 192.168.1.20 nun die IP eures Rechners. Beide Rechner sollten im selben Netzwerksegment stehen. Die Router-IP ist nicht dauerhaft und wird nur für BIOS-Zwecke benötigt. Später ist sie egal!!!!

Das Herunterladen der Firmware geht mit TFTP, aber auch mit einem Webserver. Ich bevorzuge die Variante mit dem Webserver.

3.3.1 TFTP

Auf dem PC starten wir nun den TFTP-Agent:

cd (in das Verzeichnis, in dem die Datei "linux.bin" liegt)
tftp 192.168.1.100 
tftp> binary
tftp> trace
tftp> put linux.bin

und gleichzeitig geben wir auf der Fonera-Box folgenden Befehl ein:

RedBoot> load -r -v -b 0x80041000 linux.bin

Das müßte recht schnell gehen.

Using default protocol (TFTP)
Raw file loaded 0x80041000-0x802e3fff, assumed entry at 0x80041000

Und jetzt befindet sich das Firmware-Image im RAM und muß noch in das Flash geschrieben werden. Flash-Chips sind bei Schreibvorgängen nicht so schnell, daher: Geduld!!

Folgendes eingeben und waaaarten!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

RedBoot> fis create linux

Der Router antwortet mit folgender Ausgabe:

... Erase from 0xa8030000-0xa82f0000: ............................................
... Program from 0x80041000-0x80301000 at 0xa8030000: ............................................
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .

Das dauert wirklich eine Ewigkeit. Aber nicht verzagen! Solange die Pünktchen kommen, solange paßt alles.

3.3.2 Webserver

Hier starten wir einen Apache und legen die Datei "linux.bin" in das Document Root.

Mit einem Browser können wir noch mal verifizieren, ob sie dort auch wirklich erreichbar ist:

http://192.168.1.20/linux.bin

Wohl gemerkt, 192.168.1.20 ist die IP unseres PCs. Wenn ihr eine andere IP habt, bitte dann jeweils diese verwenden.

Auf dem Router folgendes eingeben:

RedBoot> load -r -b 0x80041000 -m http -h 192.168.1.20 /linux.bin

Jetzt haben wir das Image im RAM und müssen es nur noch ins Flash speichern. Hier kommt dieselbe Prozedur wie zuvor beschrieben:

RedBoot> fis create linux

... das dauert... Und wenn der Prompt wieder da ist, können wir das RedBoot konfigurieren.

3.4 Boot-Reihenfolge setzen

asd