🛠 Console série sur USB : la Zero en port série (CDC-ACM)
Objetivo
Convertir el único puerto de datos del Zero en una consola serie USB (CDC-ACM): conéctalo a cualquier ordenador y obtén una shell real en /dev/ttyACM0 — sin red, sin pantalla. El puerto OTG puede emular Ethernet, serie, MIDI o almacenamiento masivo; este tutorial realiza la parte serie de la construcción clásica de 'memoria USB Linux'.
Componentes
- Zero con Raspberry Pi OS, un cable micro-USB de datos al PC anfitrión
- Fuente de alimentación de 5 V / 1.2 A en el puerto de alimentación (el puerto de gadget no proporciona energía)
Pasos
# 1) Enable the DWC2 OTG controller:
echo "dtoverlay=dwc2" | sudo tee -a /boot/firmware/config.txt
# 2) Load the serial gadget at boot — cmdline.txt stays ONE single line:
sudo sed -i 's/rootwait/rootwait modules-load=dwc2,g_serial/' /boot/firmware/cmdline.txt
# 3) Get a login prompt on the gadget serial port:
sudo systemctl enable --now serial-getty@ttyGS0.service
Reinicia, conecta el puerto de datos al anfitrión y luego, en el anfitrión:
dmesg | tail # new cdc_acm device
cu -l /dev/ttyACM0 # or: sudo picocom /dev/ttyACM0
> NO VERIFICADO: la nomenclatura de los módulos (g_serial heredado frente a configfs usb_f_serial) varía según las versiones del sistema operativo — verifica los módulos incluidos en tu compilación de Raspberry Pi OS.
Comprobación
El anfitrión muestra /dev/ttyACM0 (Linux/macOS) o un nuevo puerto COM (Windows); la terminal solicita un inicio de sesión y uname -a se ejecuta en el Zero a través de ella.
Problemas comunes
- g_ether y g_serial al mismo tiempo: solo una configuración de gadget a menos que construyas uno compuesto — no cargues ambos a ciegas.
- Un salto de línea insertado en cmdline.txt: el kernel ignora todo lo que sigue a la primera línea.
- Cables micro-USB solo de carga: no se enumera nada.
- Olvidar el cable de alimentación en el puerto POWER.
Otros tutoriales para esta placa
- Premier démarrage de la Zero avec écran (mini-HDMI)
- Installation headless : la Zero en carte réseau USB (g_ether)
- Alimentation et consommation : le point faible de la Zero
- GPIO en Python : LED et bouton avec gpiozero
- Camera CSI sur Zero v1.3 : le nappe 22 broches
- Sauver une Zero qui ne boot plus : le flux legacy sans EEPROM
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash