🛠 Routeur / passerelle réseau double Gigabit avec OpenWrt et PoE
Objectifs
Transformer la ROCK 3B en routeur/passerelle : deux ports Gigabit (gmac0 + gmac1, tous deux rgmii-id dans le device tree mainline), un port alimentable par PoE via le HAT Radxa 25 W (le port près de la pile USB), et une section OpenWrt officielle dans la doc Radxa. Cas typique : box → WAN (eth0), LAN (eth1) vers un switch, la carte alimentée par le PoE du switch — zéro alimentation secteur.
Matériel
- Radxa ROCK 3B (2 GB suffisent pour du routage), SSD NVMe ou eMMC pour la persistance
- HAT PoE Radxa 25 W + switch PoE (802.3af)
- Console série USB-C 1 500 000 bauds pour le sauvetage, câble Ethernet
- >
Code complet
# 1. Prérequis ABSOLU sur toute image non-Radxa : U-Boot récent, sinon eth1 meurt
# (« rk_gmac-dwmac ... eth1: Failed to reset the dma ») — flasher l'image SPI
# Radxa actuelle ou un mainline rock-3b-rk3568_defconfig AVANT tout le reste.
# 2. Option A — OpenWrt (section officielle docs.radxa.com other-os/openwrt) :
# écrire l'image, configurer /etc/config/network (eth0=WAN wan, eth1=LAN lan),
# firewall zone wan=LAN->WAN ; le boot NVMe OpenWrt est du DIY (forum 225022).
# 3. Option B — Debian + NAT manuel :
sudo apt install isc-dhcp-server nftables
sudo sysctl -w net.ipv4.ip_forward=1
sudo nft add table ip nat ; sudo nft add chain ip nat postrouting '{ type nat hook postrouting priority 100 ; }'
sudo nft add rule ip nat postrouting oifname "eth0" masquerade
sudo ip link set eth1 up ; sudo ip addr add 192.168.10.1/24 dev eth1
# 4. Débit par port (~940 Mbit/s attendus) :
sudo apt install iperf3 ; iperf3 -s -D ; iperf3 -c <ip-de-la-carte>
Vérification attendue
ip -br addr montre eth0 (WAN) et eth1 (LAN) actifs ; ethtool indique 1000 Mb/s sur les deux ; un client derrière eth1 sort sur Internet (NAT) et iperf3 approche 940 Mbit/s par port. La carte tourne, alimentée par le seul câble Ethernet du switch PoE.
Erreurs fréquentes
- Le piège n°1 documenté de la carte : un seul port fonctionne parce que le bootloader est trop vieux — mettre à jour U-Boot/SPI avant d'accuser le noyau (forum.radxa.com t/25181, résolu).
- Brancher le PoE sur le mauvais port Ethernet : seul le port côté USB est compatible HAT.
- Chaîne PoE 802.3af 15 W vs HAT 25 W : vérifier que le switch fournit le budget, surtout avec SSD + périphériques USB.
- Sous OpenWrt, oublier de mettre à jour l'image SPI pour le boot NVMe : procédure d'essai-erreur documentée sur le forum OpenWrt, garder une microSD de secours.
- Exposer l'interface d'admin (LuCI/SSH) sur la zone WAN sans filtre.
Autres tutoriels pour cette carte
- Faire clignoter une LED via le GPIO avec libgpiod
- Lire un bouton poussoir en Python avec python3-libgpiod
- Premier réseau : Ethernet double gigabit, Wi-Fi optionnel et SSH
- Installer et booter le système sur un SSD NVMe (M.2 M-Key)
- Interroger un capteur I2C sur le connecteur 40 broches
- Surveiller température et fréquence CPU, piloter le ventilateur PWM
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash