🛠 Démarrage SD/USB et récupération d'une carte qui ne boot plus
Objectifs
Maîtriser la chaîne de démarrage du Raspberry Pi 3 A+ : firmware « era » bootcode.bin / start.elf / config.txt sur la partition FAT, démarrage amélioré sur stockage USB (OTP de génération 3B+), et récupération d'une carte sans outil de type rpiboot — le 3 A+ n'a pas de mode recovery EEPROM comme le Pi 4.
Matériel
- Raspberry Pi 3 A+ ; microSD ≥ 8 Go ; clé USB formatée en FAT32/EXT4
- Lecteur de cartes SD sur le PC ; Raspberry Pi Imager
- >
Code complet
# 1) Écrire l'image (la partition boot FAT apparaît montée après écriture)
sudo rpi-imager --cli img/raspios-lite.img /dev/sdX
# 2) Démarrage USB : écrire la MÊME image sur la clé, retirer la SD,
# brancher la clé sur l'unique port USB puis alimenter.
# (OTP USB boot de génération 3B+ ; sinon une première SD avec
# le programme « raspberrypi-usb-boot » active le bit OTP.)
# 3) Récupération sans réécriture complète : la partition boot est lisible
# sur tout PC — réparer config.txt (HDMI, dtoverlay) ou cmdline.txt :
sudo mount /dev/sdX1 /mnt && sudo nano /mnt/config.txt && sudo umount /mnt
# 4) Diagnostic matériel au power-on : les LED d'activité
# LED rouge = alimentation ; LED verte clignotante = lecture SD.
vcgencmd version # version du firmware chargé
Vérification attendue
Avec SD valide : LED verte clignote au power-on puis système disponible en SSH. Sans SD et avec clé USB écritée : boot USB réussi si l'OTP est actif. vcgencmd version répond avec la date du firmware.
Erreurs fréquentes
- Chercher un mode rpiboot/USB recovery : le 3 A+ n'en a pas (pas d'EEPROM VL805 comme le Pi 4) ; la récupération passe par réécriture ou réparation de la partition boot.
- Clé USB trop gourmande : l'unique port, protégé par un polyfuse, doit alimenter la clé ET la carte ; préférer une clé basse consommation.
config.txtédité sous Windows avec retour chariot CRLF : le parser FAT est tolérant mais les éditeurs cassent parfois l'encodage.- SD corrompue par arrêt brutal :
fsckla partition root ou réécrire l'image — pas de second stockage de secours sur ce modèle.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython