🛠 Remettre une Zero 2 W en état de boot : usbboot et boot files
Objetivos
Dominar la recuperación de una tarjeta que ya no arranca. La Zero 2 W NO tiene EEPROM: el flujo de arranque lee OTP y luego «bootcode.bin» en la partición FAT de la SD. Un config.txt erróneo = sin imagen; una SD corrupta = nada. Pero la línea Zero tiene una salida: sin SD, arranca en modo dispositivo USB y rpiboot expone entonces la microSD como almacenamiento masivo — se puede reparar todo desde un PC.
Material
- 1 Raspberry Pi Zero 2 W (averiado o en preparación)
- 1 PC Linux (o Windows con el driver libusb/WinUSB) + cable micro-USB de datos
- 1 lector de tarjetas microSD
- El proyecto raspberrypi/usbboot compilado (proporciona rpiboot)
Código completo
# 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
Verificación esperada
Con «lsusb» se ve «0a5c:2711» antes de rpiboot, y luego aparece un nuevo disco tras lanzar rpiboot: la microSD de la tarjeta es accesible. Tras reparar el config.txt y reiniciar la tarjeta, el LED de actividad parpadea al arrancar y el SSH vuelve. Prueba completa: «vcgencmd versioncheck» confirma que los archivos de arranque son coherentes.
Errores frecuentes
- Buscar una EEPROM / una recuperación de red como en Pi 4/5: la Zero 2 W está en el flujo legacy BCM2837 — todo ocurre en los archivos de la partición FAT.
- Creer en las advertencias de subtensión: la gama Zero no tiene detección de under-voltage; una corrupción «sin razón» suele provenir de la alimentación.
- Editar la partición incorrecta: solo la partición FAT (la más pequeña) contiene config.txt; la partición raíz ext4 es invisible en Windows.
- Olvidar el cable de alimentación en el puerto POWER durante rpiboot: el modo dispositivo solo no basta para alimentar la tarjeta.
- No guardar config.txt antes de editarlo: siempre conservar el .bak, el archivo es pequeño y valioso.
Otros tutoriales para esta placa
- 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
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash