reseau-ethernet.sh
En una instalación fija, una IP estática evita buscar la placa en el listado DHCP. El script crea (o corrige) un perfil manual de NetworkManager en el puerto Ethernet y luego verifica la pasarela con ping.
Hardware
Un ODROID-C4 (Amlogic S905X3, 4 Cortex-A55, 4 GB) con Armbian o Ubuntu de Hardkernel, con Ethernet gigabit, receptor IR y conector de 40 pines. Un cable Ethernet al router/switch.
Cableado
Cable RJ45 en el puerto Ethernet de la placa. Elegir una dirección fuera del rango DHCP para evitar conflictos.
Funcionamiento
nmcli connection add define ipv4.method manual con dirección/pasarela/DNS; connection up lo aplica. El ping de control valida la capa 3 al momento.
Ejecución
En Armbian (kernel mainline): apt install gpiod python3-gpiod; el C4 expone dos chips, gpio y gpio_ao (gpiodetect); el LED azul también se controla vía /sys/class/leds.
Variantes
Añadir un segundo DNS, un dominio de búsqueda (ipv4.dns-search), o volver al perfil DHCP al mudarse (ipv4.method auto).
reseau-ethernet.sh
#!/bin/bash
# IP statique sur Ethernet via nmcli (plus propre que ifconfig a la main).
# Usage : ./reseau-ethernet.sh 192.168.1.50/24 192.168.1.1 8.8.8.8
set -e
IP="${1:?Usage: $0 IP/prefixe passerelle DNS [interface]}"
PASSERELLE="${2:?passerelle requise}"
DNS="${3:?DNS requis}"
echo "== Interfaces =="
ip -brief link
DEV="${4:-$(ip -brief link | awk '$2=="up" && $1!~"lo|wl"{print $1; exit}')}"
[ -n "$DEV" ] || { echo "aucune interface up"; exit 1; }
echo "== Profil statique sur $DEV =="
nmcli connection add type ethernet con-name statique-$DEV ifname "$DEV" \
ipv4.method manual ipv4.addresses "$IP" \
ipv4.gateway "$PASSERELLE" ipv4.dns "$DNS" || \
nmcli connection modify statique-$DEV \
ipv4.addresses "$IP" ipv4.gateway "$PASSERELLE" ipv4.dns "$DNS"
nmcli connection up statique-$DEV
echo "== Resultat =="
ip -4 -brief addr show "$DEV"
ping -c 2 -W 2 "$PASSERELLE" && echo "passerelle joignable"