🛠 Le tour de passe-passe « clé USB Linux » : Ethernet sur USB (g_ether)

Raspberry Pi Zero 2 W (2021) — Fiche carte · intermediaire · Schéma : IMG-zero-2w-intermediaire-2-ethernet-gadget-usb.svg — Zero 2 W branchée directement sur le port USB d'un ordinateur portable via son port données, interface réseau « Remote-ECM » apparaissant sur le portable, SSH par-dessus.

Objectifs

Transformer la Zero 2 W en « Linux sur clé USB » : le port données est un port OTG, et la ligne Zero laisse l'OTGID flottant — sans carte SD, la carte démarre d'ailleurs en mode périphérique USB. En chargeant les modules g_ether, le port se fait passer pour une carte réseau USB. Résultat : un laptop, un seul câble données + un câble d'alimentation, et un SSH direct sans écran, sans clavier et sans routeur.

Matériel

Code complet

# 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

Puis reboot, brancher le port données sur le laptop : « ssh pi@10.0.0.1 ». Sous Linux/macOS le laptop voit apparaître une interface « USB Ethernet » (il faut parfois activer le partage de connexion ou mettre une IP statique 10.0.0.2 côté laptop).

Vérification attendue

Le laptop détecte une nouvelle interface réseau USB (sous Linux : « ip a » montre un interface usb0/enX nouveau). « ping 10.0.0.1 » répond et le SSH passe — sans réseau Wi-Fi ni écran. Bonus : sans AUCUNE carte SD, la Zero 2 W branchée au PC énumère un périphérique USB 0a5c: — c'est le mode récupération (voir le tuto usbboot).

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels