🛠 Installer et booter le système sur un SSD NVMe (M.2 M-Key)
Objectifs
Exploiter le slot M.2 M-Key 2280 de la ROCK 3B — électrique PCIe 3.0 x2 (confirmé par le device tree mainline qui active le contrôleur pcie3x2 ; le « x1 » de l'article CNX est une coquille, sa propre liste de specs dit x2) — pour installer Radxa OS sur SSD NVMe et booter dessus. Vous verrez aussi la récupération en mode MaskROM quand le bootloader est corrompu.
Matériel
- Radxa ROCK 3B (2/4/8 GB), SSD M.2 2280 NVMe (un modèle d'entrée de gamme suffit : le lien x2 Gen3 plafonne ~1,6 GB/s)
- Alimentation USB-C PD 12 V / 2 A, microSD pour l'amorçage initial
- PC Linux avec
rkdeveloptool(ou Windows + RKDevTool) pour le mode MaskROM ; câble USB-C data
Code complet
# 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 ».
Vérification attendue
Après redémarrage sans microSD : lsblk montre / sur /dev/nvme0n1, lspci affiche le lien à 8 GT/s largeur x2, et fio dépasse largement le SATA (jusqu'à ~1,5 GB/s en séquentiel selon le SSD). En MaskROM, lsusb liste le périphérique Rockchip et rkdeveloptool ld répond.
Erreurs fréquentes
- SSD SATA dans le slot M-Key (c'est un slot NVMe/PCIe ; le SATA est sur le socket B-Key cellular) — vérifier le format 2280.
- Attendre 3,5 GB/s : le lien est PCIe 3.0 x2, pas x4 — moitié de bande-passante.
- Le mode MaskROM est capricieux sur cette carte (retours forum) : insister sur le timing bouton + USB, refaire l'opération carte éteinte, et en dernier recours suivre la page officielle « Clear SPI Flash manually ».
- Oublier que le chargeur vit dans la SPI NOR : reformater le SSD sans réécrire l'image complète laisse la carte muette.
ddsur le mauvais disque : vérifierlsblkavant, l'écriture est destructrice.
Autres tutoriels pour cette carte
- Faire clignoter une LED via le GPIO avec libgpiod
- Lire un bouton poussoir en Python avec python3-libgpiod
- Premier réseau : Ethernet double gigabit, Wi-Fi optionnel et SSH
- Interroger un capteur I2C sur le connecteur 40 broches
- Surveiller température et fréquence CPU, piloter le ventilateur PWM
- Routeur / passerelle réseau double Gigabit avec OpenWrt et PoE
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash