Nerdstuff: Banana PI als Server im Wohnzimmer (mit OS auf HDD/SSD)

Banana PI

Quelle: Wikipedia

Achtung Nerdstuff! 🙂
Heute möchte ich Euch ein Wenig an meinen bisherigen Arbeiten mit dem neuen Banana PI belustigen.

Der Banana PI ist -wie der Raspberry PI– ein Einplatinencomputer. Das bedeutet, alle wichtigen Komponenten die für den Betrieb notwendig sind, befinden sich auf einer Platine.

Kommen wir zu den wichtigsten Ausstattungsmerkmalen:
CPU: 2x 1GHz – Allwinner A20 SoC
(ARM-Cortex-A7-Dual-Core-CPU)
GPU: Mali-400MP2
RAM: 1GB DDR3

Alles in allem, ein kleines Kraftpaket, welches sich einen würdigen Platz in meiner Wohnung verdient hat.

Nun direkt zu den negativen Dingen: Der Raspberry PI verwendet eine GPU, die OpenSource-Treiber bereitstellt. Das heißt auf Deutsch, jeder kann Treiber dafür schreiben. Bei dem Banana PI ist es leider nicht so. Aktuell gibt es wenig bis keine Möglichkeit, eine ordentliche XBMC-Version auf dem Banana PI zum laufen zu bringen. 🙁

Allerdings ist er auch nicht für den Einsatz als Multimedia-Center vorgesehen. (Wobei, ein bisschen mehr Power wäre schon toll…)

 

Jetzt zum eigentlichen Thema: Banana PI mit OS auf SSD

Meinen Banana PI habe ich recht günstig bei Amazon gekauft (knapp 60€). Da die Stromaufnahme (ohne angeschlossene Geräte am SATA-Port) recht moderat ist, hätte ich ein normales Handynetzteil (mit MINDESTENS 1200mAh) verwenden können. Für mein Projekt musste allerdings noch etwas mehr Power her, denn ich wollte unbedingt eine Festplatte an das System anschließen, da der kleine als NAS in meiner Wohnung eingesetzt wird.

Durch den Raspberry PI weiß ich mittlerweile, dass man schnelle SD-Karten verwenden soll! (M)eine Class4 SD-Karte war zu Beginn die absolute Zerreißprobe für meine Geduld 🙂
Außerdem sollte man, sofern man ordentliche Datendurchsätze erzielen möchte, beim Raspberry PI bedenken, dass USB- und Netzwerkschnittstelle sich einen Bus auf dem System teilen. Somit kommt der Raspberry PI als NAS-System nicht in Frage.

Banana PI - Provisorischer AufbauZur Hardware: Da der Prozessor des Banana PI auf der Unterseite angebracht ist, musste ich mir etwas einfallen lassen, damit er nicht direkt auf dem Boden liegt und überhitzt, oder schlimmstenfalls sogar beschädigt wird.
Ich habe mir kurzerhand Löcher in den Karton, in dem der Banana PI geliefert wurde, geschnitten und lange Schrauben mit Strohhalmen als Abstandhalter aufgesteckt. Anschließend noch alles verschraubt und fertig. Später habe ich darin auch die SSD platzsparend untergebracht.
Es gibt derzeit noch keine Gehäuse mit „2,5“-Anhängsel“. Notfalls klebe ich sie später einfach unter ein richtiges Gehäuse. Aber für den Anfang hat man hiermit schon mal was halbwegs stabiles und der Kleine kann nicht überhitzen.

Ich schweife ab….
Also, der Plan war: Für den Bootvorgang alle notwendigen Daten auf die SD-Karte packen und den Rest des Betriebssystems auf der SSD auslagern.
Das sorgt einerseits für unheimlich viel Speed und spart andererseits Platz (denn die SSD wird direkt vom PI mit Strom versorgt) und Strom, denn ich muss nicht noch eine externe HDD per USB mit einem zusätzlichen Netzteil irgendwo unterbringen.

Fangen wir mit den Basics an: Betriebssystem organisieren…
Für den Banana PI gibt es auf lemaker.org verschiedenste Betriebssysteme.
Da ich ein großer Freund von Debian bin, habe ich mich für Bananian entschieden. Bananian ist ein auf Debian basierendes OS. Auf der Seite kann man ein fertiges, mit passendem Kernel vorkonfiguriertes, Images laden.
Runterladen, auf die SD-Karte schieben, booten, wunderbar….. (Hier die Installationsanleitungen für das Image)

Banana PI mit 128GB SSD am ESATA-AnschlussZum Betrieb: Ihr könnt euch sicherlich denken, dass ich mit der oben erwähnten Class4-SD-Karte nicht wirklich viel Spaß hatte, denn jede Aktion dauert gefühlt 10 Minuten. Also musste Kurzerhand etwas Schnelleres her. Die Wahl fiel auf eine Kingston Class10-SD-Karte mit 32GB und eine SanDisk 128GB SolidStateDisk mit 475MB/s lesen und 375MB/s schreiben. Sollte also erst mal reichen 😉
Der Vorteil an dem SATA-Anschluss ist recht schnell erklärt.
Er wird schon recht schnell zu Beginn des Bootprozesses initialisiert. USB folgt erst etwas später, was das booten von USB-HDD unmöglich macht -zumindest für mich. Außerdem kommt für mich der USB-Anschluss zur Festplattennutzung aus oben genannten Gründen eh nicht in Frage.

Ich habe also das Betriebssystem kurzerhand auf die SSD ausgelagert 🙂
Das funktioniert auch nachträglich, wenn der BananaPI bereits schon vollständig konfiguriert ist, recht fix und ohne Datenverlust (natürlich nur, sofern nichts schief geht) – (Und ich übernehme hier keinerlei Verantwortung für Fehler).

 

Zuerst eins vorweg: Wir arbeiten für diesen Vorgang als Root. Dh. ihr hackt auf der Tastatur zuerst mal „sudo su –“ ein. Dann gehts weiter: Festplatte identifizieren. Mit „fdisk -l“ findet ihr heraus, wie sie heißt. In meinem Beispiel „/dev/sda“.

Festplatte vorbereiten:
> fdisk /dev/sda
Löscht alle vorhandenen Partitionen von der Festplatte mit „d„.
(Meine neu gekaufte SSD war bereits mit NTFS formatiert)
Mit „n“ erstellt ihr eine neue Partition. (Nehmt einfach die Standardeinstellungen)
Zum Abschluss speichern wir die neue Partitionstabelle mit „w„.

Festplatte formatieren:
> mkfs.ext4 /dev/sda1

Root-FS kopieren:

> mkdir /tmp/1 /tmp/target
> mount /dev/mmcblk0p2 /tmp/1
> mount /dev/sda1 /tmp/target
> (cd /tmp/1; tar --backup -c *) |tar -C /tmp/target -xv
(*=minus minus, mein WP ändert das komischerweise)

Kernelparameter ändern um von SSD zu booten:
> mkdir /tmp/boot
> mount /dev/mmcblk0p1 /tmp/boot
> vim /tmp/boot/uEnv.txt  <- Ändert die Zeile in „[…]root=/dev/sda1[…]“

Wichtig: Jetzt noch > sync und anschließend > reboot

Wenn ihr alles richtig gemacht habt, bootet der kleine ab sofort von der Festplatte.
Leider kann man nicht wie an einem echten PC im BIOS die Bootreihenfolge ändern, so dass man leider immer eine SD-Karte zum Start benötigt. Das System läd aber nur noch einen kleinen Teil von der SD-Karte und der Rest wird von der SSD geladen, was dem kleinen Rechenzwerg einen riesigen Geschwindigkeitsschub verleiht.

Mit > df -h könnt ihr schauen, ob Eure Arbeit erfolgreich war.