NAS ohne Herstellersoftware =========================== Netzwerk-Speicher sind ja oft ganz nützlich als Datenhalden. Es ist natürlich möglich sowas recht einfach aus Standardkomponenten zusammen zu bauen. Spezialisierte Geräte haben aber den Vorteil, dass sie kompakter gebaut und je nach Prozessor auch beim Strombedarf sparsamer sein können. Die großen Hersteller solcher NAS-Geräte schaffen es jedoch leider viel zu oft in die Newsticker, wenn mal wieder eine weitere Sicherheitslücke in ihren Systemen entdeckt wurde. Die Gründe dafür liegen natürlich immer in nicht wartbarer Software. Für eigene Software auf solchen Geräten gibt es meist mehrere Stufen. Viele bieten bereits von Haus aus Application-Manager oder gar SSH Zugänge an, um im Original-System eigene Software zu betreiben. Andererseits gibt es in diversen Foren auch für fast jedes Modell Anleitungen wie man eigene Kernel starten kann - die dann aber auch meist nicht mainline sind. Ich habe eine ganze Weile mit den Gedanken an ein neues NAS gespielt, den Ausschlag gab dann dass ich die aktuelle QNAP-Modellreihe mit Rockchip RK3568 CPUs gefunden habe. Als Maintainer des Rockchip-Teils im Mainline Linux-Kernel habe ich mir also gute Chancen ausgemalt, die Original-Software komplett ersetzen zu können. Mein Ziel war natürlich, alles 100% unter meiner Kontrolle zu haben, die obigen einfacheren Varianten kamen also nicht in Frage. Wie geht man also nun vor. Der Anfang besteht natürlich darin eine serielle Konsole zu erlangen um zu sehen was gerade passiert. QNAP macht es da einfach, es gibt einen passenden Port auf der Hauptplatine. Der nächste Schritt ist dann in der existierenden Software den Hardware- Aufbau nachzuvollziehen. Da es sich um eine CPU mit ARM-Kernel handelt, ist zu erwarten, dass sich die meisten Komponenten an diversen I2C oder SPI Bussen befinden. In der heutigen Devicetree-Zeit ist das relativ einfach, da einerseits der beim booten geladenen Devicetree dekompiliert werden kann. Andererseits findet man einen "Fertigen" vielleicht auch schon im Release der GPL-lizensierten Sourcen. Ein weiterer Punkt ist der Bootloader. Während die "einfacheren" erwähnten Varianten einen eigenen Kernel immer noch über den originalen Bootloader starten wollte ich auch diesen Teil "Gammel"-Software ersetzen. Überraschenderweise haben die Hardware-Designer nicht gespart und stellen sogar einen Pin-Header für den "Ich hab alles kaputt gemacht"-Fall auf der Platine bereit. Mit diesem Grundgerüst lässt sich dann jedes beliebige Betriebssystem auf dem Gerät betreiben. Sei es ein Debian-ohne-alles, wie bei mir oder mit weitergehender Software wie OpenMediavault darauf aufbauend. "Mainlinen" sollte man alle angefallenen Geräte-Patches für Kernel und Bootloader auf alle Fälle auch noch, denn dann stellen Upgrades bis ans Ende der Zeit auch keine größeren Probleme mehr dar - ganz ohne neue Newsticker-Warnmeldung.