🛠 Remettre une Zero 2 W en état de boot : usbboot et boot files
Objectifs
Maîtriser la récupération d'une carte qui ne démarre plus. La Zero 2 W n'a PAS d'EEPROM : le flux de boot lit OTP puis « bootcode.bin » sur la partition FAT de la SD. Un config.txt erroné = plus d'image ; une SD corrompue = plus rien. Mais la ligne Zero a une porte de sortie : sans SD, elle boote en mode périphérique USB et rpiboot expose alors la microSD comme stockage de masse — on peut tout réparer depuis un PC.
Matériel
- 1 Raspberry Pi Zero 2 W (en panne ou en préparation)
- 1 PC Linux (ou Windows avec le driver libusb/WinUSB) + câble micro-USB données
- 1 lecteur de cartes microSD
- Le projet raspberrypi/usbboot compilé (fournit rpiboot)
Code complet
# 1) Récupération via USB device mode (aucune SD dans la Zero 2 W) :
git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot && make
sudo ./rpiboot
# La Zero 2 W (OTGID flottant) énumère 0a5c:2711 et la microSD interne
# apparaît comme un disque de masse sur le PC.
# 2) Réparer le contenu de la partition boot (FAT) :
sudo mkdir -p /mnt/sdboot && sudo mount /dev/sdX1 /mnt/sdboot
ls /mnt/sdboot # bootcode.bin, start.elf, config.txt...
# config.txt douteux ? Restaurer une ligne minimale ou retirer l'overlay fautif :
sudo cp /mnt/sdboot/config.txt /mnt/sdboot/config.txt.bak
sudo sed -i 's/^dtoverlay=pas-bon/# dtoverlay=pas-bon/' /mnt/sdboot/config.txt
# 3) Recopier une image neuve par-dessus la carte (dernier recours) :
sudo dd if=2024-*raspberry-pi-os-lite.img of=/dev/sdX bs=4M status=progress conv=fsync
Vérification attendue
Avec « lsusb » on voit « 0a5c:2711 » avant rpiboot, puis un nouveau disque apparaît après lancement de rpiboot : la microSD de la carte est accessible. Après réparation du config.txt et reboot sur la carte, la LED d'activité clignote au démarrage et le SSH revient. Test complet : « vcgencmd versioncheck » confirme des fichiers de boot cohérents.
Erreurs fréquentes
- Chercher une EEPROM / un recovery réseau comme sur Pi 4/5 : la Zero 2 W est sur le flux legacy BCM2837 — tout se passe dans les fichiers de la partition FAT.
- Croire aux avertissements de sous-tension : la gamme Zero n'a pas de détection under-voltage ; une corruption « sans raison » vient souvent de l'alimentation.
- Éditer la mauvaise partition : seule la partition FAT (la plus petite) contient config.txt ; la partition ext4 racine est invisible sous Windows.
- Oublier le câble d'alimentation sur le port POWER pendant rpiboot : le mode device seul ne suffit pas à alimenter la carte.
- Ne pas sauvegarder config.txt avant d'éditer : toujours garder le .bak, le fichier est petit et précieux.
Autres tutoriels pour cette carte
- Premier démarrage de la Zero 2 W sans écran (headless)
- Se connecter au Wi-Fi (et comprendre les limites 2,4 GHz / WPA2)
- Surveiller la température et la fréquence de la Zero 2 W
- GPIO en Python : LED et bouton avec gpiozero
- Le tour de passe-passe « clé USB Linux » : Ethernet sur USB (g_ether)
- Serveur de blocage de pub réseau avec Pi-hole
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash