Negli ultimi anni la comunità tecnologica ha assistito a un'impennata dei computer a scheda singola (SBC), che offrono agli appassionati di tecnologia una pletora di opzioni. Tuttavia, pochi sono così potenti e pronti per il futuro come il Radxa ROCK 5 Model B. Questa potente alternativa al Raspberry Pi offre una serie di caratteristiche che la pongono al di sopra di molti concorrenti.

Storicamente, le scelte predefinite per l'avvio dei sistemi operativi su questi dispositivi sono state la scheda micro SD (uSD) o la memoria MultiMediaCard integrata (eMMC). Sebbene entrambi i metodi siano serviti allo scopo, presentano una serie di limitazioni, soprattutto in termini di velocità e reattività complessiva del sistema. Le unità NVMe (Non-Volatile Memory express) hanno cambiato le carte in tavola nel mondo delle soluzioni di archiviazione, grazie alla loro velocità ed efficienza mozzafiato.

Lo slot PCIe 3.0 x4 del ROCK 5B non è solo una sigla altisonante, ma rappresenta un cambio di paradigma nel campo delle schede singole. Sfruttando la possibilità di collegare le unità NVMe direttamente a questo slot, gli utenti del Rock 5B possono aggirare i tradizionali colli di bottiglia associati alle schede uSD e alla memoria eMMC. I vantaggi concreti sono:

  • tempi di avvio e di caricamento notevolmente più veloci,
  • rapide risposte del sistema, e
  • una esperienza d'uso e di sviluppo molto più gradevole.

Come si passa dai metodi di archiviazione convenzionali all'avvio del sistema operativo direttamente da un'unità NVMe su ROCK 5B? La guida che segue intende fare luce su questo percorso di trasformazione, offrendo istruzioni passo dopo passo per sbloccare l'intero potenziale del ROCK 5B.

Download dei file necessari

Iniziamo subito scaricando i file necessari: zero.img ed il nuovo bootloader.img, needed since we are going to flash it to SPI Nor Flash.

Ci sono 4 differenti bootloader tra i quali scegliere:

  • bootloader normale [old], recommend for everything tranne che per armbian, ha la console seriale u-boot disabilitata
  • bootloader per armbian, se si vuole avviare armbian da un SSD NVME M.2
  • debuging bootloader [old] with u-boot serial console enabled, if you need to troubleshoot booting issue with serial. (For advanced users)
  • EDK2 bootloader per avviare immagini di sistemi operativi UEFI (ancora sperimentale)

È possibile scaricare direttamente dalla riga di comando usando wget link.al/file.img . In questa guida userò il primo bootloader menzionato.

mkdir bootloader
cd bootloader/
wget https://dl.radxa.com/rock5/sw/images/others/zero.img.gz
wget https://dl.radxa.com/rock5/sw/images/loader/rock-5b/release/rock-5b-spi-image-gd1cf491-20240523.img

Decomprimiamo il file e verifichiamo che il digest md5 corrisponda a quello pubblicato sul sito web di radxa.

gzip -d zero.img.gz
md5sum zero.img

Il risultato dei comandi sopra dovrebbero produrre qualcosa simile a questo: 2c7ab85a893283e98c931e9511add182 zero.img

md5sum rock-5b-spi-image-gbf47e81-20230607.img

cf53d06b3bfaaf51bbb6f25896da4b3a rock-5b-spi-image-gd1cf491-20240523.img

Here the checksums of the other possible files:

2c7ab85a893283e98c931e9511add182  zero.img
cf53d06b3bfaaf51bbb6f25896da4b3a  rock-5b-spi-image-gd1cf491-20240523.img
fa14c99718f55b66e82aa1661e43c1ec  rock-5b-spi-image-gd1cf491-20240523-debug.img
bd21a6459ad33b8189782e4c904d99b3  rock-5b-spi-image-gbf47e81-20230607.img
1b83982a5979008b4407552152732156  rkspi_loader.img

Se tutto è a posto, possiamo passare a verificare se il flash spi è disponibile:

ls /dev/mtdblock*

Dovrebbe ritornare il dispositivo /dev/mtdblock0

Passiamo al flash del bootloader

La prima cosa da fare è pulire completamente il modulo SPI Flash, che contiene il precedente bootloader: (sii paziente, il flash può prendere fino a 5 minuti, nel mio caso ci sono voluti 3 minuti)

sudo dd if=zero.img of=/dev/mtdblock0

controlliamo che ora il modulo SPI Flash sia stato pulito correttamente

sudo md5sum /dev/mtdblock0 zero.img

2c7ab85a893283e98c931e9511add182 /dev/mtdblock0
2c7ab85a893283e98c931e9511add182 zero.img

Okay! Now you can write the desired bootloader to the spi flash using the following command

sudo dd if=rock-5b-spi-image-gd1cf491-20240523.img of=/dev/mtdblock0

Be patient it will take some time again, as soon it has finished you can lunch

sync

and then check again if everything was successful:

sudo md5sum /dev/mtdblock0 rock-5b-spi-image-gd1cf491-20240523.img

cf53d06b3bfaaf51bbb6f25896da4b3a /dev/mtdblock0
cf53d06b3bfaaf51bbb6f25896da4b3a rock-5b-spi-image-gd1cf491-20240523.img
In my case the 2 digests are identical, which means that everything went well, otherwise flash the bootloader again.

Now you can safely reboot your device!