🛠 Le tour de passe-passe « clé USB Linux » : Ethernet sur USB (g_ether)
Objetivos
Transformar la Zero 2 W en un « Linux en llave USB »: el puerto de datos es un puerto OTG, y la línea Zero deja la línea OTGID flotante — sin tarjeta SD, la placa arranca de hecho en modo dispositivo USB. Al cargar los módulos g_ether, el puerto se presenta como una tarjeta de red USB. Resultado: un portátil, un solo cable de datos + un cable de alimentación, y un SSH directo sin pantalla, sin teclado y sin router.
Material
- 1 Raspberry Pi Zero 2 W con una imagen de Raspberry Pi OS (con SSH preconfigurado)
- 1 cable micro-USB de datos + 1 adaptador USB-A/USB-C hacia el portátil
- 1 fuente de alimentación de 2 A en el puerto POWER (el puerto de datos no suministra corriente)
- Opcional: un cable en Y o un hub OTG para usar un solo cable
Código completo
# 1) /boot/firmware/config.txt — activer le contrôleur USB en mode périphérique :
dtoverlay=dwc2
# 2) /boot/firmware/cmdline.txt — AJOUTER À LA FIN DE L'UNIQUE LIGNE du fichier :
modules-load=dwc2,g_ether
# 3) /etc/network/interfaces — IP statique côté gadget :
auto usb0
allow-hotplug usb0
iface usb0 inet static
address 10.0.0.1
netmask 255.255.255.0
# 4) Activer SSH :
sudo systemctl enable --now ssh
Luego reinicia, conecta el puerto de datos al portátil: « ssh pi@10.0.0.1 ». En Linux/macOS el portátil detecta una interfaz « USB Ethernet » (a veces es necesario activar la compartición de conexión o configurar una IP estática 10.0.0.2 en el portátil).
Verificación esperada
El portátil detecta una nueva interfaz de red USB (en Linux: « ip a » muestra una nueva interfaz usb0/enX). « ping 10.0.0.1 » responde y el SSH funciona — sin red Wi-Fi ni pantalla. Bonus: sin NINGUNA tarjeta SD, la Zero 2 W conectada al PC enumera un dispositivo USB 0a5c: — este es el modo de recuperación (ver el tutorial usbboot).
Errores frecuentes
- Añadir modules-load= en una nueva línea de cmdline.txt: este archivo debe contener UNA sola línea, todo debe estar concatenado.
- Modificar /boot/config.txt en lugar de /boot/firmware/config.txt según la versión de la imagen: verificar dónde están bootcode.bin/start.elf.
- Olvidar el cable de alimentación en el puerto POWER: el puerto de datos en modo gadget no suministra energía.
- En Windows: no hay driver RNDIS/ECM inmediato, prever el driver USB Ethernet o probar desde Linux/macOS.
- Esperar el DHCP: sin servidor, el portátil debe estar configurado con IP estática en la misma subred que 10.0.0.1.
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
- Serveur de blocage de pub réseau avec Pi-hole
- Remettre une Zero 2 W en état de boot : usbboot et boot files
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash