Debian auf der NSLU2

16 03 2007

Debian GNU/LinuxIch kann einfach nicht wiederstehen, ich mußte diesen Titel klauen kopieren verwursten recyclen... Am selben Tag, an dem ich den ersten Blogartikel über die NSLU2 online stellte, ging übrigens drüben am Ende der Vernunft eine weitere NSLU2 mit Debian an den Start. Und wie ich gerade lese, hat auch Jörn seinen ursprünglichen Plan, ein Software-RAID-1 hinter das Gerät zu hängen, aus Stromspargründen vorerst aufgegeben. Wie ich schon schrieb, kann ich den praktischen Nutzen einer solchen Konstellation über den Rahmen einer Machbarkeitsstudie hinaus nicht recht erkennen. Jörn gelangt offenbar zu ganz ähnlichen Schlüssen, denn jedenfalls ähneln seine Überlegungen zur Datensicherung sehr den meinen.

Das erste, was ich nach der Grundinstallation des Systems mithilfe des nichtoffiziellen Images tat, war mittels "tzconfig" die Zeitzone, in der sich der Server befindet, und mit "date" die Zeit zu setzen. Das besänftigte schonmal den gpgv, das Signaturprüftool von Gnupg, das ansonsten unstimmige Zeitstempel anmeckerte. Trotzdem gab es danach immer noch ein Problem, das sich mit einem kleinen Trick aber folgendermaßen beheben ließ:

# Fix apt-get segfaulting on updating the package list
# See http://lists.debian.org/deity/2006/12/msg00019.html
# and http://lists.debian.org/debian-boot/2006/11/msg01207.html
[n] /root/less_394-4_arm.deb
[e] cd /root/
    dpkg -i less_394-4_arm.deb


Zur Erklärung: Auf meinen Maschinen gibt es eine manuell geführte Logdatei namens /etc/CHANGES, in der systemweite Änderungen in Kurzschrift notiert werden. Dabei steht "[n]" für eine im System neu an- bzw. abgelegte Datei und "[e]" für ausgeführte Befehle auf der Konsole.

Ich habe also das ohnehin von mir benötigte Paket für den Pager less von der Debian Package Download Site heruntergeladen und anschließend manuell installiert. Dadurch wird die Paketdatenbank neu aufgebaut, was die Absturzursache offensichtlich beseitigt. Bei nachfolgenden Installationen weiterer Pakete und späteren Updates trat der Fehler noch mehrmals sporadisch auf. Er konnte jedesmal auf dieselbe Weise behoben werden, so daß ich das Paket less vorsichtshalber für's erste im Heimatverzeichnis des Superusers liegenließ. Darauf folgte dann:

# See /usr/share/doc/nslu2-utils/README.Debian for details
[c] /etc/default/rcS
    # ! FSCKFIX=no
    # ! FSCKFIX=yes
[c] /etc/default/bootlogd
    # ! BOOTLOGD_ENABLE=No
    # ! BOOTLOGD_ENABLE=Yes


"[c]" steht hierbei für veränderte Text- bzw. Konfigurationsdateien. Das im Kommentar erwähnte README sollte man sich zumindest einmal durchlesen. Alles andere waren dann übliche Arbeiten im Rahmen einer normalen Server-Einrichtung: die Nachinstallation und Konfiguration benötigter Pakete und Dienste sowie Tests auf deren Funktionalität. Insgesamt verlief die Installation erstaunlich glatt und relativ problemlos. Als kleines Schmankerl habe ich ganz zuletzt noch das Paket "beep" installiert:

# Beep on startup/shutdown
# See http://www.nslu2-linux.org/wiki/HowTo/BeepMelodies
[n] /etc/init.d/beep
[e] update-rc.d beep defaults 99 04


Im Initskript müssen die Variablen hierbei auf "BEEP=/usr/bin/$NAME" und "ARGS='-e /dev/input/event0'" gesetzt werden, wie auch im Wiki-Artikel auf NSLU2-Linux beschrieben.

Have fun... *veg*

Nützliche Helferlein: Die Linksys NSLU2

14 03 2007

Die Anschaffung einer NSLU2 vor einigen Monaten hat sich für mich ziemlich rasch als sehr lohnend herausgestellt. Inzwischen ist das Gerät im heimischen Netzwerk beinahe unentbehrlich geworden. Sie ist nicht nur preiswert in der Anschaffung - derzeit um die 80 € - und sehr kompakt (sprich: winzig), sondern auch stromsparend und im Betrieb nahezu lautlos. Daß sich die NSLU2 einer großen Fangemeinde erfreut, verwundert daher nicht.

Ich betreibe die NSLU2 mit einem externen Sharkoon Swiftcase-Gehäuse für 3.5"-Festplatten, das einen Cypress 68300B/C USB 2.0 IDE-Adapter enthält. Dieser Chip unterstützt das Herunterfahren ("Spindown") der Harddisk bei längerer Untätigkeit, was den Stromverbrauch zusätzlich senken helfen sollte. Ob sich der dadurch enstehende Wechsel von Erwärmung und Abkühlen des Plattenstapels und das häufige Anfahren und Stoppen des Motors jedoch positiv auf die Lebensdauer einer HD auswirkt, ist unter Anwendern zumindest umstritten. ich persönlich halte nichts davon und nutze diese Funktionalität deshalb überhaupt nicht. Über die Lebensdauer von Festplatten kann ich außerdem nicht einmal vage Aussagen treffen, weil bei mir in einem Zeitraum von gut fünf bis sechs Jahren keine Ausfälle aufgetreten sind. (Bei der ausschließlichen Verwendung von Desktop-IDE-Platten kann man das nur als Dussel bezeichnen.)

Im Sharkoon Swiftcase ist eine 250-Gigabyte-Platte von Samsung verbaut, die beim vorherigen Betrieb in einem handelsüblichen ATX-Gehäuse normalerweise ca. 30° C warm wurde. Generell stehen Samsung-Festplatten der SpinPoint-Serien in dem Ruf, sich nicht zu stark zu erwärmen und recht leise zu sein. Nach meinen bisherigen Erfahrungen kann ich diese Annahmen bestätigen. Aufrecht stehend wird das Aluminiumgehäuse nur etwa handwarm, so daß sich dessen Erwärmung trotz der lüfterlosen Bauweise noch im Rahmen des Tolerablen bewegt. Legen sollte man es allerdings besser nicht - bei einem kurzen Test wurde die Unterseite sehr rasch so heiß, daß ich es schnell wieder aufrecht plazierte. Außerdem werden im liegenden Betrieb die Vibrationen der Festplatte, abhängig vom Untergrund, wegen der größeren Auflagefläche deutlicher hörbar.

Die NSLU2 verfügt über zwei USB-2.0-Ports, so daß sich mit zwei externen Platten sogar ein Software-RAID-1 realisieren ließe. Weil dies aber keine Daten-, sondern lediglich Ausfallsicherheit bewirkt und das Gerät als Stromsparmaßnahme tagsüber ohnehin nicht ständig läuft, verzichte ich darauf und setze stattdessen auf regelmäßige Datensicherungen. In meinem Anwendungsszenario kann die Wiederherstellungsdauer bei einem Plattenausfall vernachlässigt werden, solange sich die Nutzdaten aus Backups zurückspielen lassen. Wegen des externen USB-Gehäuses sind der Tausch der HD, die Grundinstallation des Betriebssystems und das Zurückspielen von Sicherungsdaten, angeschlossen an eine andere Maschine, kaum ein größeres Problem als das des dafür nötigen Zeitaufwands.

Aufgrund der vollständigen Unterstützung der NSLU2 durch das Debian-Projekt und durch eine ausführliche Installationsanleitung von Martin Michlmayr - an dieser Stelle dafür ganz herzlichen Dank! - ist der Austausch der Original-Firmware von Linksys gegen das freie Betriebssystem mittlerweile zu einer Kleinigkeit geworden. Ein gewisses Maß an Linux-Kenntnissen, grundsätzliches Wissen über die Debian-Distribution und Vertrautheit mit administrativen Aufgaben vorausgesetzt, wie sie beim Betrieb jedes Servers auftreten, ist der Wechsel ein Kinderspiel. Weil Martins Anleitung wirklich erschöpfend beschrieben und ausreichend mit Screenshots bebildert ist, erspare ich mir an dieser Stelle die Wiedergabe meiner eigenen Installations-Schrittliste anhand seiner Dokumentation. Ich bin lediglich der Anleitung gefolgt. Weitere Installations-Logs bzw. -Anleitungen lassen sich aber auch im Web finden, wenn man gezielt danach sucht.

Als Serverdienste laufen auf der NSLU2 derzeit:

Syslog-NG (hauptsächlich für Firewall-Logs)
DHCP
DNS (BIND9)
RADIUS
NFS (im Userspace)
Lighttpd mit FastCGI und PHP 5.2
MySQL 5

MySQL ist nicht wirklich mein dauerhafter Ernst. Ich wollte nur sehen, ob das funktioniert und wie sich ein System mit nur 32 MB RAM verhält, wenn man noch einen Samba-Server dazupackt. In meinem Arbeitsumfeld sind Server mit derart geringen Ressourcen längst ausgestorben. Fazit: Es geht. Das Reaktionsverhalten ist zwar bisweilen enervierend langsam, weil die NSLU2 dabei fröhlich swappt, aber es geht. Abzüglich Samba und MySQL macht das Maschinchen sogar richtig Spaß. Und man hört dabei - nichts.