Pimoroni NVMe BASE (nur Pi 5 !!)

Hier einiges Zubehör vom beliebten UK Entwickler/Anbieter.
Antworten
Benutzeravatar

Themenstarter
Outi
Administrator
Administrator
Beiträge: 480
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

Pimoroni NVMe BASE (nur Pi 5 !!)

Beitrag von Outi »

History:
11.06.2024 - Hinweis mit Link auf Installation über OTG hinzugefügt (direktes Flashen der verbauten NVMe SSD)
11.04.2024 - Erste Veröffentlichung


Hinweis:
Diese Anleitung/Information erhebt keinen Anspruch auf Vollständigkeit und kann Fehler enthalten und die Benutzung erfolgt auf eigene Gefahr.
Es wird keinerlei Haftung für Schäden und/oder Datenverluste übernommen.

Info:
Der hier in dieser Anleitung gezeigte Raspberry Pi 5 ist mit einem originalen aktiven Kühler der Foundation versehen.
Dieser ist nicht im Lieferumfang des Pimoroni NVMe BASE HAT enthalten und spielt auch sonst für diese Anleitung keine Rolle.
Da ich seit dem Pi 4B keinen Pi mehr ohne Kühler betreibe und das auch nicht empfehlen kann, wird die eine oder andere Anleitung ebenfalls einen Kühler zeigen, auch wenn das keinen Einfluss auf die Anleitung selbst hat, andernfalls wird darauf hingewiesen.

Vorab eine kurze Info zu dieser recht komplex anmutenden Anleitung:
Hier wird eine Methode von vielen gezeigt, die rein headless (also ohne Monitor, Tastatur und Maus) funktioniert.
Leider habe ich bei einigen Recherchen diverse andere Anleitungen gefunden, die sogar fahrlässig das Übertragen des laufenden Systems beschreiben (leider auch auf der einen oder anderen Herstellerseite oder in diversen Shops).
Diese Anleitung hier umgeht dieses Problem durch die Nutzung eines zusätzlichen USB Sticks, der nur dazu dient, die vorkonfigurierte SD Karte auf die NVMe SSD zu kopieren.
Da hier das Hauptsystem nicht läuft, ist dieses Problem von vorne herein ausgeschlossen.

Wer möchte, kann auch auf die SD Karte die Full Version (mit GUI) des Raspberry Pi OS installieren und dann darin den integrierten Raspberry Pi Imager nutzen und als Ziel die (hoffentlich erkannte) NVMe SSD als Ziel angeben.
Diese Version benötigt allerdings entweder Monitor, Tastatur und Maus oder man konfiguriert VNC oder XRDP.
Die Installation funktioniert dann wieder wie bei einer reinen Installation als wenn man nur die SD Karte oder den USB Stick nutzen würde.

Eine reine Netzwerkinstallation ginge sicherlich auch (mit Monitor, Tastatur und Maus), jedoch kann es sein, dass diese Funktion erst konfiguriert werden muss und dann spare ich nichts gegenüber einer lokalen Installation per SD / USB.

Evtl. werde ich in Zukunft auf weitere Installationsarten genauer eingehen, hier geht es jedoch erstmal nur um die grundlegendste, bei der das Ziel OS beliebig ist, kein Problem bei der Kopie des Systems im Laufenden Betrieb auftreten kann und man keine Monitor, Tastatur und Maus benötigt.
Dabei handelt es sich quasi um eine "Low-Level-Installation".

Für diese Installation werden folgende Teile benötigt:
  • Raspberry Pi Pi 5
  • Netzteil für den Pi 5
  • Pimoroni NVMe BASE HAT
  • NVMe SSD
  • SD Karte
  • USB Stick
Bei dieser Installation wird rein im headless Modus installiert, also der Pi 5 per PC über ein Terminal vorinstalliert.
Wer möchte, kann dies auch per grafische Oberfläche und den passenden Tools machen, jedoch ist das bei Lite Versionen ohne grafische Oberfläche nicht ganz so einfach.

Hier wird vorab ein lauffähiges System auf der SD-Karte generiert, welches nachher auf die NVMe SSD kopiert wird, da wir die SSD vorab nicht bespielen können, wenn wir keinen externen NVMe/USB Adapter zur Hand haben und dafür extra einen kaufen, ist nicht nötig.
Das umgehen wir, indem einen USB Stick zum Kopieren von SD auf SSD nutzen (direktes Kopieren des laufenden Systems geht oft schief).
Somit können wir mit dieser Methode sowohl Lite als auch Full Systeme auf eine leere NVMe SSD im eingebauten Zustand kopieren.

Hinweis:
Dieses HAT funktioniert nur mit dem Raspberry Pi 5 !!

Beim Pimoroni NVMe BASE handelt es sich um ein HAT, bei dem der Raspberry Pi 5 statt von SD oder USB (Stick oder SSD mit Adapter) neuerdings auch über PCIe booten kann und zwar von einer NVMe SSD (nicht SATA !!):

Bild

Infos auf der Pimoroni Shopseite: Externer Link Pimoroni NVMe BASE

Infos zum Pimoroni Angebot bei Amazon:

Dabei wird dieses HAT unter den Pi 5 geschraubt und kann eine 2280er (volle Länge) NVMe SSD aufnehmen, wie auch in modernen PCs üblich.
Andere Lösungen gehen oft auch auf den Pi 5, sind meist aber dann nur für kurze SSDs geeignet, da dabei auch Platz für diverse Kühllösungen frei gelassen werden muss.

Bestellt hatte ich das Pimoroni NVMe HAT bei Amazon, da ein Direktversand aus den UK teurer gewesen wäre, Pimoroni keinen deutschen Shop mehr betreibt und ich Dank Prime auch keine Versandkosten zahlen musste.

Einfach verpackt in einem dünnen Pappumschlag (ohne Abbildung) kam die Lieferung von Amazon, in dem sich die folgende Originalverpackung befand:

Bild

Das Gute an der Pimoroni Verpackung: Es handelt sich um eine wiederverschließbare Antistatikverpackung.
Also nicht einfach aufschneiden, sondern einfach oben auseinanderziehen ....

Das folgende Bild zeigt den kompletten Inhalt:

Bild

Neben dem HAT selbst befinden sich noch die obligatorischen Schrauben und Abstandshalter, das Folienkabel für die Verbindung zum PCIe Steckplatz auf dem Pi 5 und vier selbstklebende Gummifüße von 3M.
Letztere kann man verwenden, falls man den Pi 5 nicht extra in ein Gehäuse einbaut.

Im folgenden Bild sieht man die Rückseite, die zwar etwas aufwändiger gestaltet wurde, jedoch keine Bauteile enthält:
(Generell ist auf dem gesamten HAT so gut wie nichts drauf.)

Bild

Auf der anderen Seite (oben) befinden sich noch Lötmöglichkeiten, falls der Strom vom PCIe Bus nicht reichen sollte.

Diese NVMe SSD hatte ich für diese Anleitung noch übrig und gerade da:

Bild

Bitte beachten:

Hinweis:
Diese NVMe PCIe 4x4 SSD ist nur ein Beispiel und keine Garantie, dass das ganze System auch problemlos läuft !!
Sie taucht in der Kompatibilitätsliste von Pimoroni auch nicht auf (nur die kleineren wie die P3).
Zudem ist sie eigentlich völlig oversized (was die technischen Daten angeht) und wird auch nicht mehr hergestellt.
Diese SSD entspricht PCIe 4x4, der Pi 5 kann offiziell "nur" PCIe 2x1 (ohne Gewähr des Herstellers PCIe 3x1) und wird daher nicht im Geringsten ausgereizt.
Ich habe diese SSD daher nur verwendet, da ich sie eben gerade "herumliegen" hatte.
Welche SSD ratsam oder empfehlenswert ist/wäre, hängt vom Preis und anderen Dingen ab.
Eine Liste von Pimoroni getesteten SSDs findet man hier: Externer Link Pimoroni NVMe BASE Kompatibilitätsliste

Als Erstes werden die Abstandshalter montiert, die das HAT unter dem Pi 5 auf Abstand halten:

Bild

Dabei verwenden wir die ganz kurzen Flachkopfschrauben, derer 8 Stück in der Verpackung sein sollten.
Diese werden von unten durch die viel Befestigungslöcher gesteckt und von oben die Abstandshalter aufgedreht.

Wer allerdings ein HAT auf dem Pi 5 benutzen will/muss, auch an den hat Pimoroni gedacht:

Bild

Dabei werden statt den vier kurzen Flachkopfschrauben die längsten Schrauben genommen, die im Lieferumfang enthalten sind.
Hier werden die Abstandshalter ebenfalls aufgeschraubt, allerdings sind die Schrauben länger und ragen nach der Befestigung deutlich darüber hinaus.
Das dient dazu, dass nach dem "Auflegen" des Pi 5 noch genug Schraubenrest verfügbar ist, um ggf. darauf weitere Abstandshalter ein anderes HAT zu befestigen, dieses weitere HAT auch noch zu befestigen (weitere Absthandshalter für andere HATs hier nicht im Lieferung enthalten !!):

Bild

Ich habe mich aber Dank des originalen aktiven Kühlers der Foundation für die erstere Version entschieden, da ich auch noch kein passendes Gehäuse für die ganze Konstruktion gefunden habe.
Dieser Kühler hat eigene Befestigungen und benötigt daher keine abgewandelte Bauweise.
Damit geht auch diese Anleitung weiter, bei der der Pi 5 das NVMe HAT quasi als stabilen Unterbau verwendet.

Weiter geht es mit der Schraube für die gegenüber der Kontakte liegende Befestigung.
Die NVMe muss ja nicht nur im passenden Slot Platz finden, sondern auf der anderen Seite ebenfalls halt finden.
Dazu wird eine der mitgelieferten mittellangen Schrauben und eine der Muttern verwendet und ins passende Loch verschraubt:

Bild

Da Pimoroni alles in schwarz gehalten hat, habe ich die beiden Teile (Schraube und Mutter) nochmals zur besseren Anschauung daneben gelegt.
Bei mir war Beides 2x beigelegt und der rote Pfeil zeigt die montierte Version.

Danach wird die NVMe SSD montiert:

Bild

Hierbei kann man eigentlich nichts falsch machen, da die NVMe bei den Kontakten eine Kerbe hat.
Dass die Beschriftung nun auf dem Kopf steht, spielt keine Rolle, man sieht sie nachher sowieso nicht mehr.

Nun widmen wir uns dem Datenkabel, das die Verbindung vom HAT zum Pi 5 herstellt.
Dazu muss oben rechts in der Ecke zuerst die Verriegelung geöffnet werden.

Hinweis:
!! Achtung !! Die Verriegelung wird vorsichtig nach oben geklappt.
Wer hier nicht aufpasst, zerstört evtl. das filigrane Gebilde.

Hier die Ansicht im geschlossenen und ausgelieferten Zustand:

Bild

Leider ist auch hier wieder die schwarze Farbe etwas hinderlich bei der Darstellung aber wenn man die Teile vor sich hat, wird es sicherlich etwas klarer.

Das folgende Bild zeigt die geöffnete Verriegelung und gleich links das daneben positionierte Folienkabel:

Bild

Das Folienkabel wird nun genau so in den Halter geschoben, wie abgebildet.
Das heißt, das Folienkabel sollte so herum gedreht werden, wie auf dem Bild zu sehen.
Dabei ist die Schrift auf der anderen Seite und hier nur die leere Rückseite sichtbar.
Auch die beiden Enden unterscheiden sich und wenn man genauer hinschaut, sieht man an der unteren Kante etwas nach innen versetzt eine schwach angedeutete Linie, an der man sich orientieren kann (Lage und Position in aus der originalen englischen Onlineanleitung).

Das Folienkabel wird nun vorsichtig in die Verriegelung geschoben (rutscht eigentlich nur an einer Stelle richtig rein) und diese wieder durch vorsichtiges Herunterdrücken des zuvor geöffneten Bügels verschlossen.
Das Folienkabel sollte nun einen festen Halt haben.

Jetzt drehen wir das HAT um und positionieren den Pi 5 rechts daneben und sehen, wie die ganze Sache von der anderen Seite aussieht:

Bild

Nun muss das freie Ende des Folienkabels in die Verriegelung des Pi 5.
leider wird das Kabel hier nicht genauso seitlich eingeschoben, sondern von oben !!

Hinweis:
Jetzt wird es tricky, da zum einen die Verriegelung des PCIe Ports des Pi 5 noch filigraner und umständlicher zu öffnen ist, als das vom HAT und zudem muss das Kabel auch noch von oben in diese eingeführt werden.


Hier empfehle ich dringend Ruhe zu bewahren und die Verriegelung nicht gleich schon beim Öffnen zu ruinieren.
In der Ruhe liegt die Kraft und lieber mehrfach Anläufe nehmen als hinterher zu fluchen !!

Das folgende Bild zeigt nochmal eine genauere Ansicht des bereits geöffneten PCIe Ports des Pi 5.
Der linke Pfeil markiert den Port im offenen Zustand und der obere Pfeil die Richtung, in die das Kabel eingesteckt und dann der Bügel runtergedrückt werden muss:

Bild

Hier nochmal die Verriegelung am Pi 5 PCIe Port in geöffneter Position:

Bild

Die beiden roten Pfeile zeigen die beiden Positionen, an denen man den Bügel vorsichtig nach oben ziehen kann, wenn er noch verschlossen ist.
(Bild zeigt den bereits geöffneten Bügel !!)

Hat man nun endlich das offene Ende des Folienkabels irgendwie in die PCIe Verriegelung eingeführt, wird der Bügel vorsichtig nach unten gedrückt und damit das Kabel in seiner Position befestigt.

Bild

Auch das kann ganz schön nerven, denn oft hat man das Ding schief arretiert.
Dann heißt es, den Riegel wieder vorsichtig zu öffnen und wieder von vorne beginnen mit dem Einführen.
Ich rate auch dringend davon ab, ein schief befestigtes Kabel mit sanfter Gewalt "gerade zu ziehen", denn entweder rutscht es dann heraus, sitzt nicht mehr komplett drin, verbiegt sich und schlimmsten Falls reißt es ein oder ab !!
Daher wie immer: lieber mit viel Geduld als teuren Ersatz besorgen

Die hier auf dem Bild gezeigte Position des HATs (momentan auf dem Pi 5) soll nur zeigen, wie das Kabel montiert aussieht.
Natürlich kommt es korrekterweise unter den Pi 5.

Hier nun im bereits verschraubten Zustand von vorne:

Bild

Die Verkabelung von oben betrachtet:

Bild

Von der Seite:

Bild

Und nochmal komplett:

Bild

Zum Schluss noch an die Pads denken (sehr nahe Nahaufnahme):

Bild

Diese kommen natürlich auf die Unterseite des HATs und dienen dazu, dass die scharfen Kanten der Schrauben nicht auf der Unterlage kratzen und entkoppeln den Pi 5 auch geräuschtechnisch, falls mal ein evtl. verbauter Lüfter unrund laufen sollte.
Dass diese Pads in den äußeren Ecken verklebt werden (selbstklebend), muss sicherlich nicht extra erwähnt werden ....

Weiter geht es mit der Installation und Anpassung des HATs.

Es gibt 4 mir bekannte Varianten Varianten, die NVMe SSD mit dem Raspberry Pi OS zu versehen:
  1. SD Karte einrichten und anschließend auf die SSD kopieren
  2. NVMe SSD in einem externen USB Gehäuse direkt bespielen
  3. Netzwerkinstallation direkt auf die NVMe SSD
  4. NVMe SSD per OTG direkt vom PC auf die NVMe installieren*
*Für den letzten genannten Punkt habe ich eine extra Anleitung erstellt:
Externer Link Raspberry Pi 5 - Raspberry Pi OS Installation direkt auf NVMe - OTG
Dieser Schritt erfordert aber spezielle Hardware, entweder einen passenden aktiven USB HUB oder ein PC mit entsprechendem USB Port.
Weitere Infos dazu befinden sich in der verlinkten Anleitung.

Da ich weder ein externes NVMe/USB Gehäuse habe, noch Monitor, Maus und Tastatur anschließen möchte, habe ich mich hier für den ersten Punkt entschieden, die headless Variante (also "fremdgesteuert"), bei der ich remote von einem PC aus zugreife.
Die Netzwerkinstallation des 3. Punktes ist noch relativ neu und wohl noch im Betastadium.
Zudem könnte es sein, dass ich trotzdem noch eine SD vorab benötige, um die Netzwerbootfähigkeit erst herzustellen.
Das kann aber auch bei Punkt 2 passieren, falls der Pi nicht sofort von der SSD bootet.
Daher gehe ich nun den sichersten Weg der 3 Möglichkeiten.
Gerne können die beiden anderen Wege getestet werden, Erfahrungen sind hier im Forum immer erwünscht.

Zuerst installieren wir also das gewünschte Raspberry Pi OS (64 Bit / Bookworm) auf eine SD Karte (Pi 5 läuft erst ab Bookworm).
Da auf meiner NVMe SSD genug Platz ist und ich mich ab und zu per Remote Desktop verbinde, habe ich die Full Version installiert.
Außer der Lite Version ohne Desktop war es das aber auch schon an Auswahl.
Wer Ubuntu oder was anderes installieren möchte, kann sich ja trotzdem hier orientieren, jedoch kann ich da nicht weiter helfen.

Die Installation beschreibe ich hier aber nicht extra.
Eine Anleitung zum originalen Raspberry Pi OS findet Ihr hier: Externer Link Raspberry Pi installieren - Raspberry Pi OS

Dabei installiert man die SD Karte so, als wenn man sie dauerhaft nutzen möchte.

Info:
Wenn wir schon dabei sind, die SD Karte mit dem Raspberry Pi Imager so zu installieren, wie wir den Inhalt nachher auch auf der NVMe SSD nutzen möchten (egal ob Full oder Lite), installieren wir anschließend auch gleich den USB Stick mit dem Lite Image, da wir ihn später für die Übertragung von SD auf SSD benötigen.
Tipp: Den USB Stick anders benennen, zur besseren Unterscheidbarkeit (z.B. "bootstick" statt "raspberrypi").

Nach dem Beschreiben der SD Karte am PC (oder was auch immer benutzt wird) mit dem Raspberry Pi Imager, wird diese in den Pi 5 gesteckt und davon gebootet.

Bei mir hat das erste Booten von der SD Karte gefühlt ewig gedauert, mir kam es vor, als wenn der Pi 5 drei mal gebootet hat.
Aber das ist nicht weiter schlimm, hier muss man einfach Geduld haben.
Das Login klappte dann problemlos bei mir, nachdem der Lüfter dann dauerhaft ruhig blieb (dreht beim Booten voll auf).

Jetzt können weitere Anpassungen schon vorgenommen werden oder das kann auch später gemacht werden, wenn die NVMe selbstständig läuft.

Was wir aber sicherstellen müssen, sind folgende Punkte:
  • Aktuelles System
  • Bootloadeer aktualisieren (latest)
  • Bootmode ein/umstellen
Um das System und ggf. Firmwares usw. zu aktualisieren, dient folgender Befehl, den wir zuallererst ausführen:

Code: Alles auswählen

sudo apt update && sudo apt full-upgrade -y
Dieser Vorgang dauert unterschiedlich lange, je nachdem wie alt/neu das aufgespielte Image ist.
Bei meinem Full Version Image hat das eeeewig gedauert ....
Daher auch hier: einfach den Dingen ihren Lauf lassen.
Wer sich nicht sicher ist, ob sich der Pi aufgehängt hat, kann dies ganz einfach testen, indem er eine 2. SSH Verbindung aufbaut.
Geht das, ist alles ok.

Nun rufen wir die Konfigoberfläche auf:

Code: Alles auswählen

sudo raspi-config
Es erscheint folgendes Menü, bei dem wir - wie gezeigt - in die erweiterten Einstellungen (Advanced Options) gehen:

Bild

Darin wechseln wir auf die Auswahl der Bootloader Version:

Bild

Und darin bestätigen wir den "latest" (aktuellsten) Bootloader mit Klick/Enter auf Ok:

Bild

Die nachfolgende Frage bestätigen wir mit Yes:

Bild

Nun passiert ein wenig im Hintergrund und nach der Konfiguration erscheint die Bestätigung:

Bild

Nach der Bestätigung mit Ok landen wir wieder im Hauptmenü.

Jetzt stellen wir noch die Bootpriorität ein, also von was wir zuerst booten wollen.

Dazu gehen wir wieder in die Advanced Options und dann in Boot Order:

Bild

Das kann man natürlich später jederzeit wieder in dieser Konfiguration ändern/anpassen.

Für diese Anleitung nutze ich daher die oben gezeigte NVMe/USB/SD Auswahl, da wir nachher auch vom USB Stick booten müssen, um die vorbereitete SD Karte auf die NVMe SSD zu kopieren.

Nach der Auswahl und Bestätigung "rattert" es wieder kurz und es folgt die Bestätigung:

Bild

Das Ganze wieder mit Ok bestätigen und wir gelangen zurück im Hauptmenü.
Dort auf Finish gehen und folgende Rebootanfrage unbedingt mit No bestätigen !!

Bild

Hier darf noch nicht neu gebootet werden, da wir den Pi herunterfahren müssen, um den USB Stick für den Boot einzustecken.

Aber zuvor:

Ob der Bootloader aktuell ist, können wir mit folgendem Befehl prüfen:

Code: Alles auswählen

sudo rpi-eeprom-update 
Das sollte dann in etwa so aussehen:

Code: Alles auswählen

pi@raspberrypi:~ $ sudo rpi-eeprom-update
BOOTLOADER: up to date
   CURRENT: Fri  5 Apr 10:41:19 UTC 2024 (1712313679)
    LATEST: Fri  5 Apr 10:41:19 UTC 2024 (1712313679)
   RELEASE: latest (/lib/firmware/raspberrypi/bootloader-2712/latest)
            Use raspi-config to change the release.
Sollten hier beide gezeigten Versionen voneinander abweichen, kann man per sudo raspi-config die Routine für den neusten Bootloader nochmal durchlaufen lassen.

Um zu schauen, ob die NVMe erkannt wurde, gibt es diesen Befehl:

Code: Alles auswählen

lsblk
Das zeigt bei mir Folgendes:

Code: Alles auswählen

pi@raspberrypi:~ $ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk0     179:0    0  29.4G  0 disk
├─mmcblk0p1 179:1    0   512M  0 part /boot/firmware
└─mmcblk0p2 179:2    0  28.9G  0 part /
nvme0n1     259:0    0 931.5G  0 disk
Hier wird meine NVMe SSD also bereits erkannt und als nvme0n1 aufglistet.
Wer hier eine gebrauchte/nicht leere NVMe SSD einsetzt, kann u.U. weitere Partitionen sehen.
Wie man hier Partitionen löscht usw. kann das installierte Tool fdisk nutzen.
Hier sei aber zu beachten, dass man nicht die falschen Daten löscht !!

Es kann evtl. vorkommen, dass der PCIe Port am Pi 5 noch nicht aktiviert wurde.
U.U. wird dann hier natürlich auch keine NVMe SSD angezeigt.
Das war bei den ersten Images wohl der Fall.
Die Foundation schreibt aber, dass dies inzwischen standardmäßig der Fall sein soll.

Wer also jetzt installiert und/oder aktualisiert, sollte also den PCIe Port bereits aktiv haben.

Da es in raspi-config aktuell dafür keinen Menüpunkt gibt, wird dieser Port über die bekannte Datei config.txt geregelt.
Darin wird der Port manuell aktiviert.

Falls der PCIe Port also nicht aktiv sein sollte, öffnen wir die Datei mit folgendem Befehl:

Code: Alles auswählen

sudo nano /boot/firmware/config.txt
Ganz unten unter [all] fügen wir folgende Zeile hinzu:

Code: Alles auswählen

dtparam=pciex1
oder

Code: Alles auswählen

dtparam=nvme
Beide Zeilen sind gleichwertig.

Auf die Umschaltung zwischen PCIe 2 und PCIe 3 kommen wir zum Schluss.

Der Eintrag ist wohl nicht mehr notwendig aber er schadet auch nicht.
Über kurz oder lang wird er wohl trotzdem wegfallen.
Wer sicher gehen will, trägt ihn einfach ein.

Nach dem Eintrag müssen wir den Pi neu starten:

Code: Alles auswählen

sudo reboot
Nach erneutem Einloggen schauen, ob die NVMe SSD dann angezeigt wird (obiger lsblk Befehl).

Nun erfolgt normalerweise die Datenübertragung.

Pimoroni selbst empfiehlt folgenden Befehl (hier jedoch noch nicht empfohlen):

Code: Alles auswählen

sudo dd if=/dev/mmcblk0 of=/dev/nvme0n1 status=progress
Das ist jedoch mit Vorsicht zu genießen, denn viele Stellen im Internet sagen Probleme voraus, evtl. läuft das System sogar anfänglich und später funktioniert dann irgendwas nicht.

Daher müssen wir einen anderen Weg gehen.

Dafür haben wir weiter oben den extra USB Stick mit dem Lite Image erstellt, von dem wir aus problemlos von SD auf SSD kopieren können.
Da muss nicht viel konfiguriert werden, er dient lediglich zum Kopieren der SD Karte auf di NVMe SSD.
Somit kopieren wir nicht das laufende System, sondern booten von USB und kopieren die bereits eingerichtete SD Karte.

Zuerst fahren wir den Pi aber erst herunter:

Code: Alles auswählen

sudo poweroff
Sobald die rote LED dauerhaft und alleine leuchtet, können wir den USB Stick einstecken und den Powerbutton am Pi drücken, um ihn wieder hoch zu fahren.

Ob der Pi nun mit dem USB bootet, kann ich bei mir ganz gut erkennen, da mein USB Stick dies mit einer LEED durch blinken anzeigt.
Wer keine LED am USB Stick hat, muss nachher eingeloggt schauen, dass er auch wirklich per USB gebootet hat.

Nun prüfen wir, ob alles erkannt wurde:

Code: Alles auswählen

lsblk
Das sollte nun so aussehen:

Code: Alles auswählen

pi@bootstick:~ $ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    1   3.8G  0 disk
├─sda1        8:1    1   512M  0 part /boot/firmware
└─sda2        8:2    1   3.2G  0 part /
mmcblk0     179:0    0  29.4G  0 disk
├─mmcblk0p1 179:1    0   512M  0 part
└─mmcblk0p2 179:2    0  28.9G  0 part
nvme0n1     259:0    0 931.5G  0 disk
Wurde der USB Stick - wie empfohlen - auf bootstick umbenannt, sehen wir das schon nach dem/beim Login.
Aber auch hier in der Ausgabe steht dann pi@bootstick

Wer seinen Pi ebenfalls raspberrypi genannt hat (so wie die SD Karte), kann den Boot von SB trotzdeem erkennen, da dieser nun hier z.B. sda genannt wurde und die Partition sda1 dahinter das gebootete Verzeichnis /boot/firmware anzeigt.

Jetzt können wir den oben gezeigten Kopierbefehl nutzen, da sowohl SD Karte als auch NVMe SSD nun nicht mehr eingebunden sind und der Vorgang problemlos durchgeführt werden kann.

Wenn also beide Laufwerke nach wie vor mmcblk0 und nvme0n1 heißen, kann der nachfolgende Befehl so genutzt werden:

Code: Alles auswählen

sudo dd if=/dev/mmcblk0 of=/dev/nvme0n1 status=progress
Hierbei wird auch der Fortschritt angezeigt und bitte nicht wundern, die Geschwindigkeit dürfte nicht all zu hoch sein, da der SD Karten Slot auch beim Pi 5 theoretisch nicht über 100MB/s hinaus gehen soll und bei mir wurde eine Kopiergeschwindigkeit von ca. 70MB/s angezeigt.
Zudem spielt die Qualität der SD Karte selbst noch eine große Rolle.

Das hier in Kopiervorgang stattfindet, zeigt, dass man aktuell nichts in der config.txt eintragen muss, damit der PCIe Port überhaupt arbeitet.
Wer will, kann dies trotzdem tun.
Wer Probleme mit der Erkennung des PCIe Ports hat, muss das wahrscheinlich tun.

Sobald der Vorgang abgeschlossen ist, können wir den Pi herunterfahren, um die SD Karte und den USB Stick zu entfernen:

Code: Alles auswählen

sudo poweroff
Die SD Karte und/oder den USB Stick kann man für spätere Notfälle zur Seite legen, falls der Pi mal nicht booten sollte.

Nach dem Poweroff ziehen wir beides ab und starten den Pi wieder durch seinen Power ON Knopf und wenn alles funktioniert hat, sollte er problemlos von der NVMe gebootet haben.

Dies merkt man schnell, wenn man einloggen will und der Prompt erscheint.
Erscheint er nicht, ist irgendwo was schief gelaufen.

Ist das Einloggen möglich, kümmern wir uns als nächstes um die Partitionsgröße, denn der vorherige Befehl hat di SD Karte 1:1 auf die NVMe SSD kopiert, bei mir also 32GB.

Das können wir ganz leicht anpassen.

Wenn wir uns nun die Partitionen anschauen, sieht man, dass die Hauptpartition nur die Größe unserer vorherigen SD Karte hat:

Code: Alles auswählen

pi@raspberrypi:/ $ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0 931.5G  0 disk
├─nvme0n1p1 259:1    0   512M  0 part /boot/firmware
└─nvme0n1p2 259:2    0  28.9G  0 part /
Bei der untersten Partition nvme0n1p2 steht 28.9G, das entspricht meiner SD Karte abzüglich etwas Platz für das System.

Um hier wieder die volle Größe zu erhalten, wird wieder sudo raspi-config aufgerufen.

Im Hauptmenü gehen wir wieder in das Untermenü Advanced Options.

Bild

Dort geht es weiter auf Expand Filsystem.

Der Befehl wird nach Aufruf schnell ausgeführt, da hier nur ein Eintrag gesetzt wird, der beim nächsten Booten die eigentliche Vergrößerung veranlasst.
Bestätigt wird dies mit dem folgenden Fenster, das auch auf diese nachfolgende Aktion hinweist:

Bild

Nach der Bestätigung mit Ok gelangen wir wieder zurück ins Hauptmenü, wo wir die Konfiguration mit Finish beenden.
Es folgt die Frage, ob wir neu booten möchten, was mit Yes bestätigt wird.

Sollte hier keine Frage nach dem Reboot erscheinen, sondern das Terminal, dann rebooten wir weben selbst:

Code: Alles auswählen

sudo reboot
Nach dem Restart loggen wir uns wieder ein und prüfen den Erfolg der Vergrößerung:

Code: Alles auswählen

pi@raspberrypi:~ $ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0 931.5G  0 disk
├─nvme0n1p1 259:1    0   512M  0 part /boot/firmware
└─nvme0n1p2 259:2    0   931G  0 part /
Jetzt sehen wir wieder in der letzten Zeile, dass sich die Hauptpartition von 28.9G auf 931G korrekt vergrößert hat.
Bei mir steckt eine 1TB SSD auf der Platine, die abzüglich System und diverser Umrechnungsparameter auf die genannten 931G kommt.

Damit ist die eigentliche Installation abgeschlossen und das System kann "eigentlich" so genutzt werden.

Eigentlich ....

Da war noch was mit dem Unterschied PCIe 2 und PCIe 3 ....

Ich habe zum Test einfach mal die Geschwindigkeit meiner NVMe SSD getestet, ohne den für den PCIe 3 notwendigen Eintrag vorzunehmen.
Dann habe ich den Test mit dem Eintrag wiederholt, um die Unterschiede zu messen.

Ergebnisse:

PCIe 2:

Code: Alles auswählen

Timing O_DIRECT disk reads: 1306 MB in  3.00 seconds = 434.78 MB/sec
PCIe 3:

Code: Alles auswählen

Timing O_DIRECT disk reads: 2498 MB in  3.00 seconds = 832.20 MB/sec
Man sieht also, dass sich die Geschwindigkeit durch PCIe 3 fast verdoppelt hat.

Um PCIe 3 zu aktivieren, öffnen wir wieder die Datei config.txt:

Code: Alles auswählen

sudo nano /boot/firmware/config.txt
Und wieder ganz unten fügen wir die folgende Zeil ein:

Code: Alles auswählen

dtparam=pciex1_gen=3
Danach muss der Pi wieder neu gestartet werden (sudo reboot).

Wer nun den sehr einfachen Speedtest machen möchte, den ich verwendet habe, installiert das Paket hdparm:

Code: Alles auswählen

sudo apt install hdparm -y
Aufgerufen wird der Test dann mit folgendem Befehl:

Code: Alles auswählen

sudo hdparm -t --direct /dev/nvme0n1p2
Hier wird unter Umgehung des Caches die direkte Lesegeschwindigkeit gemessen.
Das kann man auch kontrollieren, indem man den Befehl mehrmals hintereinander ausführt.

Man kann natürlich auch andere Laufwerke damit testen, dann ist statt nvme0n1p2 eine andere Partition einzugeben.
(Je nachdem, was Ihr testen wollt und Euch angezeigt wird.)

Allerdings ist der PCIe 3 Modus offiziell noch gar nicht so wirklich freigegeben, die Foundation bewirbt den PCIe Port momentan noch als weinen PCIe 2 Port.
Es bleibt spannend, was daraus wird, wenn die Foundation ihr eignes HAT auf den Markt bringt.

Hinweis:
Sollten im Betrieb mit PCIe 3 Probleme auftreten, empfiehlt es sich, diesen Modus wieder zu deaktivieren, da sonst Datenverlust droht.
Evtl. hilft es auch, vor intensiver Nutzung, diverse Tests durchzuführen, um zu sehen, ob der schnellere Modus einwandfrei arbeitet.

Leider lohnt sich eine NVMe SSD nur, wenn auch der schnellere Modus verwendet wird, da sonst eine externe USB3/SATA SSD reicht.
Es sei denn, man will unbedingt weg vom USB Port und eine schnellere Geschwindigkeit als die einer SD Karte haben.

Falls jemand weitere Infos und/oder Tipps zu diesem Thema hat oder Fehler in der Anleitung findet, immer her damit.
Ansonsten viel Spaß mit dieser Kombination.


Dir hat die Anleitung geholfen und Du möchtest das Forum unterstützen ??
Dann hast Du hier die Möglichkeit, einen kleinen - von Dir frei wählbaren - Obolus zu spenden:


Die Abwicklung erfolgt über PayPal.
Vielen Dank und weiterhin viel Spaß im Forum.


Fortsetzungen, Korrekturen, Änderungen möglich ....

Copyright © 2024 by RasPiFun.de
;) Gruß Outi :D
Benutzeravatar

Themenstarter
Outi
Administrator
Administrator
Beiträge: 480
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

Re: Pimoroni NVMe BASE (nur Pi 5 !!)

Beitrag von Outi »

Hinweis mit Link auf Installation über OTG hinzugefügt (direktes Flashen der verbauten NVMe SSD).
;) Gruß Outi :D
Antworten