Router-modding

Welche Motivation hat man, um einen WLAN-Router zu modden?

Weil man wo anders einen solchen Router gesehen hat und ebenfalls so einen erweiterten Router haben möchte.
Der typische ‘So ein tolles Ding will ich auch haben!‘ ´ Effekt.
Dabei geht es im wesentlichen um einen Kommandozeilenzugang zur Betriebssoftware des Gerätes und um die Möglichkeit mehr Daten zu speichern.

img_20160815_130254 Und wie kommt man an so einen tollen Router? Da gibt es zwei Möglichkeiten. Die eine wäre man kauft sich einen fertig umgebauten Router übers Internet, allerdings ist das sehr wenig ratsam da man die Katze im Sack kauft, weniger Spaß und keinem Know-How-Gewinn hat.

Die andere ist, den Router selber umzubauen. Dazu bietet sich das eLAB beim IN-Berlin e.V. an, die Vorteile liegen auf der Hand: Werkzeuge sind vorhanden und erfahrene Leute, die man um Rat und Hilfe fragen kann sind auch dort.

Verwendete Materialien:

Einen WLAN-Router von Linksys WRT54GL Version 1.1 für den es Möglichkeiten und Anleitungen gibt.
Ein SD-Karten-Leser aus der Arduino Welt.
Ein TTL Modul für die Wandlung der Seriellen Schnittstelle auf USB.
Kabel und Stecker, Draht und Lötzinn … und ein paar Schräubchen.

Der serielle Anschluß ist auf der Platine des Routers bereits vorhanden, für werksseitige Konfigurationen und Tests. Jedoch ist er nicht nach außen geführt.
Abweichend von den häufigsten Anleitungen im Netz, haben wir keinen alten DB-9 Stecker verwendet sondern ein Modul aus der Arduino Welt, welches die seriellen Signale auf USB wandelt. Diese werden auch unter dem Namen “FTDI-Friend” gehandelt. Ein COM port (die Serielle Schnittstelle, RS232) ist heutzutage kaum noch anzutreffen in Gegensatz ist dazu USB wirklich überall verfügbar. Das serielle Signal des Routers wird dabei auf USB gewandelt. Im daran angeschlossenen Rechner gibt es einen Treiber, der diese USB-Daten dann an einer virtuellen „Seriellen Schnittstelle“ zur Verfügung stellt. Auf diese Weise kann man dann mit Programmen, z.B. einem einfachen Terminal-Emulator, auf die Router-Software zugreifen.
dsc_7516

Mit dem seriellen Zugang kommt man direkt auf die Kommando-Ebene des Linux Betriebssystems, kann Konfigurationen ändern, Logfiles lesen und den Betrieb kontrollieren.

Das SD-Kartenmodul gibt es für wenig Geld aus der Microcontroller-Welt. Die SD-Karten werden über eine SPI-Schnittstelle angesprochen. SPI steht für Serial-Periferal-Interface welches mit wenigen Pins auskommt die einfach an vier GPIO Leitungen angeschlossen werden. Aus der Anleitung geht hervor, welche GPIO-Leitung wo auf der Router-Platine zu finden sind und mit welchen Signalpins sie verbunden werden müssen, damit die vorhandene Library das Modul richtig anspricht.
Dadurch wird dem Router Memory einer SD-Karte in Form eines Block-Devices zur Verfügung gestellt, angesprochen wird sie wie eine Disk.Die SD-Karte kann somit sowohl in der Kommandozeile als Blockdevice gemounted werden, als auch unter DDWRT über das GUI dem System zugeschaltet werden. Die Anschlüsse für das SD Kartenlesegerät und Seriellen Anschluss waren nur als verschlossene Lötstellen vorhanden, welche erst frei gemacht werden mussten.
Im nächsten Schritt wurden Kontakt Pins darin verlötet, auf welche man Steckkontakte aufstecken kann.

Ursprünglich lief auf den Router ein Linux System von Hersteller Seite, da diese Software allerdings in ihrer Funktionalität recht eingeschränkt ist. Diese wurde durch eine andere Linux Software ersetzt, welche viel mehr Funktionen bietet, als die Original Software bei gleicher Hardwarebasis. An dieser Stelle hat ein erfahrer Basteler die Wahl zwischen zwei alternativen Software Packten, welche er auf den Router installieren kann.

Die eine wäre das DDWRT Projekt, welche eher den bequem GUI-User anspricht, also hauptsächlich eine Konfiguration per Browser-Dialoge.
Und die andere wäre das OpenWrt Projekt, welches mehr per Kommandozeile und weniger über den Browser bedient wird.

Welche Vorteile hat so ein gemoddeter Router?
Über die Serielle USB Schnittstelle kann man direkt auf den Router zugreifen und Linux Kommandos auf dem Router ausführen sowie Fehler Meldungen direkt beobachten.
Einfach gesagt, man ist sehr viel näher an dem Gerät dran.
Auf der SD-Karte kann man wesentlich mehr Logdaten speichern und damit einen längeren Zeittraum kontrollieren.

Links:
Anleitung: https://www.dd-wrt.com/wiki/index.php/Tutorial:_Hinzuf%C3%Bcgen_eines_SD-Kartenlesers_an_den_Linksys_WRT54G
SPI : https://de.wikipedia.org/wiki/Serial_Peripheral_Interface
FTDI-Friend : https://learn.adafruit.com/ftdi-friend/overview

Georg Kamata, Berlin 27.09.2016