🛠 Câbler l'Ethernet 10/100 EMAC avec le carrier Zero-EPHY
Objectifs
Le BPI-M2 Zero n'a pas de port Ethernet — mais l'Allwinner H2+/H3 intègre un contrôleur EMAC 10/100 qui peut sortir sur des broches du connecteur. Banana Pi a publié le design libre « Zero-EPHY » (schéma + PCB sur le wiki, section « how to use zéro 10/100 Ethernet ») : une PHY externe avec magnétique RJ45 raccordée au bus RMII. Vous allez fabriquer ou commander le carrier, activer l'overlay EMAC et obtenir un eth0 filaire — précieux quand le Wi-Fi sans antenne est lamentable.
Matériel
- BPI-M2 Zero (H2+ ou H3)
- Carrier Zero-EPHY (le wiki publie schéma et PCB : fabrication en ligne possible) avec PHY Ethernet 10/100 et jack à magnétiques
- Câble RJ45, alimentation 5 V / 2 A
- Fer à souder ou service de montage si vous commandez le kit
Code complet
# 1) Contrôler le device tree : le nœud emac et son PHY
ls /proc/device-tree/ | grep -i -e ethernet -e emac
cat /proc/device-tree/.../status 2>/dev/null
# 2) Activer l'overlay EMAC (nom exact à vérifier dans /boot/dtb-*/overlay-dir/)
grep overlays /boot/armbianEnv.txt
sudo sed -i 's/^overlays=.*/& emac/' /boot/armbianEnv.txt
sudo reboot
# 3) Le contrôleur et le PHY apparaissent-ils ?
dmesg | grep -i -e emac -e stmmac -e eth
dmesg | grep -i 'PHY' # adresse du PHY détectée
ip -br link show eth0
# 4) Apporter l'interface et mesurer
sudo ip link set eth0 up
sudo dhclient eth0
sudo apt install -y ethtool iperf3
sudo ethtool eth0 | grep -i speed # attendu : 100baseT/Full
iperf3 -c mon_serveur_lan
Vérification attendue
Après activation de l'overlay, dmesg annonce le contrôleur EMAC et la détection du PHY sur son adresse RMII ; eth0 monte en 100M full-duplex ; iperf3 approche les 90 Mbit/s, en tête-à-tête avec un switch. L'interface reste stable alors que wlan0 peut être désactivé (conserve au passage la seule antenne pour autre chose).
Erreurs fréquentes
- Acheter une PHY GMIC en mode RGMII : l'EMAC du H2+/H3 parle RMII 10/100, pas le gigabit.
- Se tromper d'adresse PHY (strap AD0/AD1) : le pilote cherche, ne trouve rien, eth0 reste DOWN — vérifier l'adresse dans dmesg et les broches de strap du schéma Zero-EPHY.
- Confondre avec le BPI-P2 Zero, qui lui a un port 100M embarqué (et 8 GB d'eMMC) : le M2 Zero, lui, n'a rien sur la carte.
- Nourrir le schéma avec un câble RJ45 « droit » sans transformateur magnétique intégré au jack : les PHY exigent le magnétique.
- Chercher la performance gigabit : la limite physique est 100 Mbit/s, et le bus mémoire n'aidera pas plus.
Autres tutoriels pour cette carte
- Flasher Armbian et premier boot du BPI-M2 Zero
- LED et bouton avec libgpiod sur le port 40 broches
- Wi-Fi AP6212 : le piège de l'antenne U.FL non fournie
- Console série sur USB-OTG : dépanner sans réseau ni câble UART
- Activer le bus SPI0 et piloter un petit écran TFT
- Survivre avec 512 Mo : zram, swap compressé et services légers
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash