Asus WL-500G Premium WLAN Router unter Linux - adalbert.familie-prokop.de

Asus WL-500G Premium WLAN Router unter Linux

by Adalbert Prokop (adalbert.prokop@gmx.de) on 2008

Asus WL-500G Premium WLAN-Router

Das Gerät ist super. Besonders wenn man nicht auf die Original-Firmware angewiesen ist, sondern eine andere Linux-Distribution auf das Gerät flasht. 4 LAN Ports, WLAN, 2x USB Ports - fehlt eigentlich nur ein serieller Anschluß, um eine Konsole anzuschließen und aus dem Gerät einen vollwertigen Computer zu machen.

Die Originalfirmware von Asus ist auch schon recht mächtig, erlaubt aber keinen SSH oder telnet-Zugang, um das Kästchen bequem zu administrieren, man ist auf die WEB-Oberfläche angewiesen. Das Drucken ist auch nur ohne Druckwarteschlange und ohne Konvertierungen möglich. Das heißt man muss auf jedem Rechner im Heimnetzewerk den korrekten Druckertyp einstellen.

Wenn man jedoch auf dem Gerät einen Druckserver laufen läßt, z.B. CUPS, dann könnte man fast beliebige Dokumente zum Drucker schicken. Der Druckserver auf dem Router würde (im Idealfall) den Dokumententyp erkennen und in die Druckereigene Sprache übersetzen. Doch dazu später mehr.

Distributionen

Bei den Linux-Distributionen hat man unter anderem die Wahl zwischen

Dazu kann man noch im Asus WL500g Forum nachsehen und es gibt mit Sicherheit noch weitere Seiten, die sich mit diesem Gerät beschäftigen. Interessant für den einen oder anderen könnten noch weitere Pakete sein, die sog.

Optware bietet fast alles an, was unter Linux installierbar ist, von Skriptsprachen wie Perl oder Python bis zum ausgewachsenen DNS-Server. Dabei werden alle Programme unter /opt installiert. Man sollte sich also überlegen unter /opt eine externe Festplatte oder einen USB-Stick einzubinden. Eine Perl-Installation nimmt schon mal locker 25 MB in Anspruch, was für den armen Router eindeutig zu viel ist. Wenn man noch CUPS, Ghostscript und noch ein paar weitere Programme installiert, dann werden schon mal 95 MB belegt.

Ein wenig Technik

Interne Struktur des Asus WLAN-Routers

Das Gerät hat eine integrierte 6-Port-Switch, davon werden 4 Ports für das LAN verwendet, 1 für das WAN und einen internen Anschluß, damit der Computer im Kästchen auch an die Switch angeschlossen ist.

Die WLAN-Karte ist von Broadcom und kann alles, was man im Heimnetz gebrauchen kann: WEP, WPA, WPA2 sowie WDS Bridging und Repeating.

Das LAN wird vom WAN durch VLANs getrennt. Die WLAN-Karte ist über eine Bridge mit dem internen VLAN verbunden, damit die beiden in ein virtuelles Netzwerk zusammengeschlossen werden.

Der Router scheint auch noch eine zweite interne Netzwerkkarte zu besitzen (eth1), die aber nirgendwo einen Anschluß besitzt, also getrost ignoriert werden kann.

Software

Alle solche Router haben ein Problem: Sie haben nur einen begrenzten persistenten Speicher. Nicht gespeicherte Einstellungen sind verloren. Andererseits möchte man nicht jede kleine Änderung im Dateisystem sofort persisten speichern, denn der Flash-Speicher hat nur eine begrenzte Lebensdauer, die von Anzahl der Schreibvorgänge bestimmt wird.

OpenWRT Speichert einzelne Variablen im Flash-Speicher, die in den Konfigurationsskripten ausgelesen und verarbeitet werden. Das ist zwar nicht weiter schlimm, macht aber die Skripte irgendwie unleserlicher. Man ist eben von Linux anderes gewöhnt.

Ich habe mich für FreeWRT entschieden, weil mir die Konfiguration besser gefällt. Es sieht fast aus, wie ein „normales“ Debian, wo alle Einstellungen im /etc vorgenommen werden. Das ist man gewöhnt und es funktioniert ganz gut. Das Dateisystem ist eine RAM-Disk und wird nur auf manuellen Wunsch hin komprimiert und in den Flash-Speicher übertragen.
Außerdem kann man immernoch eine Festplatte oder einen USB-Stick anschließen und diese Speicher sind garantiert permanent.

CUPS, Ghostscript und hpijs

Mein größter Wunsch war es meinen USB-Drucker an dem Router anzuschließen, so dass mein Desktop nicht laufen muss, wenn man etwas drucken möchte. Und da ich ein fauler Mensch bin, möchte ich nicht auf jedem Computer die gleichen langweiligen Druckereinstellungen vornehmen. Einmal den Router konfigurieren und gut ist. Der macht alles weitere.

Das hätte auch beinahe geklappt. Optware bietet neben CUPS auch Ghostscript und hpijs um aus PostScript- und PDF-Dateien Dateien zu erzeugen, die der Drucker versteht.

Zunächst wurden die foomatic-Filter nicht ausgeführt. Die Fehlermeldung war auch recht merkwürdig:

foomatic-bin: No such file or directory

Bis ich endlich auf die Idee kam, dass es sich um ein Perl-Skript handelt. Und dieser brauch nun mal einen Perl-Interpreter, der noch nicht installiert war. Er war nicht in den Paketabhängigkeiten eingetragen, so das er auch nicht automatisch mit hpijs installiert wurde. Des weiteren muss das Skript ein wenig korrigiert werden, z.B.  der Pfad des Perl-Interpreters muss angepasst werden und einige Pfade für ausführbare Dateien. Das ist aber nicht weiter schlimm.

Viel unangenehmer ist die Tatsache, dass Ghostscript anscheinend nicht funktioniert. Es stürz jedes mal ab.

root@FreeWRT:~# gs
AFPL Ghostscript 8.50: ./src/interp.c(295): Fatal error -20 in gs_interp_init!

Also werde ich mir wohl die Quellcodes vornehmen müssen, was wieder einen recht großen Arbeitsaufwand bedeutet. Schade eigentlich. Aber ohne Ghostscript kann man eben nur sog. raw printing machen, also nur für den Drucker erzeugte, fertige Dateien drucken. Das würde aber wieder bedeuten: Auf jedem Rechner im Heimnetz muss der Drucker eingerichtet werden.


Ghostscript: Nachtrag

Ich denke, ich lasse es. So langsam gelange ich zur der Überzeugung, dass der Prozessor in dem Router mit dem Konvertieren größerer Druckaufträge überfordert sein könnte. Ich habe aus Neugier mal lighttpd und MoinMoin (das ist ein Wiki in Python geschrieben) installiert. Mit viel Geduld ließen sich die einfachen Seiten ansehen, aber sogar hier hatte der kleine 266MHz Prozessor des Routers mit dem Python-Interpreter schwer zu kämpfen. Aber bei komplexen Seiten, z.B. Seiten, die alle Verweise auf eine Seite enthalten und für die immer der ganze Datenbestand durchsucht werden muss, da wird es wirklich übel. Die Wartezeiten beim leeren Wiki (also kurz nach einer frischen Installation) betragen etwas zwischen 120 und 130 Sekunden.

Ich denke, dass 266MHz und 32MB RAM für Ghostscript doch etwas wenig sein könnten. Zur Not kann man immernoch einen Desktoprechner als einen Zwischenfilter einsetzen. Bei mir werkelt der Asus-Router als Druckserver für vorverarbeitete Druckaufträge und mein Desktop (falls er läuft) als Druckserver für alles, der die Druckaufträge bei Bedarf konvertiert und an den Drucker am Asus-Router schickt.