GnuBee2 – Erwerb und Preis

Ich hatte genug von meiner alten NAS und habe mir nach einer umfassenden Recherche zu meinen Anforderungen und Möglichkeiten eine GnuBee2 bestellt.

Die GnuBee Personal Cloud 2 ist eine NAS, bestehend aus freier, offener Hard- und Software, die bis zu 6 3,5-Zoll-SATA-Festplatten und/oder SSD, eine SD-Karte, eine Serielle Schnitstelle und 3 Gigabit LAN-Ports unterstützt.
Die Hardware wurde um den SOC MediaTek-MT7621A-CPU, welcher über zwei CPU-Kerne mit Hyperthreading verfügt die mit 880 MHz getacktet sind und auf 1,2 GHz übertaktet werden können sowie 512 MByte DDR3-Hauptspeicher gebaut. Dieser findet, wie hier gezeigt wird, in Zahlreichen Chinesischen WLAN-Routern verwendung.

Die vollständigen Blaupausen stehen zusammen mit der Dokumentation des Boards auf GitHub als PDFs unter CC-BY-SA 4.0 zur wirklich sehr freien Verfügung.

Als Kritikpunkt für das NAS sehe ich das „Gehäuse“. Dieses besteht aus zwei dünne Blech-Platten die mit je 3 Winkeln an das Mainboard geschraubt werden.

Ich habe meine Bestellung der GnuBee 2 am 04.02. 2018 auf der Internetseite Crowdsupply (USA) aufgegeben.
Der Versand erfolgte bereits am 07.02.2018 aus Portland (USA).
Die Lieferung dauerte insgesamt 18 Tage., geliefert wurde am 22.02.2018. Die Bestellung blieb 7 Tage zur Bearbeitung bei dem deutschen Zoll in Frankfurt am Main.

Der Preis für die NAS ohne steuer selbst war am 04.02.2018: 255,69 Euro. (324,00$ + 4,57 € Kreditkartengebühr für den Geldwechsel)
Die kosten für den deutsche Zoll betrugen 49,84 Euro.

So war die GnuBee 2 bei Ankunft verpackt

Mit Steuer, Versand und Kreditkartengebühren und der Gebühr für den
Währungsumtausch kostete mich das GnuBee 2 insgesamt 305,53 Euro.
Ein guter Preis für ein NAS mit Platz für 6 Festplatten, ohne Binary Blobs und inklusive „Gehäuse“.

mtd-utils für NAND Sicherung übersetzen

Es gibt im Netz viele Anleitungen zum Übersetzen der mtd-utils. Leider ist keine Einziger von mir aufgefundener Artikel auf meine Anforderungen zugeschnitten. Die meisten Anleitungen sind für sehr alte Versionen der mtd-utils verfasst, so das sie zum Beispiel davon ausgehen das kein ./configure Script für diese Software existiert oder die Anleitungen beziehen sich auf die besonderheiten des Cross-Compilings und lassen alles andere weg.

Hier ist meine Anleitung für das übersetzen der mtd-utils auf der NAS CL-35B2. Diese Anleitung wird benötigt um die Werkzeuge nanddump und nandwrite zu erhalten welche für ein Backup und Restore der NAS benötigt werden.

Die Anleitung kann direkt nach dem vorbereiten eines Buildsystems für die CL-35B2, und einem chroot in das Buildysystem, verwendet werden.

Die Bibliotheken werden direkt in das Buildsystem geschrieben und ich verwende das Paketmanagement nicht da es sich nur um das Buildsystem handelt, welches nach dem erfolgreichen übersetzten der Quellen wieder gelöscht wird. Sollte Dein Buildsystem Dauerhaft bestehen sollen empfehle ich Dir rpm-Pakete entsprechend dieser Anleitung zu erstellen.

1.) Vorbereitungen und Download der Sourcecodes

2.) zlib erstellen

3.) lzo erstellen

4.) e2sfprogs erstellen

5.) Die mtd-utils übersetzen

nach der Installation sind folgende Werkzeuge zusätzlich verfügbar.:

ToolNutzen
ubiupdatevol
ubimkvol
ubirmvol
ubicrc32
ubinfo Ausgabe von Informationen zum NAND Speicher und zur Partitionierung und zu den Details einer UBI-Partition
ubiattach
ubidetach
ubinize
ubiformat
ubirename
mtdinfoAusgabe von Informationen zum NAND Speicher und zur Partitionierung und zu den Details einer MTD-Partition
ubirsvol
ubiblock
ftl_format
doc_loadbios
ftl_check
mtd_debug
docfdisk
serve_image
recv_image
flash_erase
flash_lock
flash_unlock
flash_otp_info
flash_otp_dump
flash_otp_lock
flash_otp_write
flashcp
mtdpart Partitionierungswerkzeug für einen NAND Speicher
nanddump Export des Inhalts einer NAND-Partition
nandwrite zurückschreiben einer Sicherung in den NAND Speicher
nandtest
nftldump
nftl_format
rfddump
rfdformat
mkfs.ubifs
mkfs.jffs2
jffs2dump
jffs2reader
sumtool

Linux: eine einfache und „schöne“ Festplattenfüllanzeige

Ich stelle euch hier mein Script zur Festplattenfüllanzeige meiner Server zur verfügung, da viele meiner Freunde das Script von mir wünschten.
Ich habe das script auf meinen Server in der .bashrc Datei hinterlegt und es zeigt nach dem Login auf den Server, auch via SSH, werden die Fülldaten aller eingebundenen Datenträger angezeigt.

Die Ausgabe des Scriptes enspricht dem Folgenden Bild.:
Ausgabe meines Scripts drives.shDie Farben der Rahmen wird bei einer Belegung von 80% nicht mehr grün sondern gelb und ab sowie ab 90% Festplattenfülle in Rot dargestellt.

Die Breite der Darstellung passt sich beim Aufruf automatisch der im Terminalfenster verfügbaren Breite des Fensters an.

Auf meinem CL-25B2 NAS habe dieses Script, anstelle der .bashrc Datei in der Datei /etc/profile.local hinterlegt.

Verbesserungsvorschläge bitte in die Kommentare 😉

 

 

Da im WordPress die Formatierung von Shellscripten immer ungewünscht „angepasst“ wird, zusätzlich hier noch ein Download-Link für das Script.: http://dl.loteks.de/drives.sh

howto – Shellshock auf der NAS

Leider ist auch die Bash-Shell der NAS CL-35B2 vom shellshock betroffen.

Hier meine Anleitung, wie die Bash auf der NAS durch eine neue, selbst compilierte ersetzt werden kann

1.) Bash auf Shelshock Verwundbarkeit testen

Sollte bei einem der Tests die Meldung „VULNERABLE“ erscheinen, sollte die „Bash“ mit dieser Anleitung aktualisiert werden.
Sollten alle Tests „not vulnerable“ ausgeben ist diese Anleitung nicht interessant für Sie.
Ein Mirror des Scriptes ist unter der URL http://dl.loteks.de/shellshock_test.sh zu finden.

1.) Build Umgebung erstellen

Leider enthält die NAS CL-35B2 keine installierte Build-Umgebung. Von den 195MB Speicherplatz sind nur noch ca 40 frei, der Speicherplatz auf der NAS ist einfach zu klein um GCC und make zu installieren.

Ich habe einen USB stick angeschlossen, der sich als /dev/sdc meldet. (herauszufinden via dmesg)
via cfdisk habe ich auf diesem USB Stick zwei Partitionen angelegt, zuerst eine ein Gigabyte Swap Partition und im Anschluss den Rest als Linux Partition.

Im Anschluss den swap Speicher Partitionieren und aktivieren:

Das Dateisystem auf /dev/sdc2 erstellen und Das Laufwerk Mounten:

Anschließend die RPM Pakete der Verwendeten Linux Distribution herunterladen. Bei der Fantec CL-35B2 ist es leider noch Fedora ARM 12, welches ein wenig betagt ist. Ich habe unter http://dl.loteks.de/fedora12arm_rpms.tar.gz (größe 119 MB) ein Paket mit den, für das Compilieren der Bash notwendigen rpm-Paketen abgelegt.

Nach dieser, sehr sehr lange dauernden Installation (dies dauert auf der NAS mehrere Stunden!) befindet sich die chroot umgebung im Order /mnt/chroot

2.) Bash Quellen bereitstellen

Jetzt brauchen wir die Bash Quellen und Patches in der chroot-Ubgebung:

Ab diesem Punkt liegen die Quellen der Bash gepatched im Verzeichnis /mnt/chroot/usr/src/bash-4.3. Das herunter geladene sstrip.c brauchen wir am ende um die Datei „bash“ auf ein der NAS angepasste Größe zu kürzen.
Jetzt können je nach Wunsch beliebige Compiler Flags gesetzt werden und die Configurationsoptionen gesetzt werden.

mit dem „strip bash“ werden alle, für die Ausführung der bash, nicht benötigten teile der elf-Datei entfernt. Die Datei wird von fast 1,5 MB auf unter 840KB reduziert.

3. bash Installieren

CVE-2014-6271 (original shellshock): not vulnerable
CVE-2014-6278 (Florian’s patch): not vulnerable
CVE-2014-7169 (taviso bug): not vulnerable
CVE-2014-//// (exploit 3 on https://shellshocker.net/ ): not vulnerable
CVE-2014-7186 (redir_stack bug): not vulnerable
CVE-2014-7187 (nested loops off by one): not vulnerable

Die Anleitung wurde vom mir zuletzt am 05.10.2014 getestet.
Sollten Irrtümer, Fehler oder Verbesserungen zum Artikel auffallen bitte ich dies mir mit einem Kommentar zu melden.

Besser wäre ein rpm-Paket, ich hoffe die Anleitung demnächst bezüglich rpm-Paket bau erweitern zu können.


Das aus diesem Tutorial entstehende Bash-Binary und RPM-Datei aus dem RPM-Tutorial zur Installation

Linux Buildsystem auf der NAS erstellen (fedora Core12)

Auf meiner NAS CL-35B2 benötige ich ein Buildsystem um einige Dienste zu aktualisieren. (und vermutete Sicherheitslücken zu schließen)

Um ein Build System zu installieren reicht der Speicherplatz der NAS, der NAND ist nur 200MB groß, nicht aus. Ich habe einen 4GB USB Stick angeschlossen, der als /dev/sdc auftaucht.

Nach dem Partitionieren via cfdisk bleiben 3GB für meine chroot-Umgebung und 1GB für den Swap.

Die Pakete sind der URL http://ftp.linux.org.uk/pub/linux/arm/fedora/pub/fedora/linux/releases/12/Everything/arm/os/Packages/ entnommen, ich habe einen vollständigen Mirror unter http://fc12.arm.loteks.de/ angelegt.

1.) Initialisiere die RPM Datenbank

2.) Das Basesystem

3.) Die Bash installieren

Da es noch keine lokale gibt erscheint jetzt die Fehlermeldung:

3.) Coreutils

4.) Findutils, flex, e2fsprogs, diffutils

5.) libtool, autoconf, automake, gcc, sed, binutils, Perl

6.) rpm, bzip2, curl, elfutils

7.) Development Pakete & awk

Installierte RPM Pakete anzeigen Lassen:

Zu welchem RPM Paket gehört die Datei?

NAND-Flash Schreibschutzschalter

Um für das NAND-Flash meiner CL-35B2 einen Schreibschutz zu realisieren recht es WP nach „Low“ (Vss) zu ziehen. (Pin 19 nach 13 schließen!)
Dies ist ein Hardware-Schreibschutzschalter wie er bei älteren USB Sticks manchmal umgesetzt wurde.
Es können bei geschlossener Verbindung zwischen WP (Pin 19) und Vss (Pin 13) keine Schreibvorgänge auf dem NAND-Flash ausgelöst werden, der Inhalt des Speichers ist nicht mehr veränderbar.

In der Standartkonfiguration stürzt die fantec CL-25B2 einfach ab, da der Logfiles geschrieben werden sollen. Diesem Absturz kann vorgebeugt werden, indem das Log Verzeichnis als tmpfs in der /etc/fstab konfiguriert wird.
WPschematic

IO0-7Data Input / Output
CLECommand latch enable16
ALEAddress latch enable17
CEChip Enable9
RERead Enable8
WEWrite Enable18
WPWrite Protect19
R/BReady / Busy7
VccPower Supply12
VssGround13
NCNo Connection

Eine Weitere Anleitung, für einen NAND-Flash Umschalter habe ich hier hinterlegt.

FANTEC CL-35B2 Zeitzonen korrigieren

Die voreingestellte Zeitzone auf der NAS CL-35B2 von fantec ist MST, die US Mountain Standard Time (-8 MEZ). Da mich alles was nicht meiner Lokalen, Berliner, Zeit entspricht irritiert habe ich auch im Fedora Core 12 des CL-35B2 die Berliner Zeit konfiguriert.

Um die Zeit zu konfigurieren bin ich entsprechend meiner folgenden Dokumentation vorgegangen.:

Zuerst den NTP Client stoppen:

Die Zonen-Datei für Berlin nach /etc/localtime kopieren:

Zeit mit dem Server der Physikalisch-Technische Bundesanstalt abgleichen.

Zeit in die Hardwareuhr schreiben.

Konfiguration für den NTP Dienst schreiben:

und den NTP Dienst neu starten:

CL-35B2 Rettungssystem (final)

Dieser Artikel enthält meine lange versprochene Anleitung wie ein Rettungssystem für die fantec CL-35B2 erstellt werden kann. In dieser Anleitung zeige ich wie „auf die Schnelle“ ein bereits fertiges Rettungssystem für die fantec CL-35B2 auf eine Festplatte geschrieben wird um die NAS von dieser Festplatte zu starten. ☺

Leider enthält das Rettungssystem aktuell noch keine Unterstützung für die Netzwerkhardware der NAS. Dies bedeutet das Du dieses Rettungssystem über das TTL Interface der CL-35B2 bedienen musst!
(Alternativ versuche eine USB-Netzwerkkarte, von dem verwendeten Linux Kernel werden einige USB Netzwerkkarten unterstützt.)

Für die Verwendung dieses Rettungssystems benötigst Du eine SATA-Festplatte. Alle Daten auf dieser Festplatte gehen bei der Installation des Rettungssystems verloren.

In der folgenden Download Datei ist ein Installations-Script enthalten, das die beim Aufruf angegebene Festplatte überschreibt. Die auf der Festplatte gespeicherten Daten gehen durch diesen Vorgang unwiederruflich verloren. Im Anschluss wird das RescueSystem für die fantec CL-35B2 auf dieser Festplatte hinterlegt.

Download: fantec Rescue-System

Der Download ist sowohl über den Obenstehenden Link als auch via wget möglich.:

Die im Download enthaltene Datei fantec_CL-35B2_rescue.tar.gz kann mit dem Befehl tar, mit den Optionen „xzf“, entpackt werden.

Das Script wird nach dem entpacken via ./install.sh /dev/sdx aufgerufen, wobei /dev/sdx die Festplatte ist auf welche das Rettungssystem geschrieben werden soll.
(☠Alle auf der Festplatte gespeicherten Daten gehen unwiederruflich verloren!☠)

Ich habe das Linux Image aus den gleichen „Fedora ARM 12″[1] Quellen zusammengestellt, welche von fantec verwendet wurden um das System der fantec CL-35B2 zusammen zu stellen.
In der Distribution, so wie sie im .tar.gz Archive enthalten ist, ist „unnötiger weise“ Samba, SSH und ddclient enthalten da ich dieses Image für Experimente mit einer meiner CL-35B2 verwendet habe.

[1]http://ftp.linux.org.uk/pub/linux/arm/fedora/pub/fedora/linux/releases/12/Everything/arm/os/Packages/

Boot CL-35B2 from SATA

Ich habe einen ersten Erfolg erzielt, die CL-35B2 von einer SATA Festplatte zu starten. In der Dokumentation des SOC ist ein folgend erklärter Bootcode angegeben der auf die SATA Festplatte geschrieben werden muss um von der Festplatte zu starten.

Erstellen der Festplatte:
– Welche Festplatte soll überschrieben werden

– Festplatte leeren

– Bootcode auf die Platte schreiben (Perl Magic 🙂

– Bootblock auf die Platte schreiben

– das U-Boot auf die Festplatte schreiben (Quellcode folgt!)

Wenn die Festplatte in slot 1 der CL-35B2 eingebaut wird bootet die NAS den U-Boot Bootloader von der Festplatte.
UBoot Dateien