FLI4L DOC Router

1. DOC Router? - Warum?
2. HOWTO für meine Beispiel-Konfiguration

1. DOC Router? - Warum?

Wer einen Router einsetzen will, steht vor der Frage: Kaufen oder selbst bauen. Gekaufte Geräte sind meist klein, sind nach wenige Sekunden einsatzbereit und brauchen relativ wenig Strom (nicht unwichtig für Dauerbetrieb) und SOHO-Geräte sind oft geräuschlos. Aber selbst gebaute Geräte haben auch Ihre Vorteile: Sie lassen sich für eigene Bedürfnisse erweitern (z.B. Proxy, eMail-Server, Print-Server, eigene Firewall-Regeln). Es gibt dafür verschieden Möglichkeiten: Eine Standard-Distribution einzusetzen oder speziell für Routing angepasste Distributionen/Packete. Hier eine kleine Auswahl: FLI4L, Linux-Router, Router-Linux, Coyote-Linux, Floppy-FW, LEAF. Aber man kann natürlich auch versuchen, beide Konzepte zu kombinieren. Als Router sind i.d.R auch nach heutigen Maßstäben "veraltete" Geräte durchaus brauchbar. Mit ein paar Tricks kommt man einem gekauften Gerät schon durchaus nahe. Wer nur Wert auf eigene Software legt und evtl. etwas tiefer in die Tasche greifen will, kann versuchen sich eine professionelle Hardware zu besorgen: GCC Allwell 3036N. Man kann aber auch mit einem ausrangierten PC eine stabiles und flexibles System aufbauen. Um in die Nähe eines gekauften Systems zu kommen spielt oft der Geräusch-Pegel, der Strom-Verbrauch und die Verfügbarkeit noch dem Einschalten eine entscheidende Rolle. Mit Hilfe eines Flash-basierten Massenspeichers lassen sich hier mehrere Problem beseitigen. Sie verlieren ihren Inhalt auch beim Abschalten nicht, sie sind im Vergleich zu einer Floppy ziemlich schnell, sie brauchen wenig Strom und arbeiten geräuschlos (im Gegensatz zu einer Festplatte). Flash basierte Massenspeicher werden oft als DOC (Disk On a Chip) bezeichnet. Es gibt sie in verschiedenen Größen: von 8MB bis zu > 512 MB.

2. HOWTO für meine Beispiel-Konfiguration

Hardware: Asus PVI - 486er Board mit AMD 486 100Mhz, 2x 16MB PS/2 Speichermodule, eine alte PCI Grafikkarte mit 1MB , Siemens ISurf ISA-ISDN Karte, Realtek 8139 100Mbit PCI Netzwerkkarte, sowie ein älteres BAT-Gehäuse mit Floppy, sowie natürlich die DOC-ISA-Karte mit einem 16MB "DiskOnChip 2000".

Einen Teil der Hardware hatte ich von einem alten PC, andere Sachen habe ich günstig bei eBay erworben. Ein 100 Mhz Prozessor ist für diese Aufgabe eigentlich schon zuviel - da die CPU aber nicht stark beansprucht wird, habe ich den CPU-Lüfter stillgelegt. Im Netzteil habe ich den Lüfter ebenfalls mit einem 9V Spannungsregler auf Geräuscharmut optimiert. Das Gerät braucht 20W und ist selbst in einem stillen Raum nicht zu hören. Die DiscOnChip mit ISA-Platine habe ich zufällig auf eine Computer-Flohmarkt entdeckt. Sie sind aber teilweise auch über eBay erhältlich. Oder direkt vom Entwickler: Jürgen Krüger. (Bei Interesse stelle ich den Kontakt her).

Ich habe schon vorher mit FLI4L gearbeitet und mich deshalb in meiner Konfiguration wieder auf dieses System gesetzt. Ich habe daher folgende Software-Packete eingetzt:

  • FLI4L Version 2.0.6
  • Kernel 2.2.19 (muß zur Fli4L Version passen)
  • M-Systems DOC Linux Treiber
  • Sys-Linux
  • Das Problem dürfte in den meisten Fällen sein, die Linux-Treiber von M-Systems so in den Boot-Vorgang einzubinden, daß der Kernel dann Zugriff auf die DOC hat. Leider liefert M-Systems nur einen Kernel-Patch und ein Lib-File mit dem sich nur ein Modul bauen lässt. Mir ist es zwar gelungen den Treiber statisch in den Kernel zu linken, aber anscheinend sind bestimmte andere Hardware-Komponenten noch nicht ausreichend initialisiert - mit anderen Worten: in den Kernel einkompiliert funktioniert der Treiber nicht. Es bietet sich an FLI4L vorher mal als Disketten-Version zu testen, um nicht bei späteren Problemen Ursachen an mehreren Stellen suchen zu müssen. Derzeit betreibe ich die DOC mit einem FAT Filesystem und FLI4L wird hier wie von einer Diskette geladen, allerdings viel schneller. Man könnte auch direkt das Root-File-System in die DOC legen, aber dann müssten diverse FLI4L Scripte angepasst werden. Diese Lösung habe ich bisher noch gescheut.

    Alle Kompilierarbeiten sollten nicht unbedingt auf dem 486er System ausgeführt werden, sonst ist der Rechner wohl mehrere Tage beschäftigt. Ich habe ein K6-2 mit 300 Mhz System basierend auf einer Suse 7.3 Distribution benutzt.

    Hier ein Weg, mit dem es für die FLI4L Version 2.0.6 funktioniert:

  • Die oben aufgeführten Software-Pakete besorgen.
  • Das FLI4L Paket und das M-System DOC Treiber Paket entpacken.
  • Den Kernel entpacken und die für den FLI4L nötigen Kernel-Patches einspielen. Ein genaue Anleitung findet sich in der Dokumentation von FLI4L.
  • Die Patches für den DOC-Treiber in den Kernel einspielen. Glücklicherweise gibt es hier keine Konflikte. Ein genaue Anleitung findet sich ebenfalls im Archiv.
  • FLI4L bringt eine vorgefertigte Kernel-Config Datei mit, die man für den Kernel verwenden soll.
  • Die Kernel Konfiguration bearbeiten und die DOC-Treiber als Modul auswählen.
  • Jetzt den Kernel und die Module kompilieren lassen.
  • Nun muß der Treiber für die DOC in das Root-File-System von FLI4L gelegt werden. Hierzu muß das Root-Filesystem erst einmal entpackt werden (gzip -d rootfs.gz) und dann über das loopback device gemountet werden (mount -o -f rootfs /mnt). In FLI4L ist für den Fall so einen Treiber einzubinden schon etwas vorgesehen. Das Modul "doc.o" kopiert man am besten nach "/lib/modules/" innerhalb des FLI4L Root-Filesystems.
  • Außerdem muß man noch im Verzeichnis /dev das Device für den Zugriff auf die DOC anlegen. Wenn man nur eine DOC verwendet reicht es die Nodes für /dev/fla und für 1-4 Partitionen anzulegen (/dev/fla1 - fla4).
  • Schließlich muß noch im Verzeichnes /etc des Root-Filesystems ein Shell Script mit dem Namen "modules.sh" erzeugt werden, das den Treiber lädt (Der Kernel wird ohne auto loader erzeugt). Das Script enthält nur zwei Zeilen:

    #! /bin/sh
    /sbin/insmod /lib/modules/doc.o

    Abschließend die Datei "modules.sh" noch ausführbar markieren: "chmod u+x modules.sh". Dieses Script wird beim Starten von FLI4L dann automatisch aufgerufen.
  • Schließlich muß das Root-File-System wieder umount'ed und eingepackt werden. (gzip -c rootfs > rootfs.gz)
  • Abschließend müssen die Dateien, die vorher auf der Diskette waren in die DOC kopiert werden. Also der modifizierte Kernel, das geänderte Root-Filesystem, das OPT-Packet und die FLI4L Konfigurationsdateien. Mit Sys-Linux wird nun die DOC bootfähig gemacht. Man muß vor dem ersten Boot-Vorgang noch die Datei LDLINUX.SYS entsprechend anpassen. Hier wird als Parameter das Device angegeben, von dem das komprimierte Root-Filesystem geladen werden soll. Hier muß man das entsprechende Linux-Device für die DOC angeben (boot=/dev/fla1).
  • Fertig!
  • Noch ein abschließender Hinweis: Bei evtl. Nachbauten die auch eine ISA-ISDN-Karte benutzen, ist darauf zu achten, daß sich der Address-Raum der ISA-DOC Karte nicht mit dem der ISDN-Karte überschneidet. So ist es mir ergangen. Daraufhin wollte sich der ISDN-Treiber nicht mehr laden lassen. Auf der DOC-ISA-Platine befinden sich drei Jumper, mit der man die DOC auf einen anderen Address-Bereich legen kann.

    Dieses HOWTO ist noch eine Vorabversion - im Laufe der Zeit werde ich die einzelnen Schritte noch ausführlicher Beschreiben (wenn es die Zeit zulässt).


    Zurück zur Projekt-Seite

    Schreiben Sie Ihre Anmerkungen oder Kritik doch in mein Gästebuch

    Erstellt von A.Rosenberg am 22.01.2004 - Letzter Update am 24.01.2004