NSLU2 als Linux-Server

Diese Seite beschreibt mein Vorgehen, um aus einem günstigen Consumer-NAS-Gerät einen vollwertigen Linux-Server zu machen.
Die Anleitung ist primär als Installations-Erinnerung für mich als vergesslichen Menschen gedacht, wenn sie jedoch noch für andere von Nutzen ist, freut es mich. Dieses HowTo erhebt aber keinerlei Anspruch auf Vollständigkeit. Es ist lediglich eine Beschreibung, wie ich die NSLU2 als Server zum Laufen gebracht habe.
Bei meiner Grundinstallation habe ich mich an das englischsprachige HowTo von Martin Michlmayer gehalten, welches als Lektüre für den Einstieg sehr empfehlenswert ist.

NSLU2, was ist das?
NSLU2 steht für Network Storage Link for USB 2.0 und ist ein NAS-Gerät der Firma Linksys für den privaten Anwender.
Das Gerät ist ca. handflächengroß, verfügt über einen mit 266 MHz getakteten ARM-Prozessor sowie 32 MB RAM und eignet sich aufgrund des niedrigen Preises (ca. 80 Euro) und des geringen Energiebedarfs vorzüglich als Server im nicht-professionellen (also privaten) Bereich.
Das besondere an der (unter Fans liebevoll „slug“ – „Schnecke“ genannten) NSLU2 ist die Möglichkeit, eine alternative Firmware zu installieren und somit das recht funktionsarme Standard-Betriebssystem durch ein vollwertiges Linux zu ersetzen.

NSLU2
NSLU2, hier mit einem USB-Stick als einzigem angeschlossenen Datenträger

Installation von Debian 4.0 (Etch)
Es gibt für die NSLU2 mehrere Linux-Distributionen. Alle kann man übersichtlich in einer Tabelle auf der Webseite nslu2-linux.org finden.
Ich habe mich für die Installation einer vollwertigen Debian-Distribution entschieden. Für einen mit Linux unerfahrenen Nutzer wäre wahrscheinlich „Unslung“ sinnvoller, da hier die orginale Web-Konfigurationsoberfläche der NSLU2 erhalten bleibt.
Wer allerdings vor der Konfigurationper Shell und Konfigurationsfiles keine Angst hat, erhält mit der Nutzung von Debian oder auch einer „SlugOS“-Variante ein flexibleres und umfangreicheres Linux-System.

Um Debian installieren zu können, benötigt man zunächst eine zu installierende Firmware, diese erhält man unter slug-firmware.net. Ich habe die zum Zeitpunkt meiner Installation aktuelle Debian-Firmware Debian/NSLU2 Stable 4.0r0 (erschienen am 8.4.2007) verwendet.

Um dieses Firmware-Image auf die NSLU2 zu flashen, gibt es drei prinzipielle Möglichkeiten:

  • über die orginale Weboberfläche der NSLU2
  • mithilfe des Linux-Tools upslug2
  • mit einem Windows-Tool

Da ich auf meinem PC die Linux-Distribution Kubuntu verwende, habe ich mich für die Installation per uplsug2 entschieden, welche sehr komfortabel und problemlos funktionierte.
uplsug2 installieren:

sudo apt-get install upslug2

Nun wird die NSLU2 (ausgeschaltet und mit abgezogenen USB-Geräten) in den Upgrade-Modus versetzt, indem man die z.B. mit einer Büroklammer den Reset-Button an der Rückseite der NSLU2 drückt und gedrückt hält, anschließend den Power-Knopf an der Vorderseite drückt und den Reset-Button erst freigibt, wenn die oberste Diode ihre Farbe geändert hat. Nun sollten diese LED abwechselnd rot/grün blinken.
Dann kann die heruntergeladene Firmware installiert werden:

sudo upslug2 -i di-nslu2.bin

Firmware erfolgreich installiert
Firmware erfolgreich installiert

Nachdem die Firmware installiert wurde, startet automatisch der Debian-Installer, der per SSH erreicht wird (Benutzername installer / Passwort install). Die USB-Festplatte / USB-Stick muss nun wieder angeschlossen werden, da Debian auf diesem Medium installiert wird. Bis der Installer nach der Installation der Firmware erreichbar ist, können gern 10 Minuten und mehr vergehen, also etwas Geduld.

ssh installer@192.168.1.77

Falls im orginalen Linksys-Webinterface eine IP-Adresse konfiguriert wurde, ist das Gerät nun unter dieser Adresse erreichbar, ansonsten wird das Netzwerkinterface per DHCP konfiguriert. Wenn kein DHCP-Server verfügbar ist, findet man die NSLU2 unter 192.168.1.77.
Wenn Debian auf einem USB-Stick installiert wird, muss man sicherstellen, dass eine Swap-Partition mit mindestens 128 MB erstellt wird.

Folgende Module müssen bei der Installation ausgewählt werden:

  • ext3-modules-2.6.18-4-ixp4xx-di: EXT3 filesystem support
  • partman-auto: Automatically partition storage devices (partman)
  • partman-ext3: Add to partman support for ext3
  • scsi-core-modules-2.6.18-4-ixp4xx-di: Core SCSI subsystem
  • usb-storage-modules-2.6.18-4-ixp4xx-di: USB storage support

Wenn nach ca. 2 Stunden Installation alles geklappt hat, kann die NSLU2 nun mit Debian neu gestartet werden und man kann sich per SSH mit der Maschine verbinden und sie konfigurieren.

Installation erfolgreich abgeschlossen
Installation erfolgreich abgeschlossen

Power-Button
Der Power-Button der NSLU2 sendet ein Strg+Alt+Entf-Signal an das System. In der Standard-Debian-Installation bedeutet dies einen Reboot.
Wen man möchte, dass die NSLU2 beim Drücken des Power-Buttons herunterfährt und sich ausschaltet, muss in der Datei

/etc/inittab

die Zeile

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

durch

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now

ersetzt werden.

Laufende Dienste
Die NSLU2 soll in meinem Netzwerk verschiede Dienste bieten. Dazu gehören:

  • VPN-Server (OpenVPN) zum Fernzugriff auf das LAN und um Freunden Zugriff zu gewähren
  • Samba als Fileserver in einer heterogenen Windows- und Linuxumgebung
  • CUPS um einen Farblaserdrucker (Epson AcuLaser C1100) als Netzwerkdrucker bereit zu stellen
  • Bittorrent-Client (rtorrent), um den zumeist ungenutzten 1MBit-Upload des DSL-Anschlusses zur Verteilung von verschiedenen Linux-Distributionen zu nutzen

OpenVPN
Zur Installation und Inbetriebnahme von OpenVPN kann die Anleitung, die ich für Ubunutu 6.10 verfasst habe, verwendet werden.

Samba
Der Samba-Server ist schon installiert, wenn man bei der Debian-Installation die Option „File-Server“ ausgewählt hat.
Die Konfiguration des Servers geschieht zentral über die Datei

/etc/samba/smb.conf

Zur detaillierten Konfiguration von Samba sind diese HowTo-Sammlung und der kompaktere Eintrag im Ubuntuusers-Wiki (für Ubuntu, aber daher auch mit kleinen Abstrichen für Debian geeignet) empfehlenswert.

CUPS
Auch CUPS ist bereits installiert, wenn man bei der Installation „Print-Server“ ausgewählt hatte.
CUPS ist recht einfach über ein Webfrontend konfigurierbar, welches man über

http://192.168.1.77:631 (IP-Adresse durch die eigene ersetzen)

erreichen kann.
Mit der Standardeinstellung wird jedoch unter dieser Adresse zunächst nichts erscheinen, ich habe folgende Änderungen in der CUPS-Konfigurationsdatei

/etc/cups/cupsd.conf

durchgeführt:
Die Zeile

Listen localhost:631

ersetzt durch

Port 631

Nun ist die CUPS-Oberfläche auch für Rechner im LAN erreichbar.
In den <Location>-Bereichen habe ich folgende Einstellungen gewählt:

<Location />
AuthType Basic
Require user @SYSTEM
# Allow shared printing and remote administration…
Order allow,deny
Allow @LOCAL
</Location>

<Location /admin>
AuthType Basic
Require user @SYSTEM
# Allow remote administration…
Order allow,deny
Allow @LOCAL
</Location>

<Location /admin/conf>
AuthType Basic
Require user @SYSTEM
# Allow remote access to the configuration files…
Order allow,deny
Allow @LOCAL
</Location>

CUPS fordert standardmäßig eine SSL-Verschlüsselung der Weboberfläche, die aber nicht verfügbar ist. Diese Forderung habe ich durch Einfügen der Zeile

DefaultEncryption Never

abgeschaltet.
Nun kann CUPS durch Eingabe von

/etc/init.d/cupsys restart

neu gestartet werden und die Konfigurationsoberfläche sollte problemlos mit einem Browser erreichbar sein. Diese Oberfläche ist sehr einfach und selbsterklärend, der Drucker kann im Normalfall nun unproblematisch in Betrieb genommen werden.

Epson AcuLaser C1100
Für meinen Laserdrucker Epson AcuLaser C1100 ist leider kein fertiger Treiber in Debian enthalten.
Der folgende Abschnitt ist daher nur für Nutzer eines AcuLaser C1100 interessant.
Zunächst laden wir von der japanischen Avasys-Webseite die Datei

Epson-ALC1100-filter-1.2.tar.gz (Source File)

Aus dieser Datei können die benötigten Treiber kompiliert werden.
Zum Kompilieren benötigen wir einige Pakete, diese installieren wir:

apt-get install gcc gawk make psutils build-essential libcupsys2-dev

Nun können wir die entpackten Quellen kompilieren und installieren:

./configure –prefix=/usr/local/
make
make install

Die Treiberdatei findet man nun unter

/usr/share/cups/model/Epson-AL-C1100-fm3.ppd

Mit diesem Treiber kann der C1100 nun in der Weboberfläche von CUPS installiert und in Betrieb genommen werden.

Bittorrent
Als kommandozeilenbasierten Bittorrent-Client habe ich mich für rtorrent entschieden. Dieser ist schnell und einfach installiert:

apt-get install rtorrent screen

Eine Anleitung für die Shurtcuts zur Steuerung von rtorrent ist im Netz verfügbar.
rtorrent kann man sehr komfortabel in einem Screen starten:

screen rtorrent

Wenn rtorrent läuft, können wir mit

Strg+A+D

auf die Shell zurückkehren.
Die rtorrent-Oberfläche können wir bei Bedarf mit

screen -r

wieder öffnen.

Folgende Datei

/home/username/.rtorrent.rc

verwende ich, um die Einstellungen für rtorrent festzulegen (muss an die eigenen Bedingungen angepasst werden):

# Default directory to save the downloaded torrents.
directory = /media/bittorrent
# Default session directory.
session = /media/bittorrent

# Watch a directory for new torrents, and stop those that have been deleted.
schedule = watch_directory,5,5,load_start=/media/bittorrent/*.torrent
schedule = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
schedule = low_diskspace,5,60,close_low_diskspace=100M

# Port range to use for listening.
port_range = 61407-61408

# Set whetever the client should try to connect to UDP trackers.
use_udp_trackers = no

check_hash = yes

Links
Die folgenden Links sind im Zusammenhang mit der NSLU2 interessant:
Wikipedia-Eintrag
NSLU2-Linux, das zentrale Wiki fast aller Projekte rund um die NSLU2
Die zu installierende Firmware auf slug-firmware.net
Deutschsprachiges Forum zur NSLU2
Englischsprachige Anleitung, nach der ich Debian installiert habe
Englischsprachiger Artikel zum Hacken der NSLU2

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*