Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe hier nach den aktuellen Tutorials! Diese Anleitung wurde nur auf dem Conceptronic CH3MNAS getestet. Tutorials zu anderen Geräten sind hier zu finden.

Auf dem Conceptronic CH3MNAS lässt sich wie bereits auf dem CH3SNAS ein sogenanntes fun_plug installieren, um weitere Dienste wie beispielsweise Webserver oder Medienserver nachzurüsten. Um den Spindown der Festplatten nicht durch das fun_plug behindern zu lassen, kann man dieses auf einem USB-Stick installieren, was Inhalt dieses Artikels ist.

Das ffp an sich ist perfekt, um direkt auf einen USB-Stick gepackt zu werden. Ich hatte bereits schon einmal demonstriert, wie dies für bestimmte Programme funktioniert, jetzt ist das gesamte fun_plug dran, da dann Probleme, wie sich nicht abschaltende Festplatten und lange Antwortzeiten beim ersten Aufrufen einer Webseite (lighttpd auf der ausgeschalteten Festplatte) endlich der Vergangenheit angehören.

Im nun folgenden Tutorial gelten diese Abkürzungen:

  • NAS: Conceptronic CH3MNAS
  • ffp: fonz fun_plug 0.5
  • “#:” bedeutet Konsoleneingabe (ohne die Zeichen #:)
  • [enter] bedeutet Das Drücken der Return-Taste auf der Tastertur

Ich bitte darum das Tutorial erst einmal KOMPLETT zu lesen, BEVOR man es durchführt! Viele Fragen kommen dann erst gar nicht auf und manche Probleme klären sich so von selbst!

Ein kurzes Wort noch zum fun_plug 0.5 auf dem CH3MNAS. Das ffp0.5 ist eigentlich nicht für diese Architektur konzipiert worden und kann unter Umständen von Zeit zu Zeit ausfallen oder nicht richtig antworten. In diesen Fällen ist nach einem Restart des Geräts die Welt meist wieder in Ordnung. Das kompatible ffp0.6 ist zwar bereits in der Mache, jedoch derzeit noch nicht fertig. Ich habe bei mir das ffp0.5 nun seit einiger Zeit stabil laufen, daher kann ich zu einer Installation raten.

Für dieses Tutorial braucht man oh wunder einen USB-Stick. Dieser wird im laufen dieses Beitrag komplett formatiert, d.h. alle Daten gehen verloren! Größenmäßig sollte der Stick oberhalb von 512MB, besser bei einem 1GB liegen. Eine komplett-Installation des fun_plug benötigt etwa 500MB inklusive Paketverzeichnis (Größe ~100MB, wobei man das auch auf der Festplatte halten kann, da man es eh nur einmal braucht). Wichtig in diesem Tutorial ist die Menge der Festplatten im NAS. Je nach dem wird der USB-Stick anders angesprochen. Bei einer Festplatte wird der USB-Stick als “sdb”, bei zwei Festplatten als “sdc” angesprochen. Ich spreche im Tutorial und in allen Dateien immer von sdc, ich bitte dies selbstständig auf sdb zu ändern, wenn nur eine Festplatte im Gehäuse steckt! Zudem braucht das NAS eine funtionierende Internetverbindung, sonst wird meine Anleitung in der momentanen Form nicht laufen! Bitte auch drauf achten, dass ein funktionierender DNS-Server zur Verfügung steht.

Bitte jetzt den USB-Stick anstecken! Das grundlegende Problem ist zunächst das Dateisystem des USB-Sticks. Ich rate zu ext2 , da dies bereits im NAS selbst eingesetzt wird und als relativ robust anerkannt ist. Das Problem ist nun, dass die meisten Leser vermutlich kein Programm (z.B. Partition Magic) oder auch keine Umgebung (Linux) installiert haben um den Stick auf ext2 zu formatieren.

Zunächst muss sichergestellt sein, dass das NAS über eine gültige Netzwerkkonfiguration (“Setup” -> “LAN”) mit Gateway & DNS-Server verfügt. Wird die IP-Adresse automatisch bezogen, ist das im Regelfall korrekt eingestellt.

Wir werden zunächst ein reguläres ffp0.5 auf dem NAS einrichten. Wenn man keinen Zugang hat (z.B. neues NAS), dann bitte folgende drei Punkte befolgen:

  • Download dieser Datei  und dieser Datei 
  • Bitte drauf achten, dass die Datei “fun_plug” genau so benannt ist, bevor diese über das normale File-Share ins Hauptverzeichnis auf die erste Festplatte (Zumeist als “Volume_1” über Samba freigegeben) gespeichert wird.
  • Beim Reboot wird das normale fun_plug 0.5 initialisiert.

Nun werden wir den Stick frisch partitionieren. Bitte vor dem ausführen der folgenden Schritte prüfen, ob der Stick wirklich dran steckt!

FFP USB

Unter Windows verwendet man dazu am einfachsten das Tool PuttY  von hier . Nach dem Start muss man die Adresse des NAS unter “Host Name” angeben, “Telnet” unter Connection Type anwählen und auf “Open” klicken. Nun öffnet sich die Konsole, wo man direkt eingeloggt ist. Sollte sich trotz der korrekten Eingabe der Adresse des NAS keine verbindung herstellen lassen, so prüft man zunächst ob ein ffp.log auf Volume_1 oder Volume_2 angelegt wurde. Meistens ist dies nicht der Fall. Daher einfach die beiden Dateien fun_plug und fun_plug .tgz auf das andere Share zusätzlich ablegen.

Zunächst braucht man dann noch das usb-storage.ko-Modul, damit der USB-Stick erkannt werden kann:

1
2
3
4
mkdir -p /mnt/HD_a2/.bootstrap/
wget http://wolf-u.li/u/176 -O /mnt/HD_a2/.bootstrap/usb-storage.ko
cp /mnt/HD_a2/.bootstrap/usb-storage.ko /lib/modules/
insmod /lib/modules/usb-storage.ko

![FFP USB] Nun benötigt man fdisk zur Formatierung des USB-Sticks (Wer sich über “cat” wundert: Klick):

1
cat | fdisk /dev/sdc

FFP USB

Dieses Tool zeigt nun die Zeile “Command (m for help):”. Zunächst lässt man sich mittels “p[enter]” die momentanen Partitionen anzeigen. Die Ausgabe sieht bei meinem 512MB Test-USB-Stick so aus:

1
2
3
4
5
6
7
Disk /dev/sdc: 519 MB, 519569408 bytes
16 heads, 62 sectors/track, 1022 cylinders
Units = cylinders of 992 * 512 = 507904 bytes`

| Device Boot | Start | End  | Blocks | Id      | System      |
|-------------|-------|------|--------|---------|-------------|
| /dev/sdc1   | 1     | 1022 | 506881 | c Win95 | FAT32 (LBA) |

Nun löschen wir diese eine Partition:

1
d[enter]

Und legen eine neue an:

1
2
3
4
5
6
7
n[enter]
p[enter]
1[enter]
[enter]
[enter]
t[enter]
83[enter]

Nun haben wir eine Partition erstellt, die die maximale Größe des USB-Sticks ausfüllt und als Linux-Partition markiert ist. Die Änderungen sehen wir uns noch nochmal an und speichern diese anschließend:

1
2
p[enter]
w[enter]

FFP USB

Diese werden wir nun noch auf ext2 formatieren:

1
mke2fs /dev/sdc1

Damit ist der USB-Stick fertig vorbereitet. Darauf ist nun ein Dateisystem mit dem Typ ext2 in der vollen Größe des Sticks angelegt.

Der nächste Schritt ist nun, das FFP_SETUP_SCRIPT herunterzuladen:

1
2
3
mkdir /mnt/HD_a2/.bootstrap/
wget http://wolf-u.li/u/177 -O /mnt/HD_a2/.bootstrap/setup.sh
chmod +x /mnt/HD_a2/.bootstrap/setup.sh

Wenn man die obige minimal-umgebung gestartet hat, dann kann man diese nun vor dem Restart noch entfernen:

1
rm -R /mnt/HD_a2/ffp/

Nun muss das NAS einmal neu gestartet werden, was entweder über das Webinterface oder die Konsole möglich ist:

1
reboot

FFP USB

Nach einem Reboot ist das ffp vom USB-Stick geladen und automatisch telnet aktiviert. Zunächst sollte man sich nun mit einem geeigneten Telnet-Programm (unter Linux einfach nur “ssh”, unter Windows verwende ich Putty ,wie oben zu sehen) auf dem NAS einloggen. Bitte für den folgenden Schritt einfach mal das Bild links ansehen, damits klarer wird.

  • Login as: root
  • Passwort sollte keines verlangt werden

Wenn (oder direkt) “/mnt/HD_a2 #” oder “/ #” erscheint, ist man eingeloggt und kann fortfahren. Als eine der ersten Aktionen wird nun /etc/shadow mittels pwconv erstellt. Das Passwort wird anschließend mittels “passwd” geändert:

1
2
pwconv
passwd

Wenn das neue Passwort zweimal eingegeben wurde, muss man den root-User noch aktivieren und dessen Home-Verzeichnis verlegen:

1
2
3
usermod -s /ffp/bin/sh root
mkdir -p /ffp/home/root/
usermod -d /ffp/home/root/ root

Nun kann man den Login nun direkt testen. Hierzu gibt man im Anschluss:

1
login

ein. Wenns nicht klappt, einfach die Prozedur ab “passwd” wiederholen.

Wenn alles geklappt hat, dann muss das Passwort in den internen Flash-Speicher gespeichert werden.

1
store-passwd.sh

Nun wird der SSH-Server aktiviert, da telnet bereits als sehr unsicher (v.a. aufgrund des unverschlüsselten Verkehrs) bekannt ist (das erste Starten wird eine Weile dauern und wirft lustige Zeichen in der Kommandozeile):

1
2
chmod a+x /ffp/start/sshd.sh
sh /ffp/start/sshd.sh start

Nun den Telnet-Client noch nicht schließen! Öffne gleichzeitig nochmals PuttY und verwende aber statt telnet nun SSH. Versuche eine Verbindung zum NAS. Diese wird (hoffentlich) erfolgreich sein.

Nun (und NUR wenn der Login erfolgreich war!) kann der Telnet-Server deaktiviert werden:

1
chmod -x /ffp/start/telnetd.sh

Auf dem usbstick ist unter “/mnt/usbstorage” ein Verzeichnis namens “ffp” angelegt worden. Darin befindet sich ein Unterverzeichnis “start”, in dem verschiedene Startdateien für diverse Dienste liegen. Typischerweise weisen davon nur wenige das Attribut X, also Executable. Nur diese werden auch beim Start des fun_plug ausgeführt. Ein paar Zeilen weiter oben habe ich “chmod +x sshd.sh” angeordnet. Diese Anweisung markiert eine Datei als ausführbar. Alle Dateien im Start-Ordner, die als executable markiert sind, werden vom fun_plug aufgerufen.

Weitere Software kann man nun einfach installieren. Hierzu muss man zunächst alle Pakete von fonz auf das NAS syncronisieren. Ich habe das Verzeichnis auf dem USB-Stick angelegt. Wenn es woanders sein soll, sollte das der versierte Nutzer selbst erledigen können ;)

1
2
3
4
5
mkdir /ffp/pkg/
cd /ffp/pkg/
wget http://wolf-u.li/u/173/ -O /ffp/pkg/updater.sh
chmod a+x /ffp/pkg/updater.sh
sh /ffp/pkg/updater.sh

Schlägt der rsync-Befehl mit der Meldung “rsync: getaddrinfo: inreto.de 873: Name or service not known” fehl, so ist der DNS-Server nicht korrekt eingetragen.

Mit diesen Befehlen habe ich einen Ordner namens “pkg” im Ordner “ffp” erstellt. Zusätzlich wurde nun der Ordner “packages” angelegt, der alle kompilierten Pakete von fonz enthält.

Nun muss man zunächst die Programme auf den neuesten Stand bringen:

1
2
3
4
funpkg -u /ffp/pkg/packages/*.tgz
funpkg -i /ffp/pkg/packages/*.tgz
funpkg -u /ffp/pkg/additional/*/*.tgz
funpkg -i /ffp/pkg/additional/*/*.tgz

Zusätzliche Pakete (z.B. mysql), welche im kompiliert habe, habe ich im Verzeichnis /ffp/pkg/additional abgelegt. Diese zusätzlichen Pakete finden sich in meinem Repository und werden per updater.sh heruntergeladen. Als nächstes rate ich dieses einzurichten und die Zeitsynchronisation einzuschalten.