Switch to English Version

WD Sentinel DX4000 NAS

Januar 2020

Das WD Sentinel DX4000 ist ein kleines 4-Bay NAS aus 2011. Geht man nach dem Lizenzsticker läft darauf ein Windows Storage Server 2008 R2. Das Betriebssystem wäre auf den Festplatten zu finden. Die in meinem Gerät waren jedoch leer. Nach langem Suchen wie das System wiederhergestellt werden kann mit Whitelists und Zurücksetzen auf Factory Defaults habe an dem Punkt aufgegeben, an dem ich 6 Stunden warten soll, nur um danach einen Blick in eine Logdatei auf dem USB Stick zu werfen, was der aktuelle Fehler ist.

Glücklicherweise hat Martin Meise bereits herausgefunden, wie sich auf dem Gerät Linux installieren lässt und darüber gepostet auf community.wd.com.

Seinen Tutorials zu folgenden Themen habe ich befolgt:

Hier möchte ich daher eine kurze Zusammenfassung geben, wie sich Debian auf dem WD Sentinel DX4000 installieren lässt.

Zuerst wird das Gehäuse durch herausschrauben der fünf Schrauben an der Rückseite geöffnet. Die Möglichkeit habe ich genutzt mir das Mainboard näher anzuschauen. Dort musste drigend die Wärmeleitpaste erneuert werden.

Die CPU ist ein Intel Atom D525 mit 2 Kernen auf 1,8 GHz getaktet. Verbaut sind 2 Gb DDR RAM “PC3-10600 DDR3 1332MHz / 9-9-9-24 / Samsung M471B5773DH0-CH9”.

Auf der anderen Seite des Mainboards sollte J23 zu finden sein. Die vier kleineren Pads sind 3V, RX, TX und GND (im Foto von oben nach unten) und verbunden mit ttyS1.

Dort werden kurze Kabel angelötet, sodass ein USB Serial TTL Adapter damit verbunden werden kann. RX an TX, TX and RX und GND an GND. Mit einem Linux als Host funktionierte das am Einfachsten (alle Zeichen wurden korrekt dargestellt und Eingaben im Terminal wurden korrekt an das Gerät übertragen ohne, dass dort eine USB Tastatur angeschlossen werden musste).

Mit screen /dev/ttyUSB0 115200 wird ein Terminal mit 115200 Baud geöffnet. Als nächstes Netzwerk an Port 1 anschließen. Netzteil und ein USB Stick mit dem Debian ISO werden auch benötigt.

Ich habe mich dazu entschieden das System auf einer kleinen SSD zu installieren. Die Schächte sind nicht für 2,5" Festplatten ausgelegt, weshalb die obere Feder entfernt werden musste. So passt die SSD zwar, kann jedoch von selbst herausfallen. Eine Holzplatte in der Größe einer 3,5" Festplatte mit aussparung für die SSD löst das Problem für mich.

Debian Installation

Als nächstes wird ein USB Stick vorbereitet, von dem das Betriebssystem installiert werden soll.

Unter www.debian.org/distrib/index.en.html die “64-bit PC netinst iso” herunterladen. (Zu diesem Zeitpunkt war die aktuellste Version Debian 10 Buster). Mit Rufus kann die ISO unter Windows auf den Stick geschrieben werden. Dabei sicherstellen GPT als partition scheme und copy mode ISO auszuwählen.

Das Mainboard hat keinen Monitoranschluss, sodass die Interaktion über den Serial Port stattfinden muss. Auf dem fertig geschriebenen USB Stick die Datei boot/grub/grub.cfg öffnen und über dem ersten menuentry Block die folgenden Zeilen einfügen.

menuentry --hotkey=g 'Serial Console install' {
 set background_color=black
 linux    /install.amd/vmlinuz vga=off --- console=ttyS1,115200n8
 initrd   /install.amd/gtk/initrd.gz
}

Zu terminal_output muss console hinzugefügt werden: terminal_output gfxterm console.

Jetzt ist der Stick bereit für den Sentinel.

Stick in einen der USB 3 Ports auf der Rückseite stecken, SSD einbauen und Power Button drücken.

Nach wenigen Sekunden heißt der Sentinel und Wilkommen:

Version 2.13.1216. Copyright (C) 2011 American Megatrends, Inc.
BIOS Date: 10/18/2011 10:30:10 Ver: 0ABYK015
Press <DEL> or <F2> to enter setup.

Oder so ähnlich. Folge den Anweisungen und wir sehen das bekannte BIOS Menü.

Die Serielle Ausgabe kann eingestellt werden unter Advanced → Serial Port Console Redirection → Console Redirection Settings → Terminal Type . Ich bin Martins Empfehlung gefolgt und habe VT-UTF8 ausgewählt.

Als nächstes unter Boot alle Boot Optionen ausser die SSD deaktivieren (der wo das System drauf installiert werden soll). Zuletzt unter Save & Exit auf Save Changes. Dann runterscrollen zum Abschnitt “Boot Override” und den USB Stick auswählen. Das Gerät sollte jetzt vom Stick Booten mit einer neuen Option “Serial Console Install”.

Jetzt folgt die übliche Installation, auf die ich hier nich n&aum;her eingehen werde. Die Zeitzone einzustellen ist offensichtlich nicht so wichtig. Ich hab mich gegen eine Installation mit Verschlüsselung entschieden (“Guided - use entire disk”), da dieses NAS als offsite Backup genutzt werden soll und ohne mein Zutun booten soll. Wenn nach einem Netzwerk Interface gefragt wird: enp3s0 ist das mit der Beschriftung (1), enp4s0 ist mit (2) Beschriftet.

An einem Punkt wird nach der zu installierenden Software gefragt (“Choose software to install”). Dort alles bis auf ssh und standart system utilities mit Leertaste deselektieren. Mit [Enter] gehts weiter.

Wenn das System gestartet ist mit dem angelegten user (nicht root) einloggen.

Schnell bemerkte ich, dass sudo nich installiert ist und manche Programme nur mit /sbin/ davor gestartet werden können. Die Lösung ist:

su -
*Enter the root password* 
apt install sudo
usermod -aG sudo [username] (*with [username] beeing your username* )
reboot

Zu diesem Zeitpunkt sind wir noch immer per Serial Adapter verbunden.ip a Zeigt und die zugewiesene IP Adresse. Von einem anderen Rechner einfach per SSH verbinden und der USB Adapter kann entfernt werden.

Jetzt haben wir ein WD Sentinel mit einem Debian und können unsere Festplatten hereinschieben (bei mir nur bis zu drei Stück) und es so einrichten, wie wir möchten.

LCD

INITIALIZING OK
SEARCHING...

If the LCD at least would be off. Oh well, lets see how to control this sucker.

Looking around I found out that the display is using the Hitachi HD44780 LCD driver. lcdproc is able to control it so I downloaded and installed it:

sudo apt-get install libusb-dev libncurses-dev libxosd-dev build-essential
cd ~
wget http://sourceforge.net/projects/lcdproc/files/lcdproc/0.5.7/lcdproc-0.5.7.tar.gz
tar xzf lcdproc-0.5.7.tar.gz
cd lcdproc-0.5.7
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-drivers=curses,hd44780,picolcd,xosd
make
sudo invoke-rc.d LCDd stop
server/LCDd -f -c LCDd.conf

Ein rotes Fenster sollte sich öffnen, schließ mit ^C. Als nächstes LCDd.conf in dem aktuellen Pfad öffnen und DriverPath ändern zu: DriverPath=/usr/lib/lcdproc/, dann speichern.

sudo make install
sudo cp scripts/init-LCDd.debian /etc/init.d/LCDd
sudo cp scripts/init-lcdproc.debian /etc/init.d/lcdproc
sudo chmod +x /etc/init.d/LCDd /etc/init.d/lcdproc

Nachdem die startscript kopiert sind kann die config auf das LCD angepasst werden. Mit sudo die config am neuen Ort /etc/LCDd.conf öffnen.

Nach Driver=curses suchen und auf Driver=hd44780 ändern.

Dann zum Abschnitt [hd44780] gehen. ConnectionType=winamp und Size=16x2 sind die zu verändernden Zeilen.

Speichern und Schließen.

sudo invoke-rc.d LCDd start
sudo update-rc.d LCDd defaults

Nach dem start befehl sollte das LCD irgendwas anderes anzeigen.

Ich möchte lieber eine statische Anzeige, also zurück in die /etc/LCDd.conf und folgende Einstellungen vornehmen:

ServerScreen=off and Heartbeat=off

LCD ip und uptime

Jetzt zeigt das LCD die Nachricht von LCDd “I’m waiting for a client”. Man könnte hier LCDproc nutzen und fancy blinkende Anzeigen basteln, die alles mögliche anzeigen. Ich wollte für ein NAS jedoch etwas Einfaches und Nützliches.

Dazu habe ich ein einfaches perl script gefunden, was etwas Text anzeigt. Zusammen mit der lcdproc Dokumentation habe ich ein nasinfo.pl script geschrieben, welches genau das tut was ich wollte.

Tipp: Ein guter Zeitpunkt sich einen Kaffee zu machen ist nach der Eingabe von cpan Net::Address.. und bestätigen mit “yes”.

cd ~
wget https://figch.de/wdsentinel/nasinfo.pl
sudo chmod +x nasinfo.pl
sudo cpan Net::Address::IP::Local
yes
sudo cpan Unix::Uptime

Damit wird das besagte Script heruntegeladen und ausführbar gemacht. Ich empfehle die Datei gr&uum;ndlich durchzulesen, bevor sie blind ausgeführt wird. Die Perl Module, um IP Adresse und Uptime auszulesen, mussten mit cpan installiert werden.

Zum Austesten manuell starten mit ./nasinfo.pl. Im Terminal wird nichts ausgegeben, jedoch das LCD sollte etwas tun. Beenden mit ^C.

Um es automatisch auszuführen habe ich sudo crontab -e verwendet und folgende Zeile hinzugefügt:

@reboot screen -dmS nasinfo bash -c '/home/[username]/nasinfo.pl;exec bash'

Dazu muss screen installiert sein: sudo apt install screen.

Lüfter

Als Nächstes ist der Lüfter auf der Rückseite an der Reihe. Bei meinem Exemplat war er deutlich zu hören.

Ich bin der Anleitung “how to control fan speed” auf askubuntu.com gefolgt.

sudo apt install lm-sensors fancontrol
sudo sensors-detect

Alles mit “yes” beantworten.

sudo service module-init-tools restart

Damit der Lüfter auch langsamer dreht, wenn die Temperatur niedrig ist, müssen wir zuerst herausfinden, welcher Sensor der Richtige ist.

watch sensors zeigt uns alle verfügbaren Sensoren mit aktuellen Werten. Einen davon aussuchen und merken, wieviele Temperatursensoren darüber liegen oder grob, welche Temperatur er aktuell misst. Um die Lüftersteuerung einzustellen starten wir sudo pwmconfig und folgen den Anweisungen.

“Do you want to set up its configuration file now?”. “y” für Ja. Pfad auf Default lassen mit [Enter].

Dann den Lüfter wählen. Bei mir war es hwmon1/pwm2 .

Jetzt werden die unterschiedlichen Temperatursensoren angezeigt mit den gemessenen Temperaturen, jedoch ohne Beschriftung. Mit dem Wissen von watch sensors kann der passende Sensor gefunden werden, da sie in der gleichen Reihenfolge stehen sollten.

Danach den Anweisungen zur Einstellung der minimalen und maximalen Temperatur und PWM Werte folgen. Am Ende “Save and Quit”. Die Werte lassen sich später anpassen in der Config /etc/fancontrol oder erneuten Ausführen von pwmconfig.

Um fancontrol zu aktualisieren einmal sudo service fancontrol restart ausführen.

Zuletzt den Autostart mit sudo service fancontrol enable aktivieren.

Zur Referenz meine fancontrol config: fancontrol

Ich empfehle hddtemp zu installieren: sudo apt install hddtemp. Damit lassen sich die Temperaturen der Festplatten durch sudo hddtemp /dev/sdx auslesen.

Das wars.