D-Link DIR-300

Aus Freifunk Kiel
Zur Navigation springen Zur Suche springen

Der D-Link DIR-300 ist ein günstiges Einsteiger-Gerät, das leider nicht ganz einfach konfigurierbar ist. Einige Zeit wurden die von verschiedenen DSL-Anbietern als Standard-Gerät Neukunden gegeben. Jetzt findest Du die für 10-20,- EUR zum Beispiel bei Ebay.

Folgende Beischreibung bezieht sich auf Linux als Betriebssystem. Am einfachsten benutzt Du ein Laptop zur Arbeit mit dem Router Du kannst dann einfacher zwischen LAN und WLAN hin und her wechseln.

Außerdem solltest Du diese Seite bereits geöffnet haben, wenn Du loslegst, denn zwischendurch wirst Du kein Internet am Rechner haben.

Vorbereitung

Du brauchst:

  • Deinen D-Link Router
  • Stromversorgung für den Router
  • ein LAN-Kabel

Dann:

  1. Der Router lässt sich nur ausschalten, wenn man den Stecker aus dem Router zieht. Steck deswegen das Stromkabel in die Steckdose, aber noch nicht in den Router.
  2. Verbinde den Internet-Port (WAN) des Routers per LAN-Kabel mit Deinem Laptop

TFTP installieren

Um OpenWRT auf den Router zu bekommen, kannst Du es per Telnet und TFTP übertragen. Telnet ist in der Regel schon installiert. Das Trivial File Transfer Protocol (TFTP) ist ein sehr einfaches Dateiübertragungsprotokoll, dass nur das Lesen oder Schreiben von Dateien unterstützt.

Installiert TFTP im Terminal:

sudo apt-get install tftpd-hpa

Software herunterladen

Wechsel ins TFTP-Verzeichnis:

cd /var/lib/tftpboot

Lade die nötige Software herunter:

sudo wget http://www.dd-wrt.com/dd-wrtv2/downloads/v24/Atheros%20WiSoc/Airlink%20101%20AR430W/ap61.ram
sudo wget http://www.dd-wrt.com/dd-wrtv2/downloads/v24/Atheros%20WiSoc/Airlink%20101%20AR430W/ap61.rom
sudo wget http://freifunk.tumelum.de/experimentell/atheros/openwrt-atheros-vmlinux.lzma
sudo wget http://freifunk.tumelum.de/experimentell/atheros/openwrt-atheros-root.squashfs

Stelle sicher, dass die Daten für den TFTP-Daemon lesbar sind:

chmod a+r ap61* openwrt*

.telnetrc anlegen

Leg in Deinem Homeverzeichnis eine Datei mit dem Namen .telnetrc an und schreibe hinein:

192.168.1.1
        mode line 

192.168.20.81
       mode line

IP umschalten

Der Router wird gleich unter 192.168.20.81 zu erreichen sein. Entsprechend stellst Du die IP für Deinen Rechner auf 192.168.20.80. Hier am besten unter Linux immer mit Interface-Aliases arbeiten, d.h.

sudo ifconfig eth0:1 192.168.20.80

Da manche Interfaces nachdem ein Link da ist (z.B. beim Reboot des Routers) einige Sekunden brauchen, bis sie wieder da sind, ist es manchmal besser, einen kleinen Switch dazwischen zu haben. Achte bitte darauf, dass in dem dann aufgebauten Netz kein DHCP-Server läuft (z.B. von Deinem Internet-Router), ansonsten kann es beim Flashen später zu Problemen kommen.

Firmware des Bootloaders verändern

Damit wir unsere eigene Firmware auf den Router bringen können, muss zunächst der Bootloader des Routers aktualisiert werden.

Verbinde hierzu den Router mit dem Netzteil und warte dann ca. 5 Sekunden (bei den meisten Routern siehst Du einen "Countdown", bei dem die LEDs an der Vorderseite nacheinander aufblinken), bevor Du den folgenden Befehl ausführst:

telnet 192.168.20.81 9000

Du bekommst dann mit ein wenig Glück und dem richtigen Timing die folgende Anzeige:

RedBoot>

Führe dann die folgenden Befehle aus:

Redboot> load ap61.ram
Redboot> go

Jetzt musst Du Deinem Rechner eine zusätzliche IP-Adresse vergeben:

ifconfig eth0:2 192.168.1.10

Dann steckst Du das LAN-Kabel vom WAN-Anschluss des Routers an einen der LAN-Ports und führst den folgenden Befehl aus:

 telnet 192.168.1.1 9000

Es kann sein, dass Du durchaus einige Minuten warten musst, bevor dieser Befehl funktioniert.

Letzendlich solltest Du dann die folgende Anzeige bekommen:

DD-WRT>

Und dann wird es etwas kryptisch. Im folgenden siehst Du die Befehle, die Du eintippen musst:

DD-WRT>fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x807f0000-0x80800000 at 0xbffe0000: .

DD-WRT>ip_address -h 192.168.1.10
IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.10

DD-WRT>load -r -b %{FREEMEMLO} ap61.rom
Using default protocol (TFTP)
Raw file loaded 0x80080000-0x800a8717, assumed entry at 0x80080000

DD-WRT>fis create -l 0x30000 -e 0xbfc00000 RedBoot
An image named 'RedBoot' exists - continue (y/n)? y
... Erase from 0xbfc00000-0xbfc30000: ...
... Program from 0x80080000-0x800a8718 at 0xbfc00000: ...
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x807f0000-0x80800000 at 0xbffe0000: .

DD-WRT>fconfig bootp false
bootp: Setting to false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . 
DD-WRT>reset

Der Router startet neu. Nachdem ca. 5s nach dem Reboot (den korrekten Zeitpunkt erkennst Du an den nacheinander aufblinkenden LEDs), führst Du dann wieder den folgenden Befehl aus: