User Tools

Site Tools


prive:cm4-flash-eeprom

Flasher une image vers l'eMMC du module CM4.

Lorsque le module de calcul dispose d'un dispositif eMMC, ce guide explique comment écrire des données sur le stockage eMMC à l'aide d'une carte E/S de module de calcul.

Il faut que le module de calcul soit correctement installé sur la carte d'E/S. Il doit reposer à plat sur la carte d'E/S.

Il faut que nRPBOOT qui est sur J2 (désactiver le démarrage eMMC) sur le cavalier de la carte IO est installé

Utiliser un câble micro USB pour connecter le port esclave micro USB MCRO_USB sur la carte IO au périphérique hôte.

Ne pas mettre encore sous tension.

Construire rpiboot sur le système hôte

AFin d'utiliser Git pour obtenir le code source de rpiboot, il faut que Git soit installé. Sur un Raspberry Pi ou une autre machine Linux basée sur Debian, utiliser la commande suivante :

sudo apt update 
sudo apt upgrade -y 
sudo apt install git 

Git peut produire une erreur si la date n'est pas définie correctement. Sur un Raspberry Pi, entrer ce qui suit pour corriger cela :

sudo date MMJJhhmm

MM est le mois, DD est la jour, et hh et mm sont respectivement les heures et les minutes.

Cloner le dépôt de l'outil usbboot:

git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot

libusb doit être installé. Sur Raspberry Pi OS ou autre Linux basé sur Debian, entrer la commande suivante :

sudo apt install libusb-1.0-0-dev

Construire et installer maintenant l'outil usbboot:

make

Exécuter l'outil usbboot et il attendra une connexion :

sudo ./rpiboot

Brancher maintenant la machine hôte dans le port esclave USB de la carte E/S du module de calcul et allumer la carte CMIO. L'outil rpiboot découvrira le module de calcul et enverra le code de démarrage pour permettre l'accès à l'eMMC.

Ecrire sur l'eMMC (Linux)

Une fois rpiboot terminé, on peut voir un nouveau périphérique apparaître ; il s'agit généralement de /dev/sda sur un Raspberry Pi, mais il peut s'agir d'un autre emplacement tel que /dev/sdb, alors vérifier /dev/ ou exécutez lsblk avant d'exécuter rpiboot afin d'identifier l'eMMC.

Une fois le périphérique identifié, écrire une image brute du système d'exploitation (telle que Raspberry Pi OS) sur l'appareil. L'exécution de la commande suivante peut prendre un certain temps, selon la taille de l'image : (Remplacer /dev/sdX par le périphérique approprié.)

sudo dd if=raw_os_image_of_your_choice.img of=/dev/sdX bs=4MiB

Une fois l'image écrite, débrancher et rebrancher la clé USB ; on doit voir apparaître deux partitions (pour Raspberry Pi OS) dans /dev. Au total, on doit voir quelque chose de similaire à ceci :

/dev/sdX <- Périphérique
/dev/sdX1 <- Première partition (FAT)
/dev/sdX2 <- Deuxième partition (système de fichiers Linux)

Les partitions /dev/sdX1 et /dev/sdX2 peuvent maintenant être montées normalement.

Il faut s'assurer que J2 (nRPBOOT) est réglé sur la position désactivée et/ou que rien n'est branché sur le port esclave USB. Le redémarrage de la carte d'E/S devrait maintenant entraîner le démarrage du module de calcul à partir d'eMMC.

Configuration du Bootloader

La configuration du chargeur de démarrage par défaut sur CM4 est conçue pour prendre en charge la mise en place et le développement sur une carte d'E/S du module de calcul 4 et la version du logiciel flashé peut être antérieure à la dernière version.

Lors de l'acquisition des produits finaux, il faut considérer :

  • Sélection et vérification d'une version spécifique du chargeur de démarrage. La version du référentiel usbboot est toujours une version stable récente.
  • Configuration du périphérique de démarrage (par exemple, démarrage réseau).
  • Activation de la protection en écriture matérielle sur l'EEPROM du chargeur de démarrage pour garantir que le chargeur de démarrage ne peut pas être modifié sur des produits distants/inaccessibles.

La ROM du module de calcul 4 n'exécute jamais recovery.bin à partir de SD/EMMC et le service rpi-eeprom-update n'est pas activé par défaut. Cela est nécessaire car l'EMMC n'est pas amovible et un fichier recovery.bin non valide empêcherait le démarrage du système. Cela peut être remplacé et utilisé avec le mode d'auto-mise à jour où le chargeur de démarrage peut être mis à jour à partir d'un MSD USB ou d'un démarrage réseau. Cependant, le mode d'auto-mise à jour n'est pas une mise à jour atomique et n'est donc pas sûr en cas de panne de courant pendant la mise à jour de l'EEPROM.

Modification de la configuration du bootloader

Pour modifier la configuration du chargeur de démarrage CM4 :

cd usbboot/recovery

Remplacer pieeprom.original.bin si une version spécifique du chargeur de démarrage est requise.

Modifier le fichier de configuration du chargeur de démarrage boot.conf par défaut. Typiquement, au moins le BOOT_ORDER doit être mis à jour :

  • Pour le démarrage réseau BOOT_ORDER=0xf2
  • Pour le démarrage SD/EMMC BOOT_ORDER=0xf1
  • Pour le démarrage USB basculant vers EMMC BOOT_ORDER=0xf15

Exécuter ./update-pieeprom.sh pour mettre à jour le fichier image de l'image EEPROM pieeprom.bin.

Si la protection en écriture EEPROM est requise, modifier config.txt et ajouter eeprom_write_protect=1. La protection en écriture matérielle doit être activée via le logiciel, puis verrouillée en tirant la broche EEPROM_nWP vers le bas.

Exécuter ../rpiboot -d. pour mettre à jour le chargeur de démarrage à l'aide de l'image EEPROM mise à jour pieeprom.bin

Le fichier pieeprom.bin est maintenant prêt à être flashé sur le Compute Module 4.

Flasher l'EEPROM du bootloader

Pour flasher l'EEPROM du chargeur de démarrage, suivez la même configuration matérielle que pour flasher l'EMMC, mais il faut également que l'EEPROM_nWP ne soit PAS à l'état bas. Une fois terminé, EEPROM_nWP peut être de nouveau mis à l'état bas.

# Écrit recovery/pieeprom.bin dans l'EEPROM du bootloader.
./rpiboot -d récupération
prive/cm4-flash-eeprom.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1