Debian Linux auf dem Linksys Network Storage Link

NSLU2-Hack: Stromsparender Fileserver und Domain Controller für 70 Euro

29.01.2008 von Albert Lauchner
Die Cisco-Tochter Linksys bietet mit dem NSLU2 einen preiswerten Netzwerkadapter für USB-Festplatten an. Eine aktive Community hat sich des NSLU2s angenommen und ein vollwertiges Debian-Linux als alternative Firmware darauf portiert. So wird aus dem NSLU2 ein echter Netzwerk-Server mit minimalem Stromverbrauch.

Der Network Storage Link for USB 2.0 von Linksys stellt USB-Festplatten im Netzwerk als zentralen Massenspeicher bereit. Da er in seiner werksseitigen Konfiguration vornehmlich für Heimnetzwerke gedacht ist, bietet er nur ein einfaches Browser-Interface zur Administration. Darüber erfolgen beispielsweise das Rechtemanagement der User und die Verwaltung der Massenspeicher.

Der günstige Preis von unter 70 Euro und eine dafür recht ordentliche Hardwareausstattung haben schon bald nach der Markteinführung im Jahr 2004 eine eingeschworene Gemeinde von Hard- und Softwareentwicklern entstehen lassen, die den NSLU2 als Basis für ihre Erweiterungen nutzen. Viele der Projekte sind inzwischen ausgereift und eignen sich selbst für den professionellen Einsatz. So gelingt das Einspielen einer echten großen Linux-Distribution komfortabel. Auch das Nachinstallieren der vielen angebotenen Softwarepakete ist keine Zauberei.

Linksys NSLU2: Der Netzwerkadapter der Cisco-Tochter Linksys bindet USB-Festplatten ins LAN ein.

Im Folgenden werden wir zunächst den Upgrade der Firmware auf ein Debian-Linux beschreiben. Anschließend zeigen wir, wie Sie wieder auf die Original-Firmware zurückwechseln können. Dieses Verfahren kann man zudem selbst bei kaputt geflashten und vermeintlich defekten NSLU2-Devices zur Notfallrettung anwenden.

Im zweiten Teil der Artikelserie installieren wir auf dem NSLU2-Debian-Server einen Samba-Server. Dieser wird auch gleich als Windows-Domänen-Controller konfiguriert. Damit stellt der NSLU2 dann zentralen Speicherplatz im Netzwerk bereit und erhöht gleichzeitig die Sicherheit in kleinen Heim- und Büronetzwerken. Im abschließenden dritten Teil der Miniserie geht es dann um Tipps, Tuning und weitere Einsatzmöglichkeiten des Linksys NSLU2.

Miniserie Linksys NSLU2

Debian-Linux-Installation auf dem NSLU2

www.tecchannel.de/link.cfm?pk=1744030

Samba-Server und Domain-Controller mit dem NSLU2

www.tecchannel.de/link.cfm?pk=1744753

Tipps, Tricks und Tuning für den NSLU2

noch nicht erschienen

Einsatzbereich

Wer sich jetzt fragt, was dieses „Plastikspielzeug“ von Linksys eventuell sogar in einem professionellen Netzwerk zu tun hat, der möge Folgendes bedenken:

Der NSLU2 im Originalzustand

Bevor wir mit den Modifikationen beginnen, noch ein paar Worte zur Original-Hard- und Software. Die von Linksys vorgesehene Anwendung des NSLU2 ist es, USB-Festplatten als Massenspeicher ins Netzwerk einzubinden. Das mit 10 x 14 x 3 Zentimetern taschenbuchgroße Device bietet als Schnittstellen daher lediglich zwei USB-2.0-Ports und einen 100-Mbit/s-Netzwerkport.

Als CPU kommt ein ARM-Prozessor von Intel (XScale IXP420) zum Einsatz, der mit 266 MHz getaktet ist. Ältere Modelle des NSLU2 nutzen bei gleicher Hardware nur einen Takt von 133 MHz, lassen sich aber durch das Entfernen eines Widerstands auf der Platine „upgraden“; dazu mehr in einem späteren Artikel. Als Hauptspeicher stehen dem NSLU2 32 MByte RAM und 8 MByte Flash für das Betriebssystem zur Verfügung. Ohne USB-Devices begnügt sich die Strom sparende Hardware des NSLU2 mit einer Leistungsaufnahme von 3 Watt.

Rückansicht: Die Rückseite des NSLU2 biete gerade einmal Platz für Netzwerk- und zwei USB-2.0-Ports, den Reset-Taster sowie den Stromanschluss.

Werksseitig hat Linksys ein embedded Linux mit SMB-Server installiert. Über eine Weboberfläche lassen sich die USB-Festplatten verwalten, Netzwerk-Shares einrichten, Usergruppen anlegen und deren Rechte managen.

Einfaches Management: Mit der Original-Firmware lässt sich der Netzwerkspeicher komfortabel managen.

Firmware-Versionen

Für den NSLU2, der in der Szene leichter aussprechbar als „Slug“ (Schnecke) bezeichnet wird, existieren mehrere Modifikationspfade. Bei der als „Unslung“ bezeichneten Methode wird das bestehende Betriebssystem lediglich um Erweiterungen auf einem angesteckten USB-Stick ergänzt. Die Unslung-Firmware lässt das Webinterface unangetastet und erleichtert so dem unerfahrenen User die Administration. Allerdings ist bei dieser Methode das Einsatzgebiet naturgemäß beschränkt. Auch bei der Linux-Kernel-Version ist man auf die Version 2.4 begrenzt.

Die weitaus radikalere Methode ist, die offizielle Debian-Distribution für ARM-CPUs einzuspielen. „Debian/NSLU2“ bietet sämtliche großen und kleinen Softwarepakete und Bash für den Slug an. Gut dokumentierte Anleitungen findet man unter anderem für den Umbau zum E-Mail-Server, VPN-Server und zum Webserver.

Im internen Flash-Speicher des Slug landet bei der Installation lediglich ein kleines Rumpf-Linux. Einen Großteil des Betriebssystems und die Erweiterungen installiert Debian/NSLU2 auf einem Massenspeicher am USB-Port. Diesen Weg werden wir im weiteren Verlauf des Artikels beschreiben und konzentrieren uns dabei auf den Umbau zum Samba-Server mit Windows-Domain-Controller.

Vielfalt: Bei der Firmware-Wahl konzentriert sich dieser Beitrag auf das gelb hinterlegte Debian/NSLU2. (Quelle: www.nslu2-linux.org)

Beim Googeln stößt man noch auf weitere Linux-Distributionen für den NSLU2, die aber im Gegensatz zu Debian/NSLU2 nur kleine Fangemeinden haben. Aufpassen muss man wegen der Namensverwirrung bei „Debianslug“. Dabei handelt es sich um den Vorläufer von „Debian/NSLU2“. Diese Distribution ist inzwischen auf „SlugOS/LE“ umgetauft. Eine Übersicht aller Firmware-Versionen findet man auf www.nslu2-linux.org/wiki/FAQ/FirmwareMatrix.

Installation von Debian/NSLU2

Während es vor Kurzem noch nötig war, den NSLU2 zum Austausch der Firmware kompliziert in den Bootstrap-Modus zu versetzen, gelingt die Installation des Debian-Linux inzwischen direkt über das vorhandene Linksys-Webinterface. Dabei spielt man zunächst nur einen rudimentären Installer ins Flash ein. Dieser partitioniert den USB-Stick und lädt dann über das Web alle für das Betriebssystem nötigen Module nach.

Beim Download der Installer-Firmware stehen theoretisch zwei Quellen offen. Die offizielle Debian-Version findet sich unter http://ftp.nl.debian.org/debian/dists/etch/main/installer-arm/current/images/ixp4xx/netboot/. Allerdings besteht ein lizenzrechtliches Problem: Der Netzwerktreiber des IXP4xx-Microcontrollers sind nicht Open Source und somit nicht im Paket enthalten. Daher ist ein externer USB-Netzwerkadapter mit Open-Source-Treibern zum Betrieb mit diesem Installer nötig. Damit zeigt sich die Installation zudem zickig, da man ständig zwischen internem und externem Netzwerkanschluss wechseln muss.

Ein „inoffizielles Image“, das diese Problematik umgeht, findet sich unter www.slug-firmware.net/d-dls.php. Es enthält bereits die Netzwerktreiber des IXP400. Vor dem 4,1 MByte großen Download muss man jedoch die aufgeführten Lizenzbedingungen von Intel annehmen.

Regelwerk: Nur wer die Lizenzbedingungen von Intel erfüllt und akzeptiert, darf das Image mit den bereits integrierten Netzwerktreibern nutzen.

Zwei Dinge sind noch erforderlich, bevor man mit dem Austausch der Firmware beginnen kann. Erstens muss am USB-Port des Slug ein Massenspeicher zur Auslagerung von Teilen des neuen Betriebssystems angeschlossen sein. Vorzugsweise nimmt man dazu einen USB-Stick mit mindestens zwei GByte Kapazität. Mit 1-GByte-Sticks gelingt die Installation nur, wenn man das Partitionieren manuell durchführt und mindestens 256 MByte für eine Swap-Partition abzweigt.

Zweitens benötigt man noch einen SSH-Client, um sich nach der Installation mit dem Linux-Server zur weiteren Konfiguration zu verbinden. Unter Linux steht dazu OpenSSH bereit, Windows-User sollten sich PuTTY installieren.

Wichtig: Obwohl der Original-NSLU2 USB-Sticks nur am Disk-2-USB-Port unterstützt, sollte der Betriebssystemstick an den Disk-1-Anschluss. Am zweiten Port gab es im Test gelegentlich Probleme bei der späteren Systemkonfiguration. Ebenfalls wichtig: Entfernen Sie einen eventuell schon angesteckten zweiten USB-Massenspeicher. Ansonsten scheitert die Installation mit der Fehlermeldung, dass zu wenig Speicherplatz frei wäre.

Firmware-Update

Zur Installation des Debian-Installers rufen Sie das Web-Frontend des NSLU2 auf. Wechseln Sie zunächst zum Menüpunkt Administration und prüfen Sie, ob das Netzwerk richtig konfiguriert ist. Zur Erinnerung: Default-Username und -Passwort lauten „admin“. Geben Sie dem NSLU2 am besten eine feste IP-Adresse, diese bleibt auch nach dem Firmware-Tausch erhalten. Wichtig dabei: Sowohl Netzwerkmaske, Gateway und DNS-Server als auch der Servername müssen gültige Werte enthalten, sonst ist die Box nach dem Update nicht mehr (so leicht) über das Netzwerk erreichbar.

Unbedingt prüfen: Steht hier Unsinn, scheitert der Debian-Installer nach dem Reboot.

Das Einspielen des Debian-Installers erfolgt wie ein normales Linksys-Firmware-Update über den Menüpunkt Administrator/Upgrade.

Bequem über das Menü: Der Tausch der Firmware ist ganz harmlos.

Nach knapp fünf Minuten sollte die Aufforderung zum Reboot kommen. Ab dann hat man keinen Linksys-NSLU2 mehr, sondern die Keimzelle eines kleinen Debian-Linux-Servers.

Neuanfang: Nach dem Reboot ist die Linksys-Software gelöscht und der Debian-Installer am Zug.

Debian-Installation

Beim ersten Reboot mit der neuen Firmware übernimmt der Debian-Installer seine Arbeit. Da der Slug zu diesem Zeitpunkt noch keinerlei Kommunikationsmöglichkeit hat, kann man die nächsten fünf Minuten nur warten, bis sich der NSLU2 mit drei Pieptönen meldet. Jetzt ist es Zeit für den ersten Login mit ssh. Hat man wie angeraten eine feste IP vor dem Upgrade vergeben, ist der Linksys darunter erreichbar. Ansonsten besorgt er sich eine IP-Adresse vom DHCP-Server. Ist dieser nicht vorhanden, wählt er die 192.168.1.77.

Erste PuTTY-Verbindung: Achten Sie auf die IP-Adresse, den Port 22 und Connection-Type ssh.

Stellen Sie vor dem Login im linken Options-Baum von PuTTY unter Windows / Translation den Zeichensatz auf „UTF-8“. Ansonsten werden Sonderzeichen nicht richtig dargestellt. Der Login mit PuTTY oder OpenSSH erfordert den Usernamen „installer“ und das Passwort „install“. Wählen Sie dann den Punkt „Start menu“, der Sie durch eine schrittweise Installation des Linux-Pakets führt. Diese unterscheidet sich von einer terminalbasierenden Installation auf einem PC nur in Details.

Geschafft: Der Installer steht bereit.

Der Installer ist an die limitierte Hardware des NSLU2 angepasst und wählt selbstständig nur die nötigsten Module. Wählen Sie zusätzlich nur noch autopartkit, partman-auto, partman-ext3 und usb-storage-modules-2.6... , um den USB-Stick für die Linux-Installation partitionieren und formatieren zu können.

Rudimentäre Auswahl: Vier zusätzliche Module werden zur Installation zwingend benötigt.

Partitionierung

Nach ein paar Klicks auf einfach zu beantwortende Fragen steht die Partitionierung des USB-Sticks an. Obwohl der Partitionierer eine Aufteilung vorschlägt, sollte man diese manuell anpassen.

Achtung: Falls Sie hier Ihren USB-Stick nicht als SCSI-Device sehen, haben Sie vergessen, das usb-storage-module zu laden.

Dabei stellt Ihnen der Partitionierer eine kleine Falle: Er zeigt im ssh-Fenster seine Meldungen im unteren, meist unsichtbaren Bereich an. Scrollen Sie daher immer nach unten, um beispielsweise die Optionen zum Schreiben der Änderungen auf den Stick zu sehen.

Wählt man den automatischen Weg, fällt die swap-Partition meist zu klein aus. Legen Sie daher auf dem USB-Stick eine primäre Partition mit ext3 und der Eigenschaft „bootbar“ an. Lassen Sie bei 1-GByte-Sticks noch 256 MByte, bei größeren Sticks 512 MByte Platz frei. Darin erzeugen Sie dann eine logische Partition als swap-Bereich.

Aufteilung: So sollte ein 2-GByte-Stick partitioniert werden.

Finalisierung der Installation

Ist die Partitionierung erst einmal erledigt, fragt der Installer noch nach einem root-Passwort und eventuell anzulegenden Usern. Dann kann man sich erst einmal eine Tasse Kaffe oder besser ein opulentes Mahl gönnen: Der Download und die automatische Installation des Basissystems dauern ein bis zwei Stunden.

Wartezeit: Die automatische Basisinstallation läuft gut zwei Stunden.

Nach der Basisinstallation könnte man gleich noch weitere Softwarepakete installieren. Doch besser lädt man die benötigten Komponenten später einzeln nach. Selektieren Sie daher bei der Softwareauswahl die Option „Standard System“.

Standard: Bei der Basisinstallation sollte man noch keine großen Softwarepakete auswählen.

Jetzt kann es nochmals etwas dauern, bis die Installation endgültig beendet ist. Den abschließenden Warnhinweis auf eventuelle Bootmedien können Sie ignorieren und endlich das fertige Debian-Linux starten.

Kurz vor dem Ziel: Noch ein Reboot, dann meldet sich Debian-Linux.

Selbstverständlich bricht mit dem Reboot die ssh-Session ab. Geben Sie dem Slug eine Minute zum Start, dann können Sie sich erstmals über PuTTY in das Debian-Linux einloggen.

Am Ziel: Der Slug meldet sich mit Linux als Betriebssystem.

Notfallplan: Rettung für den „toten“ NSLU2

An dieser Stelle wollen wir die Beschreibung der Installation vorerst beenden. Mit der Konfiguration des Samba-Servers beschäftigt sich der nächste Teil der Artikelserie. Jetzt gehen wir vorsichtshalber noch auf die Rettung eines wie auch immer verunglückten Slugs ein. Egal, ob Ihnen bei der Debian-Installation ein Fehler unterlaufen ist, ein Firmware-Update gescheitert ist oder Sie nur wieder zur Original-Firmware zurückwechseln wollen: Selbst wenn sich der NSLU2 scheinbar nicht mehr im Netzwerk meldet, gibt es eine Hintertür, über die Sie ihn wieder mit der Original-Firmware zum Leben erwecken.

Der Rettungszugang erfolgt über den rudimentären Bootstrap-Loader namens RedBoot, vergleichbar mit dem BIOS eines PCs. RedBoot lauscht beim Start des NSLU2 für einen kurzen Augenblick unter der Adresse 192.168.0.1 auf Port 9000 und bietet dort einen telnet-Zugang an. Gelingt darauf der Login, kann man den Slug jederzeit wieder in den Auslieferungszustand versetzen. Im Folgenden beschreiben wir diese Rettungsaktion unter Windows.

Zunächst sollten Sie sich die aktuelle Firmware für den NSLU2 von Linksys herunterladen. Des Weiteren benötigen Sie noch ein Programm, mit dem Sie diese auf den NSLU2 übertragen können, wenn er sich im RedBoot-Modus befindet. Für Windows XP existiert dazu das Tool „Sercomm Firmware Updater“, das übrigens auch mit Netgear- und etlichen anderen DSL-Routern zusammenarbeitet.

Helfer in der Not: Das Sercomm-Tool findet den NSLU2 im Upgrade-Modus und kann ihm eine neue Firmware einspielen.

Sie finden das Sercomm-Tool unter dem Dateinamen Upgrade_207_XP.zip zum Beispiel auf http://saytec.com/board/download_download.php?n=319&c=1 und www.everbesthk.com/8-download/sercomm/firmware/NU54/Upgrade_207_XP.zip. Unter Vista benötigt dieses Tool Administratorrechte und muss im XP-SP2-Kompatibilitätsmodus laufen.

IP-Dschungel

Beim Booten verwendet der NSLU2 kurzzeitig die IP-Adresse 192.168.0.1, über die dann auch der RedBoot-Zugang erfolgt. Verwendet man im eigenen Netzwerk einen anderen Adressbereich, genügt es, den Windows-PC temporär in das passende Subnetz zu verlegen. Dazu stellt man bei den Netzwerkeigenschaften die IP-Adresse fest auf 192.168.0.2 und die Subnetzmaske auf 255.255.255.0 ein. Die restlichen Einstellungen können unverändert bleiben.

Falls man schon im 192.168.0-Subnetz arbeitet, muss man unbedingt prüfen, ob die Adresse 192.168.0.1 noch frei ist. Meist hat sich der DSL-Router diese IP-Adresse gegriffen. Dann ist es am besten, den NSLU2 direkt mit der Netzwerkkarte des PC zu verbinden, beide vom sonstigen Netzwerk zu trennen und dem PC wie oben beschrieben eine feste IP-Adresse zu geben. Bei älteren Netzwerkkarten, die noch kein Auto MDI/MDIX beherrschen, kann es zudem nötig sein, noch einen Hub zwischenzuschalten oder ein Cross-Kabel zu nutzen.

Ohne Rücksicht auf Verluste: Beim Booten belegt der NSLU2 kurzfristig die IP-Adresse 192.168.0.1.

Öffnen Sie nun mit cmd ein Kommandozeilenfenster. Mit dem Befehl ping –t –w 1 192.168.0.1 suchen Sie darin in einer Endlosschleife nach dem NSLU2 im RedBoot-Modus. Wenn Sie den NSLU2 zum Test einmal booten, muss sich der ping nach ein paar Sekunden erfolgreich für einen kurzen Zeitraum melden.

Original-Firmware restaurieren

Öffnen Sie nun ein zweites Kommandozeilenfenster und geben Sie darin den Befehl telnet 192.168.0.1 9000 ein, ohne jedoch auf die Entertaste zu drücken. Jetzt ist ein gutes Timing gefragt. Starten Sie den NSLU2, und beobachten Sie den ping im ersten Fenster. Sobald dieser eine erfolgreiche Antwort vom Slug erhält, drücken Sie im telnet-Fenster auf die Returntaste und anschließend sofort die Tastenkombination „STRG-C“. Beim richtigen Timing meldet sich RedBoot. Waren Sie zu langsam, resetten Sie den Slug, und versuchen Sie es erneut.

Reaktionstest: Meldet sich der ping im einen Fenster, gilt es, im anderen Fenster schnell Return und dann STRG-C zu drücken.

Jetzt kommt die einzig heikle Situation beim NSLU2-Modding. Vor dem Einspielen der neuen Firmware muss noch der Speicherbereich im Flash gelöscht werden, in dem der NSLU2 seine Konfigurationsdaten ablegt. Geben Sie dazu folgendes Kommando ein (Achtung: Das Zeichen hinter dem zweiten „-“ ist der Buchstabe „l“ und nicht die Ziffer „1“):

fis erase -f 0x50040000 -l 0x20000

Dieser Befehl löscht den angegebenen Speicherbereich ab der Adresse 0x50040000 im Boot-Flash. Ein Fehler bei diesem Kommando kann den RedBoot-Loader überschreiben und den NSLU2 für immer zerstören.

Anschließend bereiten Sie den NSLU2 mit dem Befehl upgrade für das Einspielen der Firmware vor.

upgrade: Jetzt wartet der NSLU2 auf seine neue Firmware.

Sercomm-Update

Wenn man jetzt am PC das Sercomm-Tool startet, zeigt es ein updatebares Device im Netzwerk an. Wählen Sie aus der Device-Liste das Gerät und über den Button „Files“ die passende Firmware aus. Der Upgrade-Button erledigt dann den Rest.

Am Ziel: Die neue Firmware wandert auf den NSLU2.

Ein letztes Hindernis gilt es noch zu überwinden. Nach dem Reboot mit der neu eingespielten Original-Firmware findet diese keine gültigen Konfigurationsdaten mehr, da diese ja mit dem fis-Befehl gelöscht wurden. Daher legt sich der NSLU2 jetzt auf die IP-Adresse 192.168.1.77. Um per Browser auf die Konfigurationsseiten des NSLU2 zugreifen zu können, muss man daher den PC noch kurzfristig in das Subnetz 192.168.1 verlegen.

Hat man dann Zugang zum Slug über den Browser, sollte man sofort auf die Seite Administration / System wechseln und den Button „Restore Default Config“ anklicken. Anschließend gibt man dem NSLU2 die finalen Netzwerkeinstellungen. Dann lassen sich der PC und der NSLU2 wieder ins bestehende Netzwerk integrieren, und er verhält sich wieder wie original von Linksys ausgeliefert.

Ausblick

In diesem Teil unserer Miniserie zum NSLU2 haben wir die Installation eines Debian-Linux beschrieben. Auch der Rückweg zur Original-Firmware sollte nun kein Problem mehr sein. Im nächsten Artikelteil geht es dann um die Erweiterungen mit großen Softwarepaketen und der Konfiguration von Samba als Windows-Domain-Controller. (ala)

Miniserie Linksys NSLU2

Debian-Linux-Installation auf dem NSLU2

www.tecchannel.de/link.cfm?pk=1744030

Samba-Server und Domain-Controller mit dem NSLU2

www.tecchannel.de/link.cfm?pk=1744753

Tipps, Tricks und Tuning für den NSLU2

noch nicht erschienen