🛠 Installer et booter le système sur un SSD NVMe (M.2 M-Key)

Radxa ROCK 3B (Rockchip RK3568) · intermediaire · Schéma : IMG-radxa-rock-3b-intermediaire-1-rock3b-boot-nvme.svg — Radxa ROCK 3B avec SSD NVMe 2280 vissé dans le slot M.2 M-Key, chaîne de boot BootROM → SPI NOR → NVMe, touche de recovery et mode MaskROM

Objectives

Leverage the ROCK 3B's M.2 M-Key 2280 slot — electrically PCIe 3.0 x2 (confirmed by the mainline device tree enabling the pcie3x2 controller; the "x1" mentioned in the CNX article is a typo, as its own spec list states x2) — to install Radxa OS on an NVMe SSD and boot from it. You will also learn how to recover in MaskROM mode when the bootloader is corrupted.

Hardware

Full Code

# 1. Depuis Radxa OS sur microSD : vérifier vue et vitesse du lien
sudo lspci -vv | grep -A2 -i nvme    # attendu : LnkSta Speed 8GT/s (Gen3), Width x2
sudo fdisk -l | grep nvme            # /dev/nvme0n1

# 2. Écrire une image système directement sur le NVMe (depuis le PC) :
#    balenaEtcher / Rufus / dd ciblent /dev/nvme0n1 — voir docs « Install the
#    system to NVME » ; le chargeur U-Boot est posé sur la SPI NOR de la carte.
sudo dd if=radxa-os.img of=/dev/nvme0n1 bs=4M status=progress conv=fsync

# 3. Benchmark (DÉTRUIT les données du disque cible — SSD vierge uniquement)
sudo apt install fio
sudo fio --name=nvme --rw=randrw --bs=4k --size=512M --runtime=30 \
     --filename=/dev/nvme0n1 --ioengine=libaio --direct=1 --group_reporting

# 4. Recouvrement si la carte ne boote plus (MaskROM) :
#    éteindre -> maintenir la touche de recovery -> USB-C vers le PC ->
#    lsusb : « Rockchip USB Peripheral » ; puis rkdeveloptool ld / wl / rst.
#    Si le bootloader SPI est vérouillé : page docs « Clear SPI Flash manually ».

Expected Verification

After rebooting without the microSD card: lsblk shows / on /dev/nvme0n1, lspci displays the link at 8 GT/s with x2 width, and fio significantly outperforms SATA (up to ~1.5 GB/s sequential depending on the SSD). In MaskROM mode, lsusb lists the Rockchip device and rkdeveloptool ld responds.

Common Errors

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials