🛠 Gadget USB : Ethernet sur le port OTG + relais Wi-Fi
Objetivos
Utilizar el puerto micro-USB de datos (OTG, BCM2835) en modo gadget: la Zero W se enumera como una tarjeta Ethernet en cualquier PC mientras retransmite Internet a través de su Wi-Fi — el «Linux USB stick», sin configurar nada en el PC.
Material
- 1 Raspberry Pi Zero W (arranque legacy: partición FAT con config.txt, sin EEPROM)
- 1 cable micro-USB de datos hacia el PC
Pasos
- Active el controlador: en
/boot/config.txtañadadtoverlay=dwc2, ymodules=dwc2en la líneadwc_otg.lpm_enable=0 console=...de/boot/cmdline.txt. - Cree el gadget Ethernet mediante configfs/libcomposite (
modprobe libcomposite,usb0eng_etherRNDIS/CDC). - Conecte las dos interfaces de red: active el enrutamiento
sysctl -w net.ipv4.ip_forward=1y realice la máscara detrás dewlan0:iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE. - En el PC, la interfaz aparece (usb0 / «Remote NDIS») y obtiene una dirección por DHCP mediante dnsmasq en la placa.
Verificación
ip a muestra usb0 UP; desde el PC, ping hacia una IP pública sale a través del Wi-Fi de la Zero W.
Errores frecuentes
- Conectar en el puerto PWR: es puramente de alimentación, no transmite señal USB.
- Confundir dispositivo OTG y host: la Zero W no tiene puerto USB host ni hub — el modo gadget es la única vía USB.
- Olvidar el NAT o ip_forward: el PC ve el enlace pero no sale a Internet.
Otros tutoriales para esta placa
- Premier démarrage headless de la Zero W (Wi-Fi + SSH)
- Suder le header 40 broches et faire clignoter une LED
- Se connecter au Wi-Fi en ligne de commande (nmcli)
- Pi-hole : bloqueur de pub DNS sur Zero W
- Balise BLE : diffuser un beacon avec le CYW43438
- Nœud capteur autonome sur batterie : énergie et fiabilité
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash