Pineberry Pi

Auf die kleine Platine des Pineberry Pi kann eine M.2 NVME SSD geschraubt werden und mittels eines kurzen FPC (Flexible Printed Cable) mit dem PCIe des Raspberry Pi 5 verbunden werden. Die SSD kann einen Formfaktor von 2230,2242 oder 2280 haben, es sind entsprechende Schraublöcher vorhanden.

Pineberry Pi

Es gibt das Pineberry Pi in zwei Varianten, die eine wird wie ein klassisches HAT (Hardware Attached To Top) über dem Raspberry Pi 5 montiert, die andere unterhalb. Ich habe mich für die Bottom Variante als Unterbaumontage entschieden.

Lieferumfang

Geliefert werden die Platine mit vormontierten FPC und einem Tütchen mit den notwendigen Schrauben und Abstandshaltern.

Montage

Achte bei allen Montageschritten darauf, das FPC nicht zu beschädigen!

Schritt 1

Detail der M.2 Arretierung
Detail der M.2 Arretierung

Als erstes steckst du die M.2 SSD in seine Fassung. Beim Montagematerial befindet sich eine Schraubmutter mit Kerbe (ich hab keine bessere Bezeichnung dafür). In die Kerbe steckst du die Aussparung der SSD und drückst beides auf der Loch in der Platine und befestigst alles von der anderen Platinenseite mit einer der mitgelieferten Schrauben. Die SSD sollte jetzt parallel zur Platine befestigt sein. Die SSD sitzt bei dem Bottom Modell auf der Unterseite. Ich verbaue hier eine Kingston OM8PDP3512B-A01 512GB NVME SSD, die ich aus einem anderen Rechner ausgebaut habe.

Schritt 2

Im nächsten Schritt schraubst du die vier Abstandshalter auf die Pineberry Pi Platine. Sie sorgen für den nötigen Abstand zwischen dem HAT und dem Raspberry Pi 5. Die Schrauben werden von der Seite, auf der die SSD sitzt, eingeschraubt.

Schritt 3

Jetzt stellst du die Verbindung zwischen dem Pineberry Pi und dem Raspberry Pi 5 her. Dazu musst du die Verriegelung des PCIe Konnektors mit viel Fingerspitzengefühl leicht anheben. In den entstehenden Schlitz steckst du das FPC des Pineberry mit den blanken Kontakten Richtung SoC und drückst die Verriegelung wieder vorsichtig zu. Jetzt klappst du die Pineberry Pi Platine unter die des Raspis und schraubst von oben den RPi5 die letzten vier Schrauben in die Abstandshalter.

Schritt 4

Du solltest jetzt deine MicroSD Karte mit Raspberry Pi OS 5 flashen und in den Leser schieben. Später wird das Dank des FPC eine echte Fummelei.

Im letzten Schritt klappst du den Pineberry Pi so um, dass die SSD nach unten zeigt und schraubst ihn von oben mit Schrauben an den Raspi an. Jetzt siehst du, dass die Platine des Pineberry ein Stück über die des Raspis hinausragt durch wirst du das Ganze nicht in ein normales Gehäuse einbauen können.

Raspberry Pi 5 mit montiertem Pineberry Pi
Raspberry Pi 5 auf dem Pineberry Pi

Der erste Start

Jetzt ist es soweit, wir setzen den Pineberry Pi unter Strom, da die NVME über das FPC mit Strom versorgt wird, benutze ich das leistungsstärkere offizielle Netzteil für den Raspi 5 mit seiner höheren Leistung, da die NVME SSD vom Raspi mit Strom versorgt wird. Der Pineberry besitzt zwei LED, eine für Power, die andere für die NVME-Aktivität.

LEDs des Raspberry Pi 5 und des Pineberry Pi  im Detail
LEDs des Raspberry Pi 5 und des Pineberry Pi im Detail

Wenn der Raspi hochgefahren ist, schauen wir mal, wo wir unsere SSD wiederfinden.

lsblk
Ausgabe von lsblk zeigt nur unsere MicroSD Karte
Ausgabe von lsblk zeigt nur unsere MicroSD Karte

Die NVME des Pineberry Pi wird vom Betriebssystem nicht automatisch erkannt. Wir müssen sie noch konfigurieren.

Konfiguration

Zur Konfiguration editierst du die Datei /boot/config.txt und suchst dort die Sektion [all] darunter trägst du diese beiden Zeilen ein:

# Pineberry Pi Konfiguration
dtparam=nvme
dtparam=pciex1_gen=2

Die erste Zeile weist das Betriebssystem an, die NVME zu verwenden, die zweite schaltet die PCIe Schnittstelle in den Modus „1 Lane mit Protokollgeneration 2“.

Es folgt jetzt ein Neustart des Raspis

sudo reboot  

Während des Starts sollte jetzt zwischenzeitlich die Aktivitäts-LED des Pineberry Pi kurz aufleuchten. Das zeigt, das du alles richtig gemacht hast. Mit lsblk kontrollieren wir das direkt:

Die Ausgabe von lsblk zeigt unsere SSD als nvme0n1
Die Ausgabe von lsblk zeigt unsere SSD als nvme0n1

Ich hatte schon vor dem Einbau eine Partition auf der SSD erstellt, die ich jetzt mounten kann.

sudo mkdir /mnt/nvme
sudo mount -t auto /dev/nvme0n1 /mnt/nvme/

Diesen Schritt müsstest du ggf. jetzt nachholen, um Daten zu speichern.

Booten von der NVME

Die angeschlossene NVME macht natürlich am meisten Sinn, wenn wir davon auch starten können. Zunächst aktualisieren wir das Betriebssystem, um sicherzustellen, dass wir die neuste Version des Bootloaders benutzen

sudo apt update && sudo apt full-upgrade

Danach müssen wir den Bootloader konfigurieren, dass er von der SSD booten kann

sudo rpi-eeprom-config --edit
Editieren der Bootloader Konfiguration
Editieren der Bootloader Konfiguration

Wichtig ist, dass du BOOT_ORDER auf 0x416 setzt. Die Zeile mit PCIE_PROBE=1 musst du vermutlich selber ans Ende der Datei schreiben müssen.

Im nächsten Schritt kopierst du die gesamte MicroSD Karte auf die SSD:

sudo dd if=/dev/mmcblk0 of=/dev/nvme0n1 bs=2M

Dieser Vorgang wird eine Weile dauern. Danach hast du eine bootfähige Konfiguration auf der NVME SSD.

Jetzt kommt der Augenblick der Wahrheit, wir starten den Raspberry Pi 5 von der NVME SSD des Pineberry Pi. Fahre den Raspi runter

sudo shutdown now

Jetzt kannst du die MicroSD Karte vorsichtig aus dem Leser entnehmen. Das FPC ist dabei im Weg daher empfehle ich dir, dafür eine kleine gebogene Radiozange zu benutzen.

Der nächste Neustart geschieht dann von der NVME

er Raspberry Pi 5 wurde von der NVME SSD des Pineberry Pi gestartet.
Der Raspberry Pi 5 wurde von der NVME SSD des Pineberry Pi gestartet.

Über die raspi-config unter Advanced Options/Expand Filesystem musst du dann nur noch das Dateisystem erweitern, um die gesamte Kapazität der SSD zu nutzen.

Leistungsmessung

Um die Performance besser vergleichen zu können, habe ich die Ergebnisse der verschiedenen Raspis zusammengetragen. Als MicroSD Karte kommt jedes mal eine SanDisk Ultra 32GB zum Einsatz.Den Pineberry habe ich zunächst mit der Protokollversion 2 getestet und danach noch mit Version 3, die Berichten zufolge stabil laufen soll, dazu musst du in der config.txt nur dtparam=pciex1_gen=3 setzen.

Lesen (MB/s)Schreiben (M/s)
Raspberry 5 mit MicroSD30,8520,45
Raspberry 4 mit MicroSD10,156,63
Raspberry 4 mit Argon One M.2 SATA138,1791,89
Pineberry Pi pcie1_gen=2148,5099,15
Pineberry Pi pciex1_gen=3171,99114,97

Der Wechsel auf pciex1_gen=3 kitzelt noch mal etwas Leistung aus dem Bus heraus, allerdings ist die Kingston SSD nicht gerade die schnellste.

Ich habe das ganze mal Mit Python als Grafik aufbereitet:

Balkendiagramm der obigen Tabelle

In Teil 23 des Pythonkurs zeige ich dir, wie du so etwas selber programmieren kannst.

Fazit

Mit dem Pineberry Pi lässt sich der PCIe Anschluss des Raspberry Pi 5 gut nutzen, um ein schnelles Speichermedium anzuschließen, ohne den Umweg über USB gehen zu müssen. Der Zusammenbau ist unkompliziert und schnell erledigt. Bei der hier verwendeten Bottom-Variante ist allerdings nachteilig, dass die M.2 NVME auf der Platinenunterseite sitzt und nicht gut gekühlt werden kann, daher werde ich im Nachgang die Schrauben zwischen Pineberry und Abstandshalter durch Standoffs ersetzen, um wenigstens etwas Luftzirkulation zu ermöglichen. Außerdem soll ein Active Cooler den Pi besser von der Abwärme der NVME befreien. Das FPC ist leider schlecht geschützt, wodurch es prädestiniert ist, um darin hängen zu bleiben.

Update vom 15.02.24, die Dateien config.txt und cmdline.txt sind seit einem Upgrade von Raspberry Pi OS 5 nach /boot/firmware verschoben worden.

Schreibe einen Kommentar

Cookie Consent Banner von Real Cookie Banner