Table of Contents

NVMe SSD's nutzen (Pi 5)

Wichtig
Die folgende Anleitung bezieht sich nur auf den Raspberry Pi 5!

YouTube Video #79


Erklärungen

PCIe

PCI Express (PCIe) ist ein serielles Hochgeschwindigkeitsübertragungsprotokoll für die Datenübertragung zwischen Hauptplatinen und Peripheriegeräten. Es verwendet differenzielle Signalpaare und Punkt-zu-Punkt-Verbindungen, wodurch höhere Datenraten im Vergleich zu älteren parallelen Busstandards wie PCI ermöglicht werden. PCIe bietet mehrere Lanes (Datenspurgruppen), wodurch die Bandbreite je nach Anforderungen skaliert werden kann. Diese Lanes können in verschiedenen Konfigurationen wie x1, x4, x8 und x16 vorliegen. Durch seine Flexibilität und hohe Leistungsfähigkeit wird PCIe weitläufig für Grafikkarten, SSDs, Netzwerkkarten und andere Hochleistungsperipheriegeräte eingesetzt.

NVMe

Hinweis
NVMe ist nicht SSD mSATA !

NVMe (Non-Volatile Memory Express) ist ein Protokoll, das speziell für den Zugriff auf NAND-basierten Flash-Speicher optimiert ist, wie er in modernen Solid-State-Drives (SSDs) verwendet wird. NVMe ermöglicht eine effiziente und parallele Datenübertragung zwischen dem Host (CPU) und der SSD über den PCIe-Bus. Im Gegensatz zu älteren Protokollen wie AHCI reduziert NVMe Latenzen und maximiert die Bandbreite, was zu deutlich schnelleren Lese- und Schreibgeschwindigkeiten führt. NVMe-SSDs werden zunehmend in Hochleistungsrechnern und Datenspeicherlösungen eingesetzt, um die Leistungsfähigkeit von Flash-Speicher optimal zu nutzen.

M.2 (NGFF)

M.2 (= NGFF = Next Generation Form Factor) ist ein Formfaktor und Schnittstellenstandard für kompakte, kleine Erweiterungskarten, die in M.2-Steckplätzen auf Hauptplatinen eingesteckt werden. M.2-Steckplätze unterstützen verschiedene Schnittstellen, darunter SATA und PCIe, wodurch sie vielseitig für den Anschluss von SSDs, WLAN-Karten und anderen Erweiterungen sind. Der M.2-Formfaktor ermöglicht es, Platz zu sparen und die Verbindung von Hochleistungsgeräten wie NVMe-SSDs direkt über den PCIe-Bus für schnelle Datenübertragungen zu unterstützen.

M Key

“M Key” ist eine Bezeichnung für einen der physischen Schlüssel (Keying) in M.2-Steckplätzen. Der M.2-Steckplatz selbst kann verschiedene Schlüssel oder Buchsen haben, um die Kompatibilität mit unterschiedlichen Arten von M.2-Modulen sicherzustellen. In einem M.2-Steckplatz mit einem M Key ist der Schlitz so gestaltet, dass er speziell für M.2-Module mit einem M Key passt. M-Key-Module können verschiedene Arten von Schnittstellen verwenden, einschließlich PCIe (PCI Express) und SATA, und werden häufig für Hochleistungsgeräte wie NVMe-SSDs verwendet.

Hinweise

Hardware

Für den Betrieb am Pi wird ein NVMe Adapter benötigt, der an den PCIe Port angeschlossen wird. Der USB auf NVMe Adapter dient vornehmlich zum Bespielen einer NVMe unter Windows. Er funktioniert aber auch mit einem Raspberry Pi - allerdings mit Geschwindigkeitseinbußen. Und er wird behandelt wie ein USB-Stick.

NVMe Base

HatDrive!

Typ X 1001

TBD

USB auf NVMe Adapter

Solche Adapter gibt es bei eBay / Amazon für 10-15€. Zu finden unter der Bezeichnung USB NVMe Adapter.

Bootloader Update

Achtung
Ohne aktuelle Firmware (Bootloader) wird die NVMe erst gar nicht erkannt!
Hinweis
Der Bootloader wird auf dem Board selber geflasht. Also selbst bei einem Wechsel von SD / USB / NVMe bleibt er in seiner Version erhalten!

Alternativ kann die Firmware auch über sudo raspi-config auf den aktuellen Stand gebracht werden:

Bootloader Konfig

Hinweise
1) Die Bootreihenfolge kann generell wie hier beschrieben eingestellt werden. Kann von NVMe nicht gebootet werden fällt der Pi auf SD-Karte oder USB-Stick zurück.
2) Die Bootreihenfolge lässt sich auch mit sudo raspi-config (6 Advanced Options → A4 Boot Order) anpassen. Allerdings wird dabei nicht der Eintrag PCIE_PROBE=1 ergänzt was bei bestimmten NVMe SSD's zu Bootproblemen führen kann.
3) Die Bootloader Konfig kann man sich auch mit sudo rpi-eeprom-config nur anzeigen lassen.

Um von NVMe booten zu können, müssen die Bootloader Parameter angepasst werden:

Grundlegende Tests

PCIe aktivieren

Hinweis
Die NVMe wurde trotz fehlendem Eintrag erkannt mit der letzten Firmware.

PCIe checken

PCIe V3 Mode aktivieren

Offiziell unterstützt der Raspberry Pi 5 nur PCIe 2 - der Bus würde als mit 5GB/s arbeiten. Es ist allerdings möglich den PCIe Bus auf die Version 3 einzustellen. In dem Fall arbeitet der Bus mit 10GB/s.

PCIe V3 checken

NVMe prüfen

Verwendung

Es gibt durchaus verschiedene Szenarien zur Einrichtung und Verwendung einer NVMe SSD.

Boot (Raspberry Pi Imager)

Boot (piclone)

SSD Mount

Speedtest

fio

LibreOffice

SMART Test

nvme

nvme

Sonstiges

Diese Punkte sind normal nicht Bestandteil vom YT Video!

Downgrade des Bootloaders

Warnung
Nur wichtig für Tests!